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

# Audit log

> Who changed what in your partner, through the dashboard or the API.

## What is recorded

Every change made through the dashboard or the API is recorded: voucher sets, change requests, vouchers (batch creates, revocations, every reveal), uploads, schedules, stock alert rules, members, groups, settings, API keys, webhook endpoints and replays, IP allowlist entries, branding. Security events appear too, for example `security.ip-denied` when a request was refused by your IP allowlist.

Not recorded as audit events: plain reads, webhook delivery attempts (see the [delivery log](https://docs-provider.voucher.allride.io/webhooks/retries-and-logs.md#delivery-logs)) and stock recalculations. Idempotent replays write nothing.

Each event has:

| Field | Meaning |
| - | - |
| `createdAt` | When it happened |
| `actor` | `{type, id, label}`: a member (`partner-user`, with email), an API key (`api-key`, with its name) or the system. Actions by AllRide staff appear as `{"type": "admin-user", "id": null, "label": "AllRide"}`. |
| `actionEn`, `actionDe` | What happened, in English and German |
| `actionType`, `entityType`, `entityId` | Kind of action and the affected resource |
| `metaData` | Changes as `[before, after]` pairs; secrets as `••••`, never voucher values |

## Reading the audit log

`GET /partner/v1/audit-events` needs `view-audit` (delegable to API keys):

```bash theme={null}
curl -sS -G "$VOUCHER_API_BASE_URL/partner/v1/audit-events" \
  -H "Authorization: Bearer $VOUCHER_API_KEY" \
  --data-urlencode "filter[entityType]=voucher-set" \
  --data-urlencode "filter[entityId]=2030" \
  --data-urlencode "filter[createdAt][gte]=2026-10-01T00:00:00Z"
```

* Filters: `actionType`, `entityType`, `entityId`, `actor.type`, `actor.id`, `createdAt`; newest first.
* Without `filter[createdAt][gte]` the last 90 days are searched; a window longer than 24 months → 400 `data-failed-validation` with `property` `filter[createdAt]`, constraint [`invalid-filter`](https://docs-provider.voucher.allride.io/errors/catalog#invalid-filter) and `params.maxMonths` `24`.
* To keep a copy, page through the list with `perPage=100` ([Downloading large lists](https://docs-provider.voucher.allride.io/guides/pagination.md#downloading-large-lists)).

## Retention

Audit events are kept for **24 months**, then deleted. Download them (page through the list) if you need them longer.

## Related

* [Members and groups](https://docs-provider.voucher.allride.io/workspace/members-and-groups.md)
* [Pagination, filtering and sorting](https://docs-provider.voucher.allride.io/guides/pagination.md)
* [Vouchers and uploads](https://docs-provider.voucher.allride.io/provider/vouchers-and-uploads.md#viewing-voucher-values)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.