POST /v1/authorize
string
required
UUID of the agent making the tool call.
string
required
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).object
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.
boolean
required
true if the action is permitted, false otherwise. This is the primary field to branch on.string
required
The authorization decision. One of
"allowed" or "denied".string | null
required
UUID of the policy that produced this decision.
null when the agent has no matching policy and the default-deny rule applies.string
required
Human-readable explanation of the decision. Useful for logging and surfacing context to users.
string
required
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: