POST /v1/authorize
UUID of the agent making the tool call.
Name of the tool being invoked. Can be any string up to 255 characters — use a consistent naming convention across your application (e.g.
file.write, send_email, db.query).The parameters being passed to the tool. Used for parameter constraint evaluation in policies. The total serialized size of this object must not exceed 64 KB.Keys matching sensitive patterns (
password, secret, token, key, credential, authorization, api_key, apiKey, access_token, refresh_token) are automatically redacted to "[REDACTED]" before being stored in the audit log.Response
Returns anAuthorizationResult object.
true if the action is permitted, false otherwise. This is the primary field to branch on.The authorization decision. One of
"allowed" or "denied".UUID of the policy that produced this decision.
null when the agent has no matching policy and the default-deny rule applies.Human-readable explanation of the decision. Useful for logging and surfacing context to users.
ISO 8601 timestamp of when the evaluation was performed.
Agent status behavior
Veto checks the agent’s status before evaluating any policies:active— normal policy evaluation proceeds.suspended— all requests are immediately denied. No policies are evaluated.revoked— all requests are immediately denied. No policies are evaluated.
"active" via PATCH /v1/agents/:id.
Default deny
If no enabled policy matches the tool call, Veto denies the request. Authorization requires an explicit allow — there is no implicit permission.Audit logging
Every call to/v1/authorize is recorded in the audit log, including denied requests. If the audit log write fails (for example, due to a database error), the authorization decision is still returned — but the response will include: