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

> List handoff events — a paginated list of individual AI-to-human handoff events, each with the AI-written summary, explanation, handoff reasons, sentiment, and session ID.

# List handoff events



## OpenAPI

````yaml get /handoff-analytics/events
openapi: 3.1.0
info:
  title: OpenCX API
  description: >

    OpenCX is an AI-powered, all-in-one platform for customer support and
    outbound communications.


    Use this API to manage your OpenCX organization's AI agents, actions,
    conversations, contacts, and more.


    To get started, generate a new API key from the dashboard.


    ## Authentication

    All API endpoints require authentication using a Bearer token. You can
    generate an API key from your OpenCX dashboard.


    ## Rate Limiting

    API requests are rate limited to ensure fair usage. The current limits are:

    - 100 requests per minute for standard endpoints

    - 1000 requests per minute for streaming endpoints


    ## Error Handling

    The API uses standard HTTP status codes and returns detailed error messages
    in the response body.
  version: 1.0-beta
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.open.cx
    description: Production
security:
  - bearerAuth: []
paths:
  /handoff-analytics/events:
    get:
      summary: List handoff events
      description: >-
        Returns a paginated list of individual AI-to-human handoff events,
        newest first. Each event includes the AI-written summary and explanation
        of why it handed off, the handoff reasons, sentiment, and the session
        ID. Filter by reason (e.g. insufficient_tools) and date range to analyze
        recurring gaps.
      operationId: listHandoffEvents
      parameters:
        - schema:
            type: string
          in: query
          name: cursor
          required: false
          description: Pagination cursor from a previous response
        - schema:
            type: string
            enum:
              - ai_implied_handoff
              - based_on_instructions
              - instructions_not_clear
              - insufficient_knowledge
              - insufficient_tools
              - prohibited_topic
              - user_requested_human_assistance
          in: query
          name: reason
          required: false
          description: Only return handoffs that include this reason
        - schema:
            type: string
          in: query
          name: start_date
          required: false
          description: Start date in ISO 8601 format (defaults to 30 days ago)
        - schema:
            type: string
          in: query
          name: end_date
          required: false
          description: End date in ISO 8601 format (defaults to now)
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListHandoffEventsOutput'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    ListHandoffEventsOutput:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/ListHandoffEventsOutput'
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              session_id:
                type: string
              summary:
                type: string
              explanation:
                anyOf:
                  - type: string
                  - type: 'null'
              reasons:
                type: array
                items:
                  type: string
                  enum:
                    - ai_implied_handoff
                    - based_on_instructions
                    - instructions_not_clear
                    - insufficient_knowledge
                    - insufficient_tools
                    - prohibited_topic
                    - user_requested_human_assistance
              sentiment:
                anyOf:
                  - type: string
                    enum:
                      - angry
                      - happy
                      - neutral
                  - type: 'null'
              created_at:
                type: string
            required:
              - session_id
              - summary
              - explanation
              - reasons
              - sentiment
              - created_at
            additionalProperties: false
        next:
          anyOf:
            - type: string
            - type: 'null'
        total:
          type: number
      required:
        - items
        - next
        - total
      additionalProperties: false
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        error:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````