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

# Place one outbound call through the same gates as a campaign



## OpenAPI

````yaml /api-reference/openapi.json post /v1/calls
openapi: 3.1.0
info:
  description: >-
    Larynth control-plane API v1. Errors are RFC 9457 problem+json with a stable
    type URI per code (x-larynth-error-codes). Operations carry
    x-larynth-min-role, x-larynth-auth, x-larynth-scope, x-larynth-idempotency
    and x-larynth-sdk.
  title: Larynth API
  version: 1.0.0
servers:
  - url: https://api-us.larynth.com
    description: US region
security: []
tags:
  - description: Dashboard login and session. Excluded from SDKs.
    name: auth
    x-larynth-sdk: false
  - description: Tenant settings and members. Dashboard session only.
    name: tenants
    x-larynth-sdk: true
  - description: API keys. Dashboard session only.
    name: api-keys
    x-larynth-sdk: true
  - description: Audit log. Dashboard session only.
    name: audit
    x-larynth-sdk: true
  - description: Models and voices available to assistants.
    name: catalog
    x-larynth-sdk: true
  - description: Assistants and their immutable published versions.
    name: assistants
    x-larynth-sdk: true
  - description: Phone numbers and inbound routing.
    name: numbers
    x-larynth-sdk: true
  - description: Contacts and CSV imports.
    name: contacts
    x-larynth-sdk: true
  - description: Consent, revocations, do-not-call and pre-dial decisions.
    name: compliance
    x-larynth-sdk: true
  - description: Outbound campaigns.
    name: campaigns
    x-larynth-sdk: true
  - description: Calls, turns and events.
    name: calls
    x-larynth-sdk: true
  - description: Encrypted call recordings.
    name: recordings
    x-larynth-sdk: true
  - description: Prepaid balance, ledger, top-ups and rates (micro-USD).
    name: billing
    x-larynth-sdk: true
  - description: Webhook endpoints and deliveries (Standard Webhooks signatures).
    name: webhooks
    x-larynth-sdk: true
  - description: >-
      Knowledge bases built from files and websites, attached to assistant
      versions.
    name: knowledge
    x-larynth-sdk: true
  - description: Live updates over WebSocket. Dashboard session only.
    name: realtime
    x-larynth-sdk: true
  - description: Platform operator endpoints. Excluded from SDKs.
    name: admin
    x-larynth-sdk: false
paths:
  /v1/calls:
    post:
      tags:
        - calls
      summary: Place one outbound call through the same gates as a campaign
      operationId: createCall
      parameters:
        - description: >-
            Replays within 24 h return the stored response; the same key with a
            different body returns 409
          in: header
          name: Idempotency-Key
          required: true
          schema:
            description: >-
              Replays within 24 h return the stored response; the same key with
              a different body returns 409
            maxLength: 255
            minLength: 8
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCallRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Call'
          description: Accepted
        '400':
          $ref: '#/components/responses/Problem400'
        '401':
          $ref: '#/components/responses/Problem401'
        '402':
          $ref: '#/components/responses/Problem402'
        '403':
          $ref: '#/components/responses/Problem403'
        '409':
          $ref: '#/components/responses/Problem409'
        '422':
          $ref: '#/components/responses/Problem422'
        '429':
          $ref: '#/components/responses/Problem429'
        '500':
          $ref: '#/components/responses/Problem500'
        '503':
          $ref: '#/components/responses/Problem503'
      security:
        - session: []
        - apiKey:
            - calls:write
