> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List activity

> List recent configuration and inventory-source changes on the storefront

`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

```bash curl theme={null}
curl -G https://api.interchange.io/api/v2/storefront/audit-logs \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  --data-urlencode "resourceTypes=STOREFRONT_INVENTORY_SOURCE" \
  --data-urlencode "inventorySourceId=source_abc123" \
  --data-urlencode "startDate=2026-03-01T00:00:00Z" \
  --data-urlencode "take=50"
```

## Parameters

| Field               | Type          | Required | Notes                                                                                                                                                                                                                                        |
| ------------------- | ------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startDate`         | string        | No       | ISO timestamp; include logs at or after this time                                                                                                                                                                                            |
| `endDate`           | string        | No       | ISO timestamp; include logs at or before this time                                                                                                                                                                                           |
| `inventorySourceId` | string        | No       | Filter to a single storefront inventory source by source ID                                                                                                                                                                                  |
| `resourceTypes`     | enum \| array | No       | `STOREFRONT` or `STOREFRONT_INVENTORY_SOURCE`. Defaults to all storefront resource types                                                                                                                                                     |
| `actorOrigin`       | enum          | No       | `human`, `agent`, `autonomous`, or `system`. `agent` surfaces only changes Murph made on a user's behalf; `human` only direct user changes                                                                                                   |
| `outcome`           | enum          | No       | `succeeded` (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 |
| `actorUserId`       | integer       | No       | Filter to actions taken by a specific user (by user id)                                                                                                                                                                                      |
| `actorUserEmail`    | string        | No       | Filter to actions taken by a specific user (by email)                                                                                                                                                                                        |
| `resourceId`        | string        | No       | Filter to a single resource by its external id (e.g. an inventory source or advertiser id)                                                                                                                                                   |
| `actions`           | enum \| array | No       | Narrow to a subset of meaningful actions (e.g. only `DELETE`/`ARCHIVE`). Defaults to all meaningful actions                                                                                                                                  |
| `take`              | integer       | No       | Results to return, max `500` (default `50`)                                                                                                                                                                                                  |
| `skip`              | integer       | No       | Results to skip for pagination (default `0`)                                                                                                                                                                                                 |

## Response

```json theme={null}
{
  "logs": [
    {
      "id": 90217,
      "timestamp": "2026-03-04T18:22:11Z",
      "createdAt": "2026-03-04T18:22:11Z",
      "action": "UPDATE",
      "resourceType": "STOREFRONT_INVENTORY_SOURCE",
      "resourceId": "source_abc123",
      "resourceName": "Northwind CTV",
      "userId": 4412,
      "userEmail": "ops@northwind.example",
      "userName": "Northwind Ops",
      "serviceTokenId": null,
      "serviceTokenName": null,
      "actorOrigin": "human",
      "outcome": "succeeded",
      "parameters": { "status": "ACTIVE" },
      "changes": { "status": { "from": "PENDING", "to": "ACTIVE" } },
      "description": "Activated inventory source Northwind CTV"
    }
  ],
  "total": 1
}
```

| Field                                        | Type           | Notes                                                                                                                  |
| -------------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `logs[]`                                     | array          | Audit rows, newest first                                                                                               |
| `logs[].action`                              | string         | The change applied (e.g. `CREATE`, `UPDATE`, `DELETE`)                                                                 |
| `logs[].resourceType`                        | string         | `STOREFRONT` or `STOREFRONT_INVENTORY_SOURCE`                                                                          |
| `logs[].resourceId` / `resourceName`         | string \| null | The affected resource                                                                                                  |
| `logs[].userId` / `userEmail` / `userName`   | mixed \| null  | Actor when a user made the change                                                                                      |
| `logs[].serviceTokenId` / `serviceTokenName` | mixed \| null  | Actor when a service token made the change                                                                             |
| `logs[].actorOrigin`                         | string \| null | How the action was initiated: `human`, `agent` (Murph acting on a user's behalf), `autonomous`, or `system`            |
| `logs[].outcome`                             | string \| null | Whether the action took effect: `succeeded`, `denied` (blocked by policy/permission), or `failed` (errored mid-flight) |
| `logs[].parameters`                          | object \| null | Request parameters captured for the action                                                                             |
| `logs[].changes`                             | object \| null | Before/after values                                                                                                    |
| `logs[].description`                         | string         | Human-readable summary                                                                                                 |
| `total`                                      | integer        | Total 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.

<Tip>
  Operators don't have to call this endpoint directly. In the storefront chat,
  `list_storefront_activity` (or `/activity`) opens Activity with separate Calls
  and Changes views. This endpoint powers Changes; `GET /api/v2/activity/calls`
  powers Calls.
</Tip>

## Errors

* `400 VALIDATION_ERROR` — malformed date or `take` over `500`.
* `401 UNAUTHORIZED` — missing or invalid API key.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Activity tasks" href="/v2/storefront/activity/tasks" icon="list-check">
    All activity operations
  </Card>

  <Card title="Inventory sources" href="/v2/storefront/inventory-sources/overview" icon="plug">
    The sources these logs track
  </Card>

  <Card title="Get reporting metrics" href="/v2/storefront/activity/tasks/get-reporting-metrics" icon="chart-column">
    Delivery metrics
  </Card>
</CardGroup>
