We use cookies to enhance your experience and measure how the site performs. Choose "Essential Only" to disable analytics. Read our Privacy Policy.

    Odeus Docs

    Introduction to Audit Logs

    Retrieve a record of actions performed in your workspace — who did what, when, and from where.

    Introduction to Audit Logs

    Retrieve a record of actions performed in your workspace — who did what, when, and from where.

    The Audit Logs API can be used to:

    • Feed workspace activity data into your SIEM or other monitoring tools
    • Track changes across your organization, from workspace settings and model keys to role changes, failed login attempts, and more
    • Build custom dashboards and reports for workspace activity

    Prerequisites

    To use the Audit Logs API, you need:

    • Workspace Admin Permission: Only workspace administrators can create API keys with audit log permissions.
    • API Key with AUDIT_LOG_API Scope: Your API key must have the dedicated audit log scope enabled.

    Important Security Notice: Users with access to an API key with the AUDIT_LOG_API scope can read all audit log data for the workspace, including IP addresses, user actions, and configuration changes. Only grant this permission to trusted users.

    Retention

    Audit log entries are retained for 90 days. Make sure to export or forward any data you need before it expires.

    Available Endpoint

    GET /audit-logs/{workspace_id}
    

    Authentication

    All API requests require Bearer token authentication:

    Authorization: Bearer YOUR_API_KEY
    

    The Audit Log Entry

    Every audit log entry describes an actor taking an action on an entity. Here's what each entry contains:

    FieldDescription
    actor_id, actor_type, actor_nameWho performed the action. Actor types: USER, API_KEY, SYSTEM, SCIM
    actionWhat happened, in dot notation (e.g. user.updated, workspace.created, api_keys.deleted)
    entity_type, entity_idWhich resource was affected (e.g. User, Workspace, Group, IntegrationConnection)
    created_atWhen the event occurred
    ip_address, user_agentWhere the request came from
    changesA before/after diff of changed fields (for update events)
    snapshotFull entity snapshot or additional event metadata (e.g. on delete/create events, or extra context like failed login details)

    Pagination

    The API uses cursor-based pagination. Each response includes a next_cursor field — pass it as the cursor query parameter in your next request to get the following page. When next_cursor is null, you've reached the end.

    # First request
    curl "https://api.odeus.ai/audit-logs/{workspace_id}?limit=50" \
      -H "Authorization: Bearer YOUR_API_KEY"
    
    # Next page
    curl "https://api.odeus.ai/audit-logs/{workspace_id}?limit=50&cursor={next_cursor}" \
      -H "Authorization: Bearer YOUR_API_KEY"
    

    Filtering

    You can narrow results using query parameters:

    ParameterTypeDescription
    fromdatetimeStart of date range (ISO 8601)
    todatetimeEnd of date range (ISO 8601)
    entity_typestringFilter by entity type (e.g. User, Workspace)
    actor_iduuidFilter by the actor who performed the action
    limitintegerItems per page (default 50, max 50)
    cursoruuidCursor from previous response for pagination

    Error Handling

    Status CodeDescription
    400Invalid request parameters (e.g. malformed date, invalid UUID)
    401Missing or invalid API key
    403API key lacks AUDIT_LOG_API scope, or workspace_id doesn't match
    429Rate limit exceeded — back off and retry
    500Internal server error

    Odeus intentionally blocks browser-origin requests to protect your API key and ensure your applications remain secure. For more information, please see our guide on API Key Best Practices.