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

# Create an outbound phone call

> Initiates a new outbound phone call from a number registered in your organization.

**Rate limit:** 5 requests per minute.



## OpenAPI

````yaml post /v2/create-phone-call
openapi: 3.0.3
info:
  title: OpenMic External API v2
  version: '2.0'
  description: >-
    The OpenMic External API (v2) provides programmatic access to agents, calls,

    phone numbers, tools, contact lists, campaigns, and voices.


    ## Authentication

    All endpoints require an API key passed as a Bearer token in the

    `Authorization` header:

    ```

    Authorization: Bearer <your_api_key>

    ```


    ## Rate Limiting

    Most endpoints are limited to **100 requests per minute** per organization.

    The `POST /create-phone-call` endpoint has a stricter limit of **5 requests
    per minute**.
  contact:
    name: OpenMic Support
servers:
  - url: https://api.openmic.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Auth
    description: Verify API key identity.
  - name: Agents
    description: Create and manage voice AI agents.
  - name: Calls
    description: Initiate and track phone calls.
  - name: Phone Numbers
    description: Manage phone numbers and agent assignments.
  - name: Tools
    description: Manage agent tools (API requests, call transfers, etc.).
  - name: Contact Lists
    description: Manage contact lists and individual contacts.
  - name: Campaigns
    description: Create and manage outbound dialing campaigns.
  - name: Voices
    description: Browse available voices for agents.
  - name: SMS
    description: Send SMS messages.
paths:
  /v2/create-phone-call:
    post:
      tags:
        - Calls
      summary: Create an outbound phone call
      description: >-
        Initiates a new outbound phone call from a number registered in your
        organization.


        **Rate limit:** 5 requests per minute.
      operationId: createPhoneCall
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCallRequest'
            example:
              from_number: '+12025551234'
              to_number: '+14155559876'
              dynamic_variables:
                customer_name: John Doe
                order_id: ORD-8821
              callback_url: https://yourapp.com/webhooks/call-status
      responses:
        '201':
          description: Call created and queued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CreateCallRequest:
      type: object
      required:
        - from_number
        - to_number
      properties:
        from_number:
          type: string
          description: E.164 format caller number (e.g. `+12025551234`).
          pattern: ^\+[1-9]\d{1,14}$
        to_number:
          type: string
          description: E.164 format destination number.
          pattern: ^\+[1-9]\d{1,14}$
        override_agent_uid:
          type: string
          description: Override the default agent assigned to the from_number.
        customer_id:
          type: string
          description: Your internal customer reference. Stored with the call record.
        dynamic_variables:
          type: object
          additionalProperties:
            type: string
          description: >-
            Key-value pairs injected into the agent prompt as template variables
            at call time.
        callback_url:
          type: string
          format: uri
          description: Webhook URL called with call status updates.
    CallResponse:
      type: object
      required:
        - id
        - from_number
        - to_number
        - call_status
        - created_at
        - updated_at
      properties:
        id:
          type: string
          description: CUID call identifier.
        from_number:
          type: string
        to_number:
          type: string
        call_status:
          type: string
          enum:
            - registered
            - ongoing
            - ended
            - error
        call_type:
          type: string
          enum:
            - phonecall
            - webcall
        agent_uid:
          type: string
        customer_id:
          type: string
        dynamic_variables:
          type: object
          additionalProperties:
            type: string
        callback_url:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
        details:
          type: string
  responses:
    BadRequest:
      description: Validation error or invalid request body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
              message:
                type: string
              error:
                type: string
              retryAfter:
                type: integer
    InternalServerError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key obtained from the OpenMic dashboard.

````