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

# List AI Outbound Requests

> List AI outbound contact requests for the practice, most recent first, with optional filtering and pagination.



## OpenAPI

````yaml GET /services/core/open_api/v1/ai_outbound/requests
openapi: 3.1.0
info:
  title: Oliver Partner API
  description: API for partners to interact with Oliver
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://partner-api.getoliver.com
security:
  - bearerAuth: []
paths:
  /services/core/open_api/v1/ai_outbound/requests:
    get:
      summary: List AI outbound requests
      description: >-
        List AI outbound contact requests for the practice, most recent first,
        with optional filtering and pagination.
      parameters:
        - name: X-Client-Id
          in: header
          description: The location id of the practice
          required: true
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: Filter by request status.
          schema:
            type: string
            enum:
              - received
              - queued
              - in_progress
              - completed
              - suppressed
              - failed
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            default: 0
        - name: per_page
          in: query
          description: Number of results per page. Max is 100.
          required: false
          schema:
            type: integer
            default: 50
      responses:
        '200':
          description: AI outbound requests
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                properties:
                  success:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/AiOutboundRequestListResponse'
                  message:
                    type: string
                    nullable: true
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
components:
  schemas:
    AiOutboundRequestListResponse:
      type: object
      required:
        - page
        - per_page
        - total_pages
        - total_count
        - content
      properties:
        page:
          type: integer
        per_page:
          type: integer
        total_pages:
          type: integer
        total_count:
          type: integer
        content:
          type: array
          description: An array of AI outbound requests
          items:
            $ref: '#/components/schemas/AiOutboundRequest'
    GeneralError:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
    AiOutboundRequest:
      type: object
      properties:
        id:
          type: string
          description: Oliver's unique identifier for the request.
        partner_request_id:
          type: string
          nullable: true
          description: The idempotency key you supplied, if any.
        channel:
          type: string
          enum:
            - sms
            - voice
          description: The outreach channel. `sms` is currently supported.
        purpose:
          type: string
          enum:
            - scheduling
            - callback_followup
            - refill
            - general
          description: The reason for the outreach, which shapes the AI opener.
        status:
          type: string
          enum:
            - received
            - queued
            - in_progress
            - completed
            - suppressed
            - failed
          description: >-
            Lifecycle status. `queued` → `in_progress` → one of the terminal
            states `completed`, `suppressed`, `failed`.
        outcome:
          type: string
          nullable: true
          enum:
            - booked
            - opted_out
            - no_response
            - undeliverable
          description: >-
            The resolution. `booked`, `opted_out`, or `no_response` on a
            `completed` request; `undeliverable` on a `failed` request whose
            text bounced. Null while the request is in flight, and on a
            suppressed request. `no_response` is set after 48 hours of silence
            following the initial outbound text.
        suppression_reason:
          type: string
          nullable: true
          description: >-
            Why the request was suppressed, when `status` is `suppressed`.
            Intake reasons are `recent_contact`, `active_conversation`,
            `sms_opted_out`, `voice_not_supported`; send-time re-checks may also
            return `notifications_disabled`, `client_inactive`,
            `recent_or_upcoming_appointment`, `pet_deceased`, or `stopped`.
        error_message:
          type: string
          nullable: true
          description: >-
            Failure detail, when `status` is `failed` (e.g. the carrier rejected
            the number, or dispatch did not complete within 96 hours).
        client_id:
          type: string
          nullable: true
          description: Oliver's identifier for the resolved client.
        patient_id:
          type: string
          nullable: true
          description: >-
            Oliver's identifier for the resolved patient, if one was provided or
            matched.
        contact_number:
          type: string
          nullable: true
          description: The contact number as you submitted it.
        context:
          type: string
          nullable: true
          description: The free-text context you supplied to guide the outreach.
        contacted_at:
          type: string
          format: date-time
          nullable: true
          description: When the first outbound message was sent, in ISO 8601 format.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: When the request reached a terminal status, in ISO 8601 format.
        created_at:
          type: string
          format: date-time
          description: When the request was created, in ISO 8601 format.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````