Cactal Audit log API

Read the immutable record of actions performed in an organization by users and API keys.

Operations 1

GET /organizations/{organizationId}/audit-log List audit log events #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cactal-ai:cactal-ai-audit-log-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cactal-ai-audit-log-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cactal Ai Audit log API
  version: 1.0.0
  description: 'Operations tagged Audit log across 2 of this provider''s published API definitions: openapi.json, cactal-ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.cactal.ai/v1
security:
- apiKey: []
tags:
- name: Audit Log
  description: Read the immutable record of actions performed in an organization by users and API keys.
paths:
  /organizations/{organizationId}/audit-log:
    get:
      operationId: auditLog.list
      summary: List audit log events
      description: Returns the organization’s immutable audit trail newest first as a paginated set, recording mutations performed by users and API keys across organizations, members, invitations, websites, and billing. Filter with the `eventType`, `resourceType`, `actorKind`, `actorPrincipalId`, and `websiteId` query parameters; `websiteId` narrows the trail to one website, including events recorded against its nested resources. Page size defaults to 20 (maximum 100). Requires a role with audit log access (owner or admin).
      tags:
      - Audit Log
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          type: string
          minLength: 1
      - name: eventType
        in: query
        required: false
        schema:
          type: string
          minLength: 1
      - name: resourceType
        in: query
        required: false
        schema:
          type: string
          minLength: 1
      - name: actorKind
        in: query
        required: false
        schema:
          type: string
          enum:
          - user
          - api_key
          - system
          - agent
      - name: actorPrincipalId
        in: query
        required: false
        schema:
          type: string
          minLength: 1
      - name: websiteId
        in: query
        required: false
        schema:
          description: Return only events about this website — either the website itself or a resource belonging to it.
          type: string
          minLength: 1
      - name: cursor
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          default: 20
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: One page of audit events, newest first.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Unique event ID.
                        occurredAt:
                          description: When the action happened.
                          type: string
                          format: date-time
                        eventType:
                          type: string
                          description: Stable event identifier, e.g. `organizations.members.remove`. Also usable as the `eventType` filter.
                        summary:
                          description: Human-readable one-line summary of the action.
                          type:
                          - string
                          - 'null'
                        actorKind:
                          type: string
                          enum:
                          - user
                          - api_key
                          - system
                          - agent
                          description: What kind of principal performed the action.
                        actorPrincipalId:
                          description: Principal ID of the actor, when known. Usable as the `actorPrincipalId` filter to follow one actor.
                          type:
                          - string
                          - 'null'
                        actorDisplay:
                          anyOf:
                          - type: object
                            properties:
                              label:
                                type: string
                                description: 'Display name of the actor: the user’s name, the API key’s name, or `Deleted user` for a person who deleted their account.'
                              email:
                                description: Email of user actors; `null` for API key actors and deleted users.
                                type:
                                - string
                                - 'null'
                            required:
                            - label
                            - email
                            additionalProperties: false
                          - type: 'null'
                          description: Resolved display info for the actor; `null` when the actor cannot be resolved (for example `system` actors or an API key that no longer exists).
                        resourceType:
                          description: Type of the affected resource, e.g. `organization_member`.
                          type:
                          - string
                          - 'null'
                        resourceId:
                          description: ID of the affected resource.
                          type:
                          - string
                          - 'null'
                        metadata:
                          anyOf:
                          - type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                          - type: 'null'
                          description: Event-specific structured details.
                        durationMs:
                          type: integer
                          description: How long the recorded operation took, in milliseconds.
                      required:
                      - id
                      - occurredAt
                      - eventType
                      - summary
                      - actorKind
                      - actorPrincipalId
                      - actorDisplay
                      - resourceType
                      - resourceId
                      - metadata
                      - durationMs
                      additionalProperties: false
                  nextCursor:
                    description: Opaque cursor for the next page. Pass it as the `cursor` parameter on the next request. `null` when this is the last page.
                    type:
                    - string
                    - 'null'
                required:
                - items
                - nextCursor
                additionalProperties: false
        '400':
          description: Validation failed. The response `message` names the first invalid field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceError'
        '401':
          description: Missing, invalid, expired, or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceError'
        '403':
          description: The authenticated principal lacks the required capability.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceError'
        '404':
          description: The resource does not exist or is outside the principal’s access scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceError'
        '429':
          description: Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceError'
      x-cactal-required-capability: auditLog.list
      x-cactal-read-only: true
      x-cactal-destructive: false
      x-cactal-idempotent: true
    servers:
    - url: https://api.cactal.ai/v1
components:
  schemas:
    ServiceError:
      type: object
      required:
      - kind
      - message
      description: Canonical error body returned by every non-2xx response. Extra fields carry error-specific details.
      properties:
        kind:
          type: string
          enum:
          - validation
          - unauthorized
          - forbidden
          - not_found
          - conflict
          - rate_limited
          - internal
          description: Stable, machine-readable error category.
        message:
          type: string
          description: Human-readable explanation of the failure.
        suggestion:
          type: string
          description: What to do next when the failure has a known fix; may name the exact operation to call.
        validValues:
          type: array
          items:
            type: string
          description: The acceptable values for the failing field, when the set is closed.
      additionalProperties: true
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: Cactal API key. Create one in the dashboard or via `POST /apiKeys`. The plaintext key is shown once at creation.
x-refined-from:
- openapi.json
- cactal-ai-openapi.json