GET /api/audit/operations
The operation ids PRESENT IN THIS LOG, with names.
Returns the operation ids that actually appear in this audit log -- not the full
operation catalogue, which is GET /api/operations. Pass any of them to
GET /api/audit as ?operations=<id>,<id>.
Authentication
Send the session id as Authorization: Bearer <session id>, and an RFC 9449 DPoP proof in the DPoP header if your session is bound to a key. The two are required together, not as alternatives — see Authenticating and Proving you hold your key.
There is no session cookie on any response and none is read on any request. Do not set credentials: "include" on a browser fetch.
Request
No request body.
Responses
200
The operations present in the log.
| Field | Type | Required | Description |
|---|---|---|---|
operations | array of object | yes | |
detail | string | no |
operations[] object
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | no | |
name | string | no |
Example
{
"operations": [
{
"id": 0,
"name": "..."
}
],
"detail": "..."
}
401
No live session, or a DPoP proof that did not verify.
SESSION_NOT_FOUND -- the credential names no session this Gateway holds.
SESSION_EXPIRED -- it aged out. Both carry reauth: true; obtain a new credential
rather than retrying.
PROOF_* -- the sender constraint refused. See the DPoP section of this document for the
full table; PROOF_MALFORMED is a 400 and PROOF_REPLAY_CACHE_FULL a 503, and the
rest are here.
SCOPED_CREDENTIAL_EXPIRED -- a scoped browser credential passed its fixed lifetime. Use
does not extend it: an idle timeout would be refreshed by exactly the traffic a stolen
handle produces.
502
AUDIT_DB_UNAVAILABLE. Not an empty result. Retryable.
503
AUDIT_READER_UNAVAILABLE -- no reader configured, no query run. Not an empty result.
Error handling
Every failure answers JSON carrying at least code and detail. Match on code — detail is written for a human debugging the call and its wording is not part of the contract. See the error model.
| Status | Meaning |
|---|---|
401 | No live session, or a DPoP proof that did not verify. SESSION_NOT_FOUND -- the credential names no session this Gateway holds. SESSION_EXPIRED -- it aged out. Both carry reauth: true; obtain a new credential rather than retrying. PROOF_* -- the sender constraint refused. See the DPoP section of this document for the full table; PROOF_MALFORMED is a 400 and PROOF_REPLAY_CACHE_FULL a 503, and the rest are here. SCOPED_CREDENTIAL_EXPIRED -- a scoped browser credential passed its fixed lifetime. Use does not extend it: an idle timeout would be refreshed by exactly the traffic a stolen handle produces. |
502 | AUDIT_DB_UNAVAILABLE. Not an empty result. Retryable. |
503 | AUDIT_READER_UNAVAILABLE -- no reader configured, no query run. Not an empty result. |