Skip to content
TriedDocs
Account

List audit log

List who changed what in the workspace, newest first, with filters and paging.

GEThttps://api.tried.com.au/audit-log

Returns audit log entries for the workspace, newest first. Entries are written for successful changes to API keys, members, invites, public keys, agents, phone numbers, exports, SSO, billing settings and more, and for sensitive reads such as revealing unscrubbed call data.

Request#

Query parameter Type Required Description
action string No Only entries whose action starts with this text. api_key matches api_key.create, api_key.update and api_key.delete.
actor_id string No Only entries by this user ID or API key ID.
before integer No Only entries created before this Unix ms time. Pass the last created_timestamp you received to get the next page.
limit integer No Entries to return, 1 to 500. Default 100.

Example request#

curl "https://api.tried.com.au/audit-log?action=api_key&limit=50" \
  -H "Authorization: Bearer $TRIED_API_KEY"
const params = new URLSearchParams({ action: "api_key", limit: "50" });
const res = await fetch(`https://api.tried.com.au/audit-log?${params}`, {
  headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const entries = await res.json();
import os, requests

res = requests.get(
    "https://api.tried.com.au/audit-log",
    headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
    params={"action": "api_key", "limit": 50},
)
entries = res.json()

Response#

200 OK

[
  {
    "audit_log_id": "audit_1c3e5a7b9d0f2e4a6c8b1d3f",
    "actor_type": "user",
    "actor_id": "user_5e7a9c1b3d2f4e6a8c0b2d4f",
    "actor_label": "ops@example.com.au",
    "action": "api_key.create",
    "target_type": "api_key",
    "target_id": null,
    "details": { "name": "Analytics export", "scopes": ["analytics"] },
    "ip": "203.0.113.10",
    "created_timestamp": 1760313600000
  },
  {
    "audit_log_id": "audit_7d9f1b3a5c2e4f6a8b0d1c3e",
    "actor_type": "api_key",
    "actor_id": "key_6f1c2a9e4b7d03581e2c9a47",
    "actor_label": "Production backend",
    "action": "api_key.delete",
    "target_type": "api_key",
    "target_id": "key_0d8e4b1f7a2c96e53b0f1d84",
    "details": {},
    "ip": "198.51.100.7",
    "created_timestamp": 1760227200000
  }
]
Field Type Description
actor_type string user (dashboard session), api_key, or system (written by the server, not a request).
actor_id string or null User ID or API key ID of the actor.
actor_label string or null The user's email or the API key's name.
action string What happened, as <resource>.<verb>, for example member.role_change, number.create or export.download.
target_type string or null Kind of resource acted on.
target_id string or null ID of that resource, when the route has one.
details object Request fields relevant to the action, for example the new role or scopes.
ip string or null Client IP of the request.

Errors#

Status When
400 A query parameter fails validation, for example limit above 500.
401 Missing or invalid API key.
403 The key's IP allowlist or scopes reject the request (this route needs the admin scope), or a dashboard user without the admin role calls it (Requires role: admin).
429 Rate limit exceeded. See Rate limits.

See Errors for the body format.