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

# Start a Single Call

> Initiates a single outbound call immediately. All endpoints should pass in the userId in the request body.



## OpenAPI

````yaml post /api/v1/call/dial
openapi: 3.0.3
info:
  title: Dialgen API
  description: >-
    Dialgen API allows you to programmatically initiate and monitor AI-powered
    voice calls, either one at a time or in high-volume batches.
  version: 1.0.0
  contact:
    name: Dialgen Support
    url: https://sa.dialgen.ai
servers:
  - url: https://sa.dialgen.ai
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Agents
    description: Operations related to AI agents
  - name: Calls
    description: Operations related to individual calls
  - name: Batches
    description: Operations related to batch campaigns
paths:
  /api/v1/call/dial:
    post:
      tags:
        - Calls
      summary: Start a Single Call
      description: >-
        Initiates a single outbound call immediately. All endpoints should pass
        in the userId in the request body.
      operationId: dialSingle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DialSingleRequest'
            example:
              to: '+1234567890'
              agentConfigId: agent_123
              userId: user_789
              contactId: contact_101
              callerDetails:
                name: John Doe
                email: john.doe@example.com
                company: Example Inc.
                metadata:
                  customField: value
              statusCallBackUrl: https://api.your-crm.com/webhook/dialgen/call-complete
      responses:
        '200':
          description: Call initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DialSingleResponse'
              example:
                message: Call initiated successfully
                callId: call_clxabc123...
                contactId: contact_clx789ghi...
                status: ONGOING
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          description: Call already in progress for this contact
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  callId:
                    type: string
              example:
                message: Call already in progress for this contact
                callId: call_clxprev456...
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    DialSingleRequest:
      type: object
      required:
        - to
        - agentConfigId
        - userId
      properties:
        to:
          type: string
          description: The E.164 formatted phone number to dial
          example: '+1234567890'
        agentConfigId:
          type: string
          description: The ID of the agent to use
        userId:
          type: string
          description: The ID of the user owning the agent
        contactId:
          type: string
          description: Provide if the contact already exists
        callerDetails:
          type: object
          description: >-
            If contactId is not provided, this object is used to create/update
            the contact
          properties:
            name:
              type: string
            email:
              type: string
              format: email
            company:
              type: string
            metadata:
              type: object
              additionalProperties: true
        statusCallBackUrl:
          type: string
          format: uri
          description: The URL to send the call-status callback to
    DialSingleResponse:
      type: object
      properties:
        message:
          type: string
        callId:
          type: string
          description: The call identifier to track status
        contactId:
          type: string
          description: The contact identifier
        status:
          type: string
          enum:
            - ONGOING
            - SCHEDULED
            - COMPLETED
            - MISSED
            - FAILED
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
        message:
          type: string
        details:
          type: object
  responses:
    BadRequest:
      description: Missing or invalid fields/parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Bad Request
            message: Missing required parameter
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Unauthorized
            message: Invalid or missing API key
    InternalServerError:
      description: An unexpected server error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Internal Server Error
            message: An unexpected error occurred
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token authentication. Obtain your API key from the Dialgen API
        Keys dashboard at https://sa.dialgen.ai/api-keys

````