One bounded page of the organization's audit trail.
Changed onReads one bounded page of the append-only trail in stable commit-sequence order, oldest first. Filtering by principal, operation, outcome and resource identifiers is applied to the page after it is read, so a page SCANS limit rows and RETURNS the subset that matched: next_after_seq is the seq of the last row scanned (the resume cursor), and exhausted is true only when the scan reached the end of the trail. A sparse filter therefore returns few or zero items with exhausted false — that means keep paging, not "no such events".
Reading the trail is itself audited, unconditionally: each page commits one audit.query event recording the normalized filter and the count returned, durably, in the same transaction as the read. No value material is ever in the trail, so none can be in this response.
Consistency limit of interactive paging: pages are ordered by the allocation seq. A transaction that commits out of allocation order can land below a cursor that has already passed it, so that event can be absent from the remainder of one paging session. It is durable and a fresh query recovers it. Exports do not have this limit: they page in commit order behind the writer barrier and are gap-free.
Request
- Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
- URL: /api/v1/orgs/{org}/audit
- Auth: HTTP bearer
Query parameters
Inclusive lower time bound (recorded-at). Absent means the epoch.
Inclusive upper time bound (recorded-at). Absent means unbounded.
Resume cursor: return events whose seq is strictly greater. Pass the previous page's next_after_seq to page forward.
The session ceiling. Absent on the first page (the server pins it to the trail's current head and returns it as upper_seq); pass that value back on every later page so paging terminates and never chases the audit.query events the reads themselves append.
Maximum rows SCANNED for this page (clamped to 1000). Matched rows may be fewer when a filter is set.
Match only events whose acting principal has this id (exact).
Match only events whose acting principal's display name (or username) matches this pattern. Supports * wildcards (e.g. alice*, *bot). Names are resolved only for principals that already appear in the trail you are authorized to read; this filter narrows that view and performs no directory lookup, so it discloses nothing you cannot already see.
Match only events of this type (the operation), e.g. value.set. Supports * wildcards (e.g. value.*). An unknown or unmatched pattern is not an error; it simply matches nothing.
Match only events with this outcome. To match several outcomes, use the repeatable outcomes parameter; both may be given and are unioned.
Match events with any of these outcomes (set membership). Repeat the parameter to select several, e.g. outcomes=denied&outcomes=failure. Unioned with the singular outcome when both are present.
Match only events acting on this object type. Supports * wildcards (e.g. secret*).
Match only events acting on this object id. Supports * wildcards.
Match only events sharing this correlation id — the link between an act's INTENT and OUTCOME events.
Response
One page of trail events.
Changes
- info
added the non-success response with the status
- info
- info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status
- info