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

# Create a new dial

> Creates a one-off dial session, either for phone dials or browser dials.



## OpenAPI

````yaml post /dials
openapi: 3.0.3
info:
  title: Vogent - OpenAPI 3.0
  description: Test Description
  version: 1.0.11
servers:
  - url: https://api.vogent.ai/api
security:
  - bearerAuth: []
paths:
  /dials:
    post:
      summary: Create a new dial
      description: Creates a one-off dial session, either for phone dials or browser dials.
      operationId: createDial
      requestBody:
        description: Create a new dial
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDialInput'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDialOutput'
        '400':
          description: Invalid input
        '422':
          description: Validation exception
components:
  schemas:
    CreateDialInput:
      type: object
      properties:
        webhookUrl:
          type: string
          example: https://test.com/webhook
          nullable: true
          description: Optional. The URL for the webhook for this dial session.
        browserCall:
          type: boolean
          example: false
          nullable: true
          description: Set to true if this is a browser call.
        toNumber:
          type: string
          example: '+11234567890'
          nullable: true
          description: Required if this is a phone dial, in E.164 format.
        fromNumberId:
          type: string
          example: 1caec78c-4bba-477d-82cf-bcfce2b73856
          nullable: true
          description: >-
            The ID for the phone number to use to start the call. Required if
            this is a phone dial.
        fromNumberPoolId:
          type: string
          example: 1caec78c-4bba-477d-82cf-bcfce2b73856
          nullable: true
          description: The ID of a phone number pool to use when starting the call.
        aiVoiceId:
          type: string
          example: 61ccefdf-ea02-4f49-811b-1241f8e20d26
          nullable: true
          description: >-
            The ID for the voice on the call. If not specified, the default
            voice for the agent will be used.
        voiceOptionValues:
          type: array
          x-go-type-skip-optional-pointer: true
          items:
            $ref: '#/components/schemas/ModelOptionValue'
          description: An optional configuration for the voice being used.
        voiceVolumeLevel:
          type: integer
          example: -100
          description: >-
            The volume level for the voice on the call, from -300 (quiet) to 300
            (loud).
        callAgentId:
          type: string
          example: 61ccefdf-ea02-4f49-811b-1241f8e20d26
          description: Required. The ID of the agent.
        versionedModelId:
          type: string
          example: 61ccefdf-ea02-4f49-811b-1241f8e20d26
          description: >-
            The prompt/model version to use for this call, if not specified, the
            default on the agent is used.
        ivrVersionedPromptId:
          type: string
          example: 61ccefdf-ea02-4f49-811b-1241f8e20d26
          description: >-
            The prompt/model version to use for the IVR portion of this call, if
            ivr nav is enabled on the agent.
        overrideTranscriberFinalDurationMs:
          type: integer
          example: 500
          description: >-
            How long in ms after an utterance is complete to ignore the
            final/non-final status of the transcript and run inference.
        timeoutMinutes:
          type: integer
          example: 10
          description: >-
            The number of minutes before the call will be timed out. If not
            specified, there will be no limit on the calls, it's recommended to
            provide something here.
        callAgentExtractorId:
          type: string
          example: 61ccefdf-ea02-4f49-811b-1241f8e20d26
          description: >-
            The ID of the extractor to use for this call, if not specified, the
            default on the agent is used.
        callAgentInput:
          type: object
          nullable: true
          x-go-type-skip-optional-pointer: true
          additionalProperties: {}
          description: Any macros in the call agent prompt.
        agentOverrides:
          $ref: '#/components/schemas/AgentOverrides'
          nullable: true
          description: >-
            (Alpha) This feature is in Alpha testing, schemas may change
            slightly before GA. Please notify the Vogent team if there are any
            issues when using this field. Optional overrides for the call agent
            used for this dial.
        keywords:
          type: array
          items:
            type: string
          nullable: true
          x-go-type-skip-optional-pointer: true
          description: A list of keywords to be used in the call.
        advancedBrowserInteraction:
          type: boolean
          description: >-
            If browserCall is false, and you want to have a more complex flow,
            allowing the web SDK to have transcribed barge-in lines, you should
            set this to true. Contact the vogent team to enable this feature.
      required:
        - callAgentId
    CreateDialOutput:
      type: object
      properties:
        dialToken:
          type: string
          example: >-
            eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXN0IjoidGVzdCJ9.9EQaLsDRKDVXLUVLR9JgDTjEULaT2-OMbHayQAzgZH8
          description: >-
            You can pass this dial token to Elto's web UI, or use this token to
            authorize any requests for this dial. It's safe to pass this token
            to a client -- it only allows users to run requests against the dial
            associated with this session.
          nullable: false
        sessionId:
          type: string
          example: 61ccefdf-ea02-4f49-811b-1241f8e20d26
          nullable: false
        dialId:
          type: string
          example: 57555c5e-5a56-49ca-8fe8-24946d2fbc3e
          nullable: false
      required:
        - dialToken
        - sessionId
        - dialId
    ModelOptionValue:
      type: object
      description: >-
        A configuration value for the model. You can get a list of available
        models and their configuration values from /models. All configuration
        values, with defaults will be returned when you retrieve a versioned
        prompt.
      properties:
        optionId:
          type: string
          description: The ID of option.
          nullable: false
        value:
          type: string
          nullable: false
      required:
        - optionId
        - value
    AgentOverrides:
      description: >-
        Optional overrides for agent configuration when creating a dial. These
        override the agent's default settings for this specific dial.
      type: object
      properties:
        defaultVoiceId:
          type: string
          description: The ID of the voice to use.
          nullable: false
        defaultVersionedPrompt:
          $ref: '#/components/schemas/CreateVersionedPromptInput'
          nullable: false
          description: The default versioned prompt to use.
        inboundWebhookResponse:
          type: boolean
          nullable: false
        inboundWebhookUrl:
          type: string
          nullable: false
        maxDurationSeconds:
          type: integer
          nullable: false
          description: The maximum duration of the call in seconds.
        timeoutMessage:
          type: string
          nullable: true
          description: >-
            An optional message to play via TTS before hanging up when the call
            reaches its max duration timeout.
        timeoutBehaviorConfiguration:
          $ref: '#/components/schemas/TimeoutBehaviorConfiguration'
          nullable: true
          description: >-
            Configuration for the behavior when a call reaches its max duration
            timeout.
        openingLine:
          type: object
          properties:
            lineType:
              $ref: '#/components/schemas/OpeningLineType'
              nullable: false
              description: An indication of when the opening line should be used.
            content:
              type: string
              description: The content of the opening line.
          required:
            - lineType
            - content
          nullable: false
          description: >-
            Details about the Agent's opening line. If unspecified, or null no
            opening line will be created.
        voiceVolumeLevel:
          type: integer
          nullable: false
          description: >-
            A value, generally between -300 and 300, indicating the volume level
            to use for the voice. The default is -100.
        backgroundNoiseType:
          type: string
          enum:
            - noise
            - office
            - silence
          description: The background audio that's used by the agent.
        linkedFunctionDefinitionIds:
          type: array
          x-go-type-skip-optional-pointer: true
          items:
            type: string
          description: >-
            The function definitions that should be available to this agent
            (deprecated, use linkedFunctionDefinitionInputs instead)
        linkedFunctionDefinitionInputs:
          type: array
          x-go-type-skip-optional-pointer: true
          items:
            $ref: '#/components/schemas/LinkedFunctionDefinition'
          description: >-
            The function definitions that should be available to this agent with
            optional lifecycle message overrides
        metadata:
          type: object
          additionalProperties: {}
          x-go-type-skip-optional-pointer: true
        transcriberParams:
          $ref: '#/components/schemas/TranscriberParams'
          x-go-type-skip-optional-pointer: true
          nullable: false
        idleMessageConfig:
          $ref: '#/components/schemas/IdleMessageConfig'
        utteranceDetectorConfig:
          $ref: '#/components/schemas/UtteranceDetectorConfig'
        endpointDetectorConfig:
          $ref: '#/components/schemas/EndpointDetectorConfig'
          nullable: false
          description: >-
            Configuration for endpoint detection to determine when a user has
            finished speaking. If not specified, will default to a semantic
            detector in the default mode.
        ivrConfiguration:
          $ref: '#/components/schemas/IVRConfigurationOverride'
          description: >-
            The configuration for IVR detection and navigation including
            detection type, prompt, voice, and tagging settings.
        language:
          type: string
          description: The language to use for the agent.
        secondaryLanguages:
          type: array
          x-go-type-skip-optional-pointer: true
          items:
            type: string
          description: Additional languages the agent can switch to during a call.
        enableChangeLanguage:
          type: boolean
          description: >-
            Whether the agent can use the change_language tool to switch
            languages during a call.
        fillEmptyStringVariables:
          type: boolean
          description: >-
            If true, variables that are not specified will be filled with empty
            strings instead of being left as template placeholders.
        silenceHangupConfiguration:
          $ref: '#/components/schemas/SilenceHangupConfiguration'
          nullable: true
          description: >-
            Configuration for automatically hanging up the call after a period
            of silence.
        ivrSilenceHangupConfiguration:
          $ref: '#/components/schemas/SilenceHangupConfiguration'
          nullable: true
          description: >-
            Configuration for automatically hanging up the call after a period
            of silence while in IVR mode.
    CreateVersionedPromptInput:
      type: object
      properties:
        aiModelId:
          type: string
          description: The ID of the model to use.
          nullable: false
        agentType:
          $ref: '#/components/schemas/AgentType'
          description: The type of agent that this prompt represents.
        prompt:
          type: string
          nullable: true
        flowDefinition:
          $ref: '#/components/schemas/FlowDefinitionInput'
          description: >-
            For agents with agentType CUSTOM_FLOW, the flow definition that you
            want to use.
          nullable: false
        name:
          type: string
          nullable: false
        modelOptionValues:
          x-go-type-skip-optional-pointer: true
          type: array
          items:
            $ref: '#/components/schemas/ModelOptionValue'
      required:
        - aiModelId
        - agentType
        - name
    TimeoutBehaviorConfiguration:
      type: object
      nullable: true
      properties:
        behavior:
          $ref: '#/components/schemas/TimeoutBehavior'
          nullable: false
          description: The timeout behavior to use.
        transferNumber:
          type: string
          nullable: true
          description: The phone number to transfer to when behavior is TRANSFER.
      required:
        - behavior
    OpeningLineType:
      type: string
      enum:
        - INBOUND_ONLY
        - INBOUND_OUTBOUND
        - NONE
    LinkedFunctionDefinition:
      type: object
      properties:
        functionDefinitionId:
          type: string
          nullable: false
          description: The ID of the function definition to link.
        lifecycleMessagesOverride:
          $ref: '#/components/schemas/FunctionLifecycleMessages'
          description: >-
            Lifecycle messages to override the defaults for this function link,
            or null to not override.
      required:
        - functionDefinitionId
    TranscriberParams:
      type: object
      properties:
        type:
          type: string
          nullable: false
          description: >-
            By default, the only supported option is deepgram. Please contact
            support if you'd like access to more options.
        keywords:
          type: array
          items:
            type: string
          description: Keywords to be used for transcription.
          x-go-type-skip-optional-pointer: true
          nullable: false
      required:
        - type
    IdleMessageConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether idle messages are enabled for this agent.
          nullable: false
        messages:
          type: array
          items:
            type: string
          description: >-
            The list of idle messages that the agent can say when the user is
            silent.
          nullable: false
          x-go-type-skip-optional-pointer: true
        idleDurationMilliseconds:
          type: integer
          description: >-
            The duration in milliseconds that the user must be silent before an
            idle message is triggered.
          nullable: false
          minimum: 5000
        maxIdleMessages:
          type: integer
          description: The maximum number of idle messages that can be said during a call.
          nullable: false
          minimum: 1
      required:
        - enabled
    UtteranceDetectorConfig:
      type: object
      properties:
        sensitivity:
          $ref: '#/components/schemas/UtteranceDetectorSensitivity'
        interruptionPlayTimeMs:
          type: integer
          description: >-
            The minimum amount of time in milliseconds that the agent will
            continue speaking after being interrupted. Defaults to 0.
          nullable: true
      required:
        - sensitivity
    EndpointDetectorConfig:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EndpointDetectorType'
          nullable: false
          description: The type of endpoint detector to use.
        mode:
          $ref: '#/components/schemas/EndpointDetectorMode'
          nullable: true
          description: >-
            The mode for the endpoint detector (only applicable for SEMANTIC
            type).
      required:
        - type
    IVRConfigurationOverride:
      type: object
      properties:
        detectionType:
          $ref: '#/components/schemas/IvrDetectionType'
          description: The type of IVR detection to use.
          nullable: false
        versionedPromptId:
          type: string
          description: The versioned prompt ID to use for IVR detection.
          nullable: true
        versionedPrompt:
          $ref: '#/components/schemas/CreateVersionedPromptInput'
          nullable: false
          description: The default versioned prompt to use for IVR navigation.
        aiVoiceId:
          type: string
          description: The AI voice ID to use for IVR detection.
          nullable: true
        taggingText:
          type: string
          description: The tagging text for IVR detection.
          nullable: true
      required:
        - detectionType
    SilenceHangupConfiguration:
      type: object
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/SilenceHangupType'
          nullable: false
          description: The type of silence hangup behavior.
        silenceDurationSeconds:
          type: integer
          description: The duration of silence in seconds before hanging up.
      required:
        - type
    AgentType:
      type: string
      enum:
        - STANDARD
        - CUSTOM_FLOW
    FlowDefinitionInput:
      type: object
      properties:
        nodes:
          type: array
          x-go-type-skip-optional-pointer: true
          items:
            $ref: '#/components/schemas/ApiFlowNodeInput'
          nullable: false
        globalContext:
          type: string
          nullable: true
        aiOpen:
          type: boolean
          nullable: false
          description: Deprecated, use openingLineType instead.
        openingLineType:
          $ref: '#/components/schemas/OpeningLineType'
          nullable: false
    TimeoutBehavior:
      type: string
      enum:
        - HANGUP
        - TRANSFER
      nullable: false
      description: >-
        The behavior when a call reaches its max duration timeout. HANGUP
        disconnects the call, TRANSFER forwards to a specified number.
    FunctionLifecycleMessages:
      type: object
      properties:
        started:
          type: array
          description: >-
            Messages to display when the function starts executing. One will be
            chosen at random.
          items:
            type: string
          nullable: false
      required:
        - started
    UtteranceDetectorSensitivity:
      type: string
      enum:
        - ULTRA_FAST
        - FAST
        - MEDIUM
        - SLOW
      nullable: false
    EndpointDetectorType:
      type: string
      enum:
        - SIMPLE
        - SEMANTIC
      nullable: false
    EndpointDetectorMode:
      type: string
      enum:
        - CONSERVATIVE
        - DEFAULT
        - AGGRESSIVE
      nullable: false
    IvrDetectionType:
      type: string
      enum:
        - NONE
        - STANDARD
      description: The type of IVR detection to use for the agent.
    SilenceHangupType:
      type: string
      enum:
        - DISABLED
        - FIRST_MESSAGE_ONLY
        - WHOLE_CALL
      nullable: false
      description: >-
        The type of silence hangup behavior. DISABLED means no silence hangup,
        FIRST_MESSAGE_ONLY means only hangup if no first message is received,
        WHOLE_CALL means hangup after silence at any point in the call.
    ApiFlowNodeInput:
      type: object
      properties:
        id:
          type: string
          nullable: false
        name:
          type: string
          nullable: false
          description: >-
            One of the allowed flow node types. View the available types at
            https://docs.vogent.ai/flow.
        type:
          type: string
          nullable: false
        transitionRules:
          type: array
          items:
            $ref: '#/components/schemas/FlowTransitionRuleInput'
          nullable: false
        nodeData:
          type: object
          nullable: false
          description: >-
            The node-specific configuration. View the configurations by node
            type at https://docs.vogent.ai/flow.
      required:
        - id
        - name
        - type
        - transitionRules
        - nodeData
    FlowTransitionRuleInput:
      type: object
      properties:
        conditionType:
          $ref: '#/components/schemas/FlowTransitionRuleConditionType'
          nullable: false
        arrayConditionType:
          $ref: '#/components/schemas/ArrayConditionType'
        field:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
        values:
          type: array
          items:
            type: string
          nullable: true
          x-go-type-skip-optional-pointer: true
        transitionNodeId:
          type: string
          nullable: false
      required:
        - conditionType
        - transitionNodeId
    FlowTransitionRuleConditionType:
      type: string
      enum:
        - always
        - equal
        - in
        - greater
        - less
        - language
      description: >-
        The condition used to evaluate the transition rule. If language, the
        value will be used as a natural language condition to describe when to
        execute a transition.
      nullable: false
    ArrayConditionType:
      type: string
      enum:
        - any
        - all
      description: >-
        The type of array condition to apply. 'any' means at least one element
        must match, 'all' means all elements must match.
      nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        In the form `Bearer <api_key_here>`. You can find your api key in your
        dashboard.

````