components:
  schemas:
    CreateCallRequest:
      additionalProperties: false
      properties:
        amd_mode:
          default: 'off'
          enum:
            - 'off'
            - hangup_on_machine
            - voicemail
          type: string
        amd_profile_id:
          format: uuid
          type: string
        assistant_id:
          description: The published version is used
          format: uuid
          type: string
        contact_id:
          format: uuid
          type: string
        from_e164:
          description: Must be an active number of this tenant
          pattern: ^\+[1-9][0-9]{6,14}$
          type: string
        purpose:
          enum:
            - informational
            - telemarketing
          type: string
        ring_timeout_s:
          default: 30
          format: int64
          maximum: 60
          minimum: 15
          type: integer
        to_e164:
          pattern: ^\+[1-9][0-9]{6,14}$
          type: string
        variables:
          additionalProperties:
            type: string
          type: object
      required:
        - assistant_id
        - to_e164
        - from_e164
        - purpose
      type: object
    Call:
      additionalProperties: false
      properties:
        agent_billable_ms:
          description: Part of billable_ms handled by the agent
          format: int64
          type: integer
        agent_price_micro:
          description: Settled price of the agent part in micro-USD
          format: int64
          type: integer
        amd_after_ms:
          format: int64
          type: integer
        amd_answer_headers:
          $ref: '#/components/schemas/AMDAnswerHeaders'
          description: Allow-listed 200 OK headers; values can carry phone numbers
        amd_early_media_tone:
          enum:
            - none
            - ringback
            - sit
            - other
          type: string
        amd_reason:
          type: string
        amd_ringback_cycles:
          description: Ringback cycles heard before answer
          format: int64
          type: integer
        amd_t200_ms:
          description: Originate to 200 OK; absent when not answered
          format: int64
          type: integer
        amd_verdict:
          enum:
            - unknown
            - human
            - voicemail
            - carrier_vm
            - ivr
            - screener
            - fax
            - sit
          type: string
        answered_at:
          format: date-time
          type: string
        assistant_id:
          format: uuid
          type: string
        assistant_version:
          format: int64
          type: integer
        attestation:
          enum:
            - A
            - B
            - C
          type: string
        billable_ms:
          format: int64
          type: integer
        bridged_ms:
          description: Part of billable_ms bridged to a human after a transfer
          format: int64
          type: integer
        bridged_price_micro:
          description: >-
            Settled price of the bridged part in micro-USD, billed at the
            transfer_minute rate
          format: int64
          type: integer
        call_id:
          pattern: ^[a-z0-9]{2,8}_[0-9A-HJKMNP-TV-Z]{26}$
          type: string
        campaign_contact_id:
          format: uuid
          type: string
        campaign_id:
          format: uuid
          type: string
        cause:
          type: string
        codec:
          enum:
            - G722
            - PCMU
            - PCMA
            - opus
          type: string
        created_at:
          format: date-time
          type: string
        direction:
          enum:
            - inbound
            - outbound
            - web_test
          type: string
        disclosure_played_at:
          format: date-time
          type: string
        ended_at:
          format: date-time
          type: string
        from_e164:
          type: string
        hangup_by:
          enum:
            - local
            - remote
            - system
          type: string
        mode:
          enum:
            - cascade
            - s2s
          type: string
        number_id:
          format: uuid
          type: string
        opted_out:
          type: boolean
        outcome:
          type: string
        price_micro:
          description: Settled price in micro-USD
          format: int64
          type: integer
        recording_allowed:
          type: boolean
        recording_notice_played_at:
          format: date-time
          type: string
        sip_code:
          format: int64
          type: integer
        status:
          enum:
            - queued
            - dialing
            - ringing
            - in_progress
            - completed
            - no_answer
            - busy
            - failed
            - canceled
            - rejected
          type: string
        summary:
          description: Short post-call summary, present on list items once analysed
          type: string
        to_e164:
          type: string
        updated_at:
          format: date-time
          type: string
      required:
        - call_id
        - direction
        - mode
        - status
        - recording_allowed
        - opted_out
        - created_at
        - updated_at
      type: object
    AMDAnswerHeaders:
      additionalProperties: false
      properties:
        diversion:
          items:
            type: string
          type: array
        history_info:
          items:
            type: string
          type: array
        p_early_media:
          items:
            type: string
          type: array
        reason:
          items:
            type: string
          type: array
      type: object
    Problem:
      additionalProperties: true
      properties:
        code:
          description: >-
            Stable machine-readable error code; compliance denials carry the
            dial.* rule id
          type: string
        detail:
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        instance:
          type: string
        retry_at:
          description: Next moment the request may succeed (calling windows)
          format: date-time
          type: string
        status:
          format: int64
          type: integer
        title:
          type: string
        type:
          description: Stable URI identifying the error code
          type: string
      required:
        - type
        - title
        - status
        - code
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  responses:
    Problem400:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Bad Request
    Problem401:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Unauthorized
    Problem402:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Payment Required
    Problem403:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Forbidden
    Problem409:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Conflict
    Problem422:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Unprocessable Entity
    Problem429:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Too Many Requests
    Problem500:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Internal Server Error
    Problem503:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Service Unavailable
  securitySchemes:
    session:
      description: Dashboard session cookie
      in: cookie
      name: lx_session
      type: apiKey
    apiKey:
      bearerFormat: lx_<key_id>_<secret>
      description: API key; the listed scope is required
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.