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

# List API audit logs

> Returns paginated REST API request audit log entries for the authenticated organization, including method, path, status code, and captured request and response payloads. Requires the audit_logs:read scope and an acting user with the owner-only READ_AUDIT_LOGS permission; other callers receive PERMISSION_DENIED. Results are newest first. Requires a timestamp window of at most 366 days; use the cursor to continue the same filtered result set.

<Note>**Beta**: this endpoint may change or be removed without notice while in beta. There is no compatibility promise until it reaches general availability.</Note>


## OpenAPI

````yaml /openapi.json get /v1/audit-logs/api-requests
openapi: 3.1.0
info:
  title: ModernLoop Platform API
  version: 0.1.0
  description: The ModernLoop Platform API for managing recruiting workflows.
  contact:
    email: support@modernloop.io
servers:
  - url: https://api.modernloop.io
security: []
tags:
  - name: Activity
  - name: Application
  - name: Audit Log
  - name: Candidate
  - name: Interview Event
  - name: Interview Module
  - name: Job
  - name: Job Stage
  - name: Me
  - name: Organization
  - name: Schedule
  - name: Scheduling Task
  - name: Task Queue
  - name: Template
  - name: User
paths:
  /v1/audit-logs/api-requests:
    get:
      tags:
        - Audit Log
      summary: List API audit logs
      description: >-
        Returns paginated REST API request audit log entries for the
        authenticated organization, including method, path, status code, and
        captured request and response payloads. Requires the audit_logs:read
        scope and an acting user with the owner-only READ_AUDIT_LOGS permission;
        other callers receive PERMISSION_DENIED. Results are newest first.
        Requires a timestamp window of at most 366 days; use the cursor to
        continue the same filtered result set.
      operationId: listApiAuditLogs
      parameters:
        - schema:
            type: string
            description: >-
              Opaque pagination cursor from the previous page's
              pagination.next_cursor, bound to the same query filters.
          required: false
          description: >-
            Opaque pagination cursor from the previous page's
            pagination.next_cursor, bound to the same query filters.
          name: cursor
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Page size. Must be between 1 and 100; defaults to 25.
          required: false
          description: Page size. Must be between 1 and 100; defaults to 25.
          name: limit
          in: query
        - schema:
            type: array
            items:
              type: string
              pattern: >-
                ^(?:aal_)?(?:[0-9a-fA-F]{32}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
              description: >-
                an API audit log entry ID. Accepts the canonical prefixed
                compact UUID, a prefixed dashed UUID, a bare dashed UUID, or a
                bare compact UUID; input is case-insensitive.
              example: aal_a1b2c3d4e5f64789a1b2c3d4e5f64789
            minItems: 1
            description: Comma-separated list of IDs; maximum 100 values.
          required: false
          description: Comma-separated list of IDs; maximum 100 values.
          name: ids
          in: query
          style: form
          explode: false
        - schema:
            type: string
            format: date-time
            description: Includes entries recorded at or after this timestamp. Required.
          required: true
          description: Includes entries recorded at or after this timestamp. Required.
          name: timestamp_gte
          in: query
        - schema:
            type: string
            format: date-time
            description: Includes entries recorded before this timestamp. Required.
          required: true
          description: Includes entries recorded before this timestamp. Required.
          name: timestamp_lt
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ApiAuditLog'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                required:
                  - data
                  - pagination
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '410':
          description: Gone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    ApiAuditLog:
      type: object
      properties:
        id:
          type: string
          pattern: ^aal_[0-9a-f]{32}$
          description: >-
            Canonical API audit log entry ID (aal_ followed by 32 lowercase
            hexadecimal UUID characters).
          example: aal_a1b2c3d4e5f64789a1b2c3d4e5f64789
        requested_at:
          type: string
          format: date-time
          description: When the request was recorded.
        actor:
          type: string
          pattern: ^usr_[0-9a-f]{32}$
          description: >-
            Canonical user ID (usr_ followed by 32 lowercase hexadecimal UUID
            characters).
          example: usr_a1b2c3d4e5f64789a1b2c3d4e5f64789
        token_type:
          type: string
          enum:
            - API_KEY
            - OAUTH
            - AGENT
          description: Kind of token that authenticated the recorded call.
        token_name:
          type:
            - string
            - 'null'
          description: Display name of the token; null when unnamed.
        operation_id:
          type:
            - string
            - 'null'
          description: OpenAPI operation id; null when the request matched no operation.
        method:
          type: string
          description: HTTP method.
        path:
          type: string
          description: Request path.
        status_code:
          type: integer
        duration_ms:
          type:
            - integer
            - 'null'
        request_body:
          $ref: '#/components/schemas/AuditLogPayload'
        request_query:
          $ref: '#/components/schemas/AuditLogPayload'
        response_body:
          $ref: '#/components/schemas/AuditLogPayload'
      required:
        - id
        - requested_at
        - actor
        - token_type
        - token_name
        - operation_id
        - method
        - path
        - status_code
        - duration_ms
        - request_body
        - request_query
        - response_body
    Pagination:
      type: object
      properties:
        next_cursor:
          type:
            - string
            - 'null'
      required:
        - next_cursor
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - UNAUTHENTICATED
                - INSUFFICIENT_SCOPE
                - VALIDATION_FAILED
                - INVALID_CURSOR
                - PAYLOAD_TOO_LARGE
                - NOT_FOUND
                - PERMISSION_DENIED
                - IDEMPOTENCY_KEY_REQUIRED
                - IDEMPOTENCY_KEY_REUSED
                - RATE_LIMITED
                - CONFLICT
                - CANNOT_UPDATE_SYNC_MANAGED_FIELDS
                - NOT_IMPLEMENTED
                - INTERNAL
                - UPSTREAM_TIMEOUT
                - UNAVAILABLE
            message:
              type: string
            docs_url:
              type: string
              format: uri
            details:
              type: array
              items:
                type: object
                additionalProperties:
                  type: string
          required:
            - code
            - message
      required:
        - error
    AuditLogPayload:
      type: object
      properties:
        state:
          type: string
          enum:
            - ABSENT
            - COMPLETE
            - TRUNCATED
            - TOO_LARGE
            - EXPIRED
          description: >-
            Capture state. text is present only for COMPLETE and TRUNCATED;
            TOO_LARGE payloads were never stored and EXPIRED payloads were
            removed by the retention sweep.
        text:
          type:
            - string
            - 'null'
          description: Captured payload text; null unless COMPLETE or TRUNCATED.
      required:
        - state
        - text
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API tokens are passed as Bearer tokens.

````