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

# Start a Quick AI Phone Call

> Has an AI agent call one or more phone numbers to accomplish a goal. No phone-number purchase is required — the call is placed from a shared LumisReach number on the LumisReach Official account, and that is the number the recipient sees. Configure voice, language, goal, opening line, retry attempts and maximum call length per request. Billing: $0.20 per initiated call (each retry counts) plus $0.20 per minute of conversation, charged to the wallet of the organization that owns the API key. Shared numbers have a daily volume ceiling (75 calls once warmed up) so carriers do not flag them; a job spreads across the pool and each destination reports the `from_number` it used. Returns 202 with a job id; poll `GET /v1/quick/actions/{id}` for per-number progress. Returns 409 when the shared pool has no daily volume left.



## OpenAPI

````yaml /openapi.json post /v1/quick/ai-calls
openapi: 3.1.0
info:
  title: LumisReach v1 API
  version: 1.0.0
  description: >-
    Programmatic access to the LumisReach voice platform — calls, numbers,
    caller trust, and brands.
  contact:
    name: LumisReach
    email: founders@lumisreach.com
servers:
  - url: https://api.lumisreach.com/api
security:
  - bearerAuth: []
tags:
  - name: Phone Numbers
  - name: Caller IDs
  - name: Enterprise Registration
  - name: Branded Calling
  - name: Calls
  - name: SMS
  - name: WebRTC
  - name: Reputation
  - name: Usage
  - name: Account
  - name: Documents
  - name: Quick Agent Actions
  - name: Sub-entities
paths:
  /v1/quick/ai-calls:
    post:
      tags:
        - Quick Agent Actions
      summary: Start a Quick AI Phone Call
      description: >-
        Has an AI agent call one or more phone numbers to accomplish a goal. No
        phone-number purchase is required — the call is placed from a shared
        LumisReach number on the LumisReach Official account, and that is the
        number the recipient sees. Configure voice, language, goal, opening
        line, retry attempts and maximum call length per request. Billing: $0.20
        per initiated call (each retry counts) plus $0.20 per minute of
        conversation, charged to the wallet of the organization that owns the
        API key. Shared numbers have a daily volume ceiling (75 calls once
        warmed up) so carriers do not flag them; a job spreads across the pool
        and each destination reports the `from_number` it used. Returns 202 with
        a job id; poll `GET /v1/quick/actions/{id}` for per-number progress.
        Returns 409 when the shared pool has no daily volume left.
      operationId: v1_quick_ai_calls_post
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          description: >-
            UUID — when present, deduplicates repeat submissions. See
            /api-reference/idempotency.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              type: object
              properties:
                to_numbers:
                  minItems: 1
                  maxItems: 20
                  type: array
                  items:
                    type: string
                    pattern: ^\+[1-9]\d{1,14}$
                    description: Destination in E.164 format
                  description: One or more destinations in E.164 format
                goal:
                  type: string
                  minLength: 10
                  maxLength: 2000
                  description: >-
                    What the AI should accomplish on the call. Drives the system
                    prompt.
                instructions:
                  type: string
                  maxLength: 4000
                opening_message:
                  type: string
                  maxLength: 500
                voice:
                  type: string
                  maxLength: 120
                voice_model_tier:
                  type: string
                  enum:
                    - standard
                    - mini
                language:
                  default: en
                  type: string
                  maxLength: 10
                retry_attempts:
                  default: 1
                  type: integer
                  minimum: 0
                  maximum: 5
                retry_delay_minutes:
                  default: 10
                  type: integer
                  minimum: 1
                  maximum: 1440
                max_call_duration_seconds:
                  default: 600
                  type: integer
                  minimum: 30
                  maximum: 1800
                voicemail_enabled:
                  default: true
                  type: boolean
                voicemail_message:
                  type: string
                  maxLength: 600
                record:
                  default: true
                  type: boolean
                contact_name:
                  type: string
                  maxLength: 120
              required:
                - to_numbers
                - goal
                - language
                - retry_attempts
                - retry_delay_minutes
                - max_call_duration_seconds
                - voicemail_enabled
                - record
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      kind:
                        type: string
                        const: ai_call
                      status:
                        type: string
                      from_number:
                        type: string
                      target_count:
                        type: number
                      status_url:
                        type: string
                      pricing:
                        type: object
                        properties:
                          start_fee_usd:
                            type: number
                          per_minute_usd:
                            type: number
                          note:
                            type: string
                        required:
                          - start_fee_usd
                          - per_minute_usd
                          - note
                        additionalProperties: false
                    required:
                      - id
                      - kind
                      - status
                      - from_number
                      - target_count
                      - status_url
                      - pricing
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '409':
          description: Conflict (incl. idempotency conflicts)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    ErrorEnvelope:
      type: object
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            fields:
              type: object
              additionalProperties:
                type: string
            doc_url:
              type: string
              format: uri
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````