> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ankra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List the audit log of one cluster



## OpenAPI

````yaml https://platform.ankra.app/openapi.json get /org/clusters/{cluster_id}/audit-logs
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers:
  - url: https://platform.ankra.app
security: []
paths:
  /org/clusters/{cluster_id}/audit-logs:
    get:
      tags:
        - Organisation API
      summary: List the audit log of one cluster
      operationId: list_cluster_audit_logs
      parameters:
        - in: path
          name: cluster_id
          required: true
          schema:
            format: uuid
            type: string
        - in: query
          name: page
          required: false
          schema:
            default: 1
            type: integer
        - in: query
          name: page_size
          required: false
          schema:
            default: 50
            maximum: 200
            type: integer
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: user_id
          required: false
          schema:
            format: uuid
            type: string
        - in: query
          name: action_type
          required: false
          schema:
            type: string
        - in: query
          name: resource_type
          required: false
          schema:
            type: string
        - in: query
          name: start_date
          required: false
          schema:
            format: date-time
            type: string
        - in: query
          name: end_date
          required: false
          schema:
            format: date-time
            type: string
        - in: query
          name: actor_type
          required: false
          schema:
            enum:
              - agent
              - human
              - system
            type: string
        - in: query
          name: outcome
          required: false
          schema:
            enum:
              - succeeded
              - failed
            type: string
        - in: query
          name: agent_task_id
          required: false
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuditLogListResponse'
          description: One cluster's slice of the organisation audit trail, newest first.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuditDetailError'
          description: Missing the audit.read permission
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuditDetailError'
          description: Cluster not found in the caller's organisation
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Request validation error
components:
  schemas:
    OrgAuditLogListResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/OrgAuditLogItem'
          type: array
        page:
          type: integer
        page_size:
          type: integer
        total:
          type: integer
        total_pages:
          type: integer
      required:
        - items
        - total
        - page
        - page_size
        - total_pages
      type: object
    OrgAuditDetailError:
      properties:
        detail:
          type: string
      required:
        - detail
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    OrgAuditLogItem:
      properties:
        action_type:
          type: string
        actor:
          $ref: '#/components/schemas/OrgAuditActor'
        cluster_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
        cluster_is_deleted:
          type: boolean
        cluster_name:
          anyOf:
            - type: string
            - type: 'null'
        details:
          type: object
        ip_address:
          anyOf:
            - type: string
            - type: 'null'
        log_id:
          format: uuid
          type: string
        outcome:
          $ref: '#/components/schemas/OrgAuditOutcome'
        resource_id:
          anyOf:
            - type: string
            - type: 'null'
        resource_type:
          type: string
        target:
          $ref: '#/components/schemas/OrgAuditTarget'
        timestamp:
          format: date-time
          type: string
        user_email:
          type: string
        user_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
      required:
        - log_id
        - timestamp
        - user_id
        - user_email
        - action_type
        - resource_type
        - resource_id
        - details
        - ip_address
        - cluster_id
        - cluster_name
        - cluster_is_deleted
        - actor
        - target
        - outcome
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    OrgAuditActor:
      description: >-
        Who took the action. type separates an autonomous agent turn from a
        hand-clicked one, which email cannot: a dispatched agent run borrows the
        identity of the human who owns its session. The agent members are
        populated only when the row resolves to a dispatched agent run.
      properties:
        agent_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
        agent_name:
          anyOf:
            - type: string
            - type: 'null'
        autonomy:
          anyOf:
            - type: string
            - type: 'null'
        email:
          type: string
        origin:
          anyOf:
            - type: string
            - type: 'null'
        run_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
        session_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
        trigger:
          anyOf:
            - type: string
            - type: 'null'
        type:
          enum:
            - agent
            - human
            - system
          type: string
      required:
        - type
        - email
        - agent_id
        - agent_name
        - run_id
        - session_id
        - autonomy
        - origin
        - trigger
      type: object
    OrgAuditOutcome:
      description: >-
        Whether the action succeeded. "unknown" is for writers that record no
        success marker - a domain audit describes an action already committed
        when the row was written, so a missing marker is not a failure.
      properties:
        duration_ms:
          anyOf:
            - type: integer
            - type: 'null'
        error:
          anyOf:
            - type: string
            - type: 'null'
        status:
          enum:
            - succeeded
            - failed
            - unknown
          type: string
      required:
        - status
        - error
        - duration_ms
      type: object
    OrgAuditTarget:
      description: >-
        What the action acted on, resolved from the recorded parameters. An
        empty kind and name means nothing nameable was recorded and the client
        should fall back to resource_id.
      properties:
        kind:
          type: string
        name:
          type: string
        namespace:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - kind
        - name
        - namespace
      type: object

````