audit:read scope. Entries are never modified or deleted; the log only grows.
The audit entry object
string
Entry id (e.g.
aud_01H...).object
The principal that performed the action.
string
The audited action (see Audited actions).
string
The kind of resource affected (e.g.
agent, api_key, member, webhook_endpoint, session, credits).string | null
Id of the affected resource, when the action targets one.
string
The
x-request-id of the request that produced the entry — join this to your own logs and to the error envelope.object
Action-specific detail (e.g. the before/after role on a role change, the
to_version on a rollback, the denied tool on a policy denial).string
When the action occurred.
List audit logs
GET /v1/audit_logs returns entries newest-first. Cursor-paginated — see Pagination.
Filters
string
Filter to a single principal id (a member
usr_… or key key_…).string
Filter to a single resource id (e.g. a specific
agt_…).string
Filter to one action string (e.g.
api_key.rotated).string
Filter to the entries one request wrote, by the
request_id it carried.string
Lower bound (inclusive) on
created_at: a date like 2026-08-01 or a timestamp like 2026-08-01T00:00:00Z (send an offset’s + as %2B). Anything else is 400 validation_failed with param: "from".string
Upper bound (exclusive) on
created_at: a date like 2026-08-01 or a timestamp like 2026-08-01T00:00:00Z (send an offset’s + as %2B). Anything else is 400 validation_failed with param: "to".Audited actions
The following control-plane actions are captured in the initial release. The list grows over time; treataction as an open string and branch on the prefixes you care about.
Each entry pins the exact
request_id, so an audited action, its error envelope (if it failed), and your own request logs all correlate on one id. Money movements additionally carry an actor on the ledger, so spend is attributable without cross-referencing the audit log.