EvoHub Docs Sign in

Organization API › Audit log

List the audit log

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs-dev.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs-docs https://docs-dev.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs-dev.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs-docs": {
      "type": "http",
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}
GET/api/v1/audit-logs

Who changed what in the organization's members, teams, roles, invitations, keys and settings, and who signed in, newest first. Paged with limit and offset. The other products keep their own logs; EvoTrail reads them all together.

Permission (API-key scope): identity:audit:read.

Authorization

Any one of:

Parameters

Query parameters

  • limit integer
    Page size. Over 200 (or not a number) gives 50.
    Default: 50 · Minimum: 1 · Maximum: 200
  • offset integer
    Default: 0 · Minimum: 0
  • exclude string
    Comma-separated actions to leave out, for example user.login,user.logout.

Responses

200

The entries.

Content type: application/json

Type: object

  • data array of AuditLog required
    Show AuditLog properties
    • id string
    • org_id string
    • actor_id string
      The user or API key that did it.
    • actor_name string
    • action string
      resource.verb, for example user.role_change, team.member_add, role.assign, invitation.create, org.settings_update, api_key.create, user.login.
    • resource string
    • resource_id string
    • metadata object
      Other keys: any
    • request_id string
    • ip string
    • created_at string (date-time)
  • success boolean required
    Value: true

401

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

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      The response's X-Request-ID; quote it to support.

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      The response's X-Request-ID; quote it to support.

429

Too many requests (RATE_LIMITED). Wait Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      The response's X-Request-ID; quote it to support.

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      The response's X-Request-ID; quote it to support.

Example request

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

Last updated