# List audit log entries

`GET https://evohub.io/api/v1/retro/audit-logs`

Part of the [Retro API](https://docs.evohub.io/retro.md) reference · operationId `listRetroAuditLogs`.

Changes made in Retro across the organization, newest first: boards
created, renamed, moved, reshared, closed, reopened and deleted;
people and teams added and removed; columns, cards and action items
created, changed and deleted. Send both `resource_type` and
`resource_id` to see one resource's history; one without the other
is ignored.

Requires the `retro:audit:read` scope.

## Authorization

Any one of:

- `bearerKey`
- `headerKey`

Where:

- `bearerKey`: HTTP Bearer — An EvoHub API key (`evohub_…`) as a bearer token.
- `headerKey`: API key in the header `X-API-Key` — An EvoHub API key (`evohub_…`).

## Query parameters

- `resource_type` (string, one of `board`, `column`, `card`, `action_item`): The kind of resource, sent with `resource_id`.
- `resource_id` (string, example `brd_3f9a1c7e2b8d4a60`): The resource's ID, sent with `resource_type`.
- `limit` (integer, default `100`, min 1, max 500): How many entries to return. Values above 500 are read as 500; a value that is not a positive integer is ignored.

## Responses

### 200 — The entries; `[]` when there are none.

Content type: `application/json`

Type: `object`

- `success` (boolean)
- `data` (array of AuditLogEntry)
  - `id` (string, example `aud_1c7e9a3f5b2d8046`)
  - `org_id` (string)
  - `user_id` (string): Who made the change (for an organization key, the key's ID).
  - `resource_type` (string, one of `board`, `column`, `card`, `action_item`)
  - `resource_id` (string)
  - `action` (string, example `board.closed`): What happened, for example `board.created`, `board.updated`, `board.team_changed`, `board.visibility_changed`, `board.share_mode_updated`, `board.share_token_rotated`, `board.closed`, `board.reopened`, `board.deleted`, `board.member_set`, `board.member_removed`, `board.team_shared`, `board.team_unshared`, `column.created`, `column.updated`, `column.deleted`, `card.created`, `card.updated`, `card.deleted`, `card.merged`, `action_item.created`, `action_item.updated`, `action_item.deleted`.
  - `actor_type` (string, example `user`)
  - `details` (object): What changed; left out when there is nothing to add.
    - Other keys: any
  - `created_at` (string (date-time))

### 401 — No API key was sent, or it is unknown, revoked or expired (`UNAUTHORIZED`).

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 403 — The key lacks the scope this endpoint needs (`FORBIDDEN`).

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 429 — Too many requests (`RATE_LIMITED`). Wait for `Retry-After` seconds.

Headers:

- `Retry-After` (integer): Seconds to wait before retrying.

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 500 — Something went wrong on EvoHub's side (`INTERNAL_ERROR`). Retry later.

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

## Example request

```bash
curl -X GET 'https://evohub.io/api/v1/retro/audit-logs' \
  -H 'Authorization: Bearer <TOKEN>'
```
