Skip to main content
GET /api/v2/storefront/audit-logs Returns the storefront activity feed: recent configuration and inventory-source changes, with the actor and before/after values attributed per row. Filter by resource type, inventory source, and date range.

Request

curl

Parameters

FieldTypeRequiredNotes
startDatestringNoISO timestamp; include logs at or after this time
endDatestringNoISO timestamp; include logs at or before this time
inventorySourceIdstringNoFilter to a single storefront inventory source by source ID
resourceTypesenum | arrayNoSTOREFRONT or STOREFRONT_INVENTORY_SOURCE. Defaults to all storefront resource types
actorOriginenumNohuman, agent, autonomous, or system. agent surfaces only changes Murph made on a user’s behalf; human only direct user changes
outcomeenumNosucceeded (the default feed), denied, or failed. Omit to see only changes that took effect; pass denied for blocked attempts or failed for errored ones. The denied/failed views are not limited to the default resource types
actorUserIdintegerNoFilter to actions taken by a specific user (by user id)
actorUserEmailstringNoFilter to actions taken by a specific user (by email)
resourceIdstringNoFilter to a single resource by its external id (e.g. an inventory source or advertiser id)
actionsenum | arrayNoNarrow to a subset of meaningful actions (e.g. only DELETE/ARCHIVE). Defaults to all meaningful actions
takeintegerNoResults to return, max 500 (default 50)
skipintegerNoResults to skip for pagination (default 0)

Response

FieldTypeNotes
logs[]arrayAudit rows, newest first
logs[].actionstringThe change applied (e.g. CREATE, UPDATE, DELETE)
logs[].resourceTypestringSTOREFRONT or STOREFRONT_INVENTORY_SOURCE
logs[].resourceId / resourceNamestring | nullThe affected resource
logs[].userId / userEmail / userNamemixed | nullActor when a user made the change
logs[].serviceTokenId / serviceTokenNamemixed | nullActor when a service token made the change
logs[].actorOriginstring | nullHow the action was initiated: human, agent (Murph acting on a user’s behalf), autonomous, or system
logs[].outcomestring | nullWhether the action took effect: succeeded, denied (blocked by policy/permission), or failed (errored mid-flight)
logs[].parametersobject | nullRequest parameters captured for the action
logs[].changesobject | nullBefore/after values
logs[].descriptionstringHuman-readable summary
totalintegerTotal matching rows (for pagination)

Who acted, and whether it took effect

Two fields answer the questions operators ask of any change:
  • actorOrigin — was it a person, the agent, automation, or the platform? agent means Murph made the change on a user’s behalf; human is a direct user change. Filter with ?actorOrigin=agent to see only what the agent did.
  • outcome — did it actually happen? The default feed returns only succeeded changes. To audit what was blocked or failed, pass ?outcome=denied (blocked by policy or permission) or ?outcome=failed (errored mid-flight). These attempt views intentionally widen beyond the default resource types so a denied attempt on any resource surfaces.
Connecting a payout account is recorded as a REGISTER action and is included in the default feed, so “who connected our payout account” is answerable here.
Operators don’t have to call this endpoint directly. In the storefront chat, opening Activity log (or /activity) renders this feed as a read-only panel with actor-origin and outcome chips, and asking Murph a specific question — “who changed our billing?”, “what changed yesterday?”, “what got blocked?” — answers it in prose from the same feed.

Errors

  • 400 VALIDATION_ERROR — malformed date or take over 500.
  • 401 UNAUTHORIZED — missing or invalid API key.
See Errors for the full error contract.

Activity tasks

All activity operations

Inventory sources

The sources these logs track

Get reporting metrics

Delivery metrics