Axsync API v2

Audit log

Security-relevant actions in a workspace. Retained for 400 days on paid plans.

The audit entry object

FieldTypeDescription
idstringUnique identifier, prefixed with al_.
actionstringAction name, for example member.role_changed.
actor_idstringWho did it.
ipstringSource IP address.
occurred_attimestampTime of the action.

Example

{
  "id": "al_8f3k2Q9xLm",
  "action": "member.role_changed",
  "actor_id": "us_5Kd9PaT3",
  "ip": "203.0.113.24",
  "occurred_at": "2026-10-12T15:02:44Z"
}

GET /audit-log

List audit log. Returns a paginated list of audit log.

Required scope: audit:read

Query parameters

FieldTypeDescription
limitintegerPage size, 1–100. Default 25.
cursorstringCursor from the previous page.
sortstringField to sort by, prefix - for descending.
filterstringFilter expression, see Filtering and sorting.

Request

curl -X GET "https://api.axnode.net/v2/audit-log" \
  -H "Authorization: Bearer $AXSYNC_TOKEN"
const res = await fetch('https://api.axnode.net/v2/audit-log', {
  method: 'GET',
  headers: { Authorization: `Bearer ${token}` }
});
const data = await res.json();
import requests

res = requests.get(
    'https://api.axnode.net/v2/audit-log',
    headers={'Authorization': f'Bearer {token}'},
)
data = res.json()

Response 200

{
  "data": [
    {
      "id": "al_8f3k2Q9xLm",
      "action": "member.role_changed",
      "actor_id": "us_5Kd9PaT3",
      "ip": "203.0.113.24",
      "occurred_at": "2026-10-12T15:02:44Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

GET /audit-log/{id}

Retrieve an audit entry. Retrieves an audit entry by its identifier.

Required scope: audit:read

Request

curl -X GET "https://api.axnode.net/v2/audit-log/al_8f3k2Q9xLm" \
  -H "Authorization: Bearer $AXSYNC_TOKEN"
const res = await fetch('https://api.axnode.net/v2/audit-log/al_8f3k2Q9xLm', {
  method: 'GET',
  headers: { Authorization: `Bearer ${token}` }
});
const data = await res.json();
import requests

res = requests.get(
    'https://api.axnode.net/v2/audit-log/al_8f3k2Q9xLm',
    headers={'Authorization': f'Bearer {token}'},
)
data = res.json()

Response 200

{
  "id": "al_8f3k2Q9xLm",
  "action": "member.role_changed",
  "actor_id": "us_5Kd9PaT3",
  "ip": "203.0.113.24",
  "occurred_at": "2026-10-12T15:02:44Z"
}