GET/api/v1/audit-log
List the org's audit trail
Who changed what and when, newest first, as a projected feed: each entry names the resource (a public type, its id and name), the actor, the request it belongs to, a semantic event's public ids where there is one, and the public fields that changed — never the stored row images, and only the KEYS of an asset's or a record's fields. Something the feed does not describe is resource.type: other with no name and no changes. Filters combine with AND; since / until are exclusive. An event entry's changes are on the entry with the same request_id. For an OAuth token, its person needs the view-audit-log permission (no platform-admin bypass). 404 when the org does not have the audit log, and for an OAuth token whose person may not view it.
Scopes: audit:read
Parameters
resource_typequery · "asset" | "file" | "project" | "collection" | "playlist" | "record" | "tag" | "tag_link" | "asset_type" | "field_definition" | "workflow" | "spec_profile" | "api_key" | "run" | "receipt" | "delivery_requirement" | "delivery_target" | "schedule_slot" | "service" | "channel" | "share_link" | "comment" | "marker" | "confirmation" | "other"Only entries about this kind of resource.
resource_idquery · stringOnly entries about this resource (its id as
resource.idshows it — for an asset, a version's id).actor_kindquery · "user" | "api_key" | "oauth" | "system" | "orchestration" | "unknown"Only entries made by this kind of actor.
actionquery · "created" | "updated" | "deleted" | "event"Only entries with this action.
request_idquery · stringOnly the entries one request produced.
sincequery · string (date-time)Only entries strictly after this instant (ISO 8601 with offset), compared to the millisecond.
untilquery · string (date-time)Only entries strictly before this instant (ISO 8601 with offset), compared to the millisecond.
limitquery · integerPage size, default 50. Values above 100 are treated as 100.
cursorquery · stringnext_cursor from the previous page, with the other parameters unchanged.
Response 200AuditEntryList
dataarray of AuditEntryrequiredNewest first (by
occurred_at, then id).idstring (uuid)requiredoccurred_atstring (date-time)requiredaction"created" | "updated" | "deleted" | "event"requiredcreated,updated,deleted— the change itself.event— what a change MEANT (an asset created through the API, a file attached, a legal hold placed), recorded beside the change in the same request: itschangesare on the entry with the samerequest_id.resourceobjectrequiredtypestringrequiredThe kind of thing changed:
asset,file,project,collection,playlist,record,tag,tag_link,asset_type,field_definition,workflow,spec_profile,api_key,run,receipt,delivery_requirement,delivery_target,schedule_slot,service,channel,share_link,comment,marker,confirmation,other.otheris something the feed does not describe (its name and changes are withheld). More types may be added.idstringrequiredThe changed row's id (for an asset, the version's id).
namestring or nullrequiredIts name where the feed knows it; null otherwise.
actorobjectrequiredkind"user" | "api_key" | "oauth" | "system" | "orchestration" | "unknown"requireduser— a person in the app;api_key— an org API key;oauth— an app acting for a person;system— the platform itself (a migration or maintenance);orchestration— a workflow run;unknown— not recorded.idstring (uuid) or nullrequiredThe person's principal id (
user,oauth), the key's id (api_key, when the entry records it), or the run's id (orchestration, GET /api/v1/runs/{id}); null otherwise.namestring or nullrequiredThe person's name, or the key's name.
client_idstring or nullrequiredFor
oauth, the app's OAuth client_id when the entry records it.
request_idstring or nullrequiredShared by every entry one request produced; filter by it to see a whole change.
eventobject or nullrequiredFor an entry that records a semantic event: its kind and its public ids and names (which keys depend on the kind). Null otherwise.
kindstringrequiredThe event's kind, e.g.
api_asset_create,legal_hold,derivation. More may be added.
changesarray of objectrequiredThe public fields that changed. Empty for an
event, forother, and when nothing public changed.fieldstringrequiredA public field of the resource.
fields(an asset's or a record's field values) reports the changed KEYS only.fromanyrequiredThe value before (null when created or unset); for
fields, the changed keys that were present before.toanyrequiredThe value after (null when deleted or cleared); for
fields, the changed keys present after.
next_cursorstring or nullrequiredPass as
cursorto get the next page; null means this is the last page.
Other responses
- 401 unauthenticated — no key, or an unknown, revoked or expired one.
- 403 insufficient-scope — the key lacks a required scope.
- 404 not-found.
- 422 validation — a bad filter,
limitorcursor(errors[].pathnames it). - 429 rate-limited — the key's request budget is spent; wait Retry-After seconds.
- 500 internal.