Enterprise

Audit Log

Immutable, append-only record of every admin action: key rotations, user changes, budget updates, and org settings.

Enterprise feature

The audit log is available on Enterprise plans.

Overview

Every mutation to keys, users, apps, orgs, and budgets is recorded in an immutable audit log. Each entry captures who did what, to which resource, when, and from where.

Audit Entry Structure

jsonAudit Entry
{
  "id": "entry-uuid",
  "org_id": "org-uuid",
  "actor_id": "user-uuid",
  "action": "key.rotate",
  "resource_type": "key",
  "resource_id": "key-uuid",
  "metadata": { "new_key_id": "...", "overlap_hours": 24 },
  "ip_address": "203.0.113.42",
  "created_at": "2026-04-01T10:30:00Z"
}

Tracked Actions

ActionResourceDescription
key.createkeyAPI key created
key.revokekeyAPI key revoked
key.rotatekeyAPI key rotated
user.inviteuserUser invited to org
user.role_changeuserUser role updated
user.removeuserUser removed from org
app.createappApplication created
app.updateappApplication updated
app.deleteappApplication deleted
org.settings_updateorgOrganization settings changed
budget.createbudgetBudget created
budget.updatebudgetBudget limits modified
budget.deletebudgetBudget deleted

Query the Audit Log

GET
/api/v1/audit

Query audit entries with filters. Requires viewer role.

ParameterTypeDescription
actionstringFilter by action (e.g. key.rotate)
resource_typestringFilter by resource type (key, user, app, org, budget)
actor_idUUIDFilter by who performed the action
resource_idstringFilter by specific resource
sinceRFC3339Start of time range
untilRFC3339End of time range
limitintMax results (default 50, max 200)
offsetintPagination offset
bash
# Get recent key rotations
curl "https://api.ingateai.com/api/v1/audit?action=key.rotate&limit=20" \
  -H "Authorization: Bearer <token>"
GET
/api/v1/audit/:entryId

Get a specific audit entry by ID.