Vapi Calls API

Create outbound calls, accept inbound calls, list and filter calls, fetch call status and analysis, delete call data, and download per-call artifacts including mono and stereo recordings, customer/assistant isolated recordings, video recordings, PCAP packet captures, and structured call logs.

Vapi Calls API is one of 15 APIs that Vapi publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 2 JSON Schema definitions.

Tagged areas include Calls, Voice AI, and Telephony. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, sample payloads, 1 Naftiko capability spec, and 2 JSON Schemas.

OpenAPI Specification

vapi-calls-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Vapi Calls API
  description: Vapi API — Calls resource. Voice AI for developers.
  version: '1.0'
  contact:
    name: Vapi
    url: https://vapi.ai
servers:
- url: https://api.vapi.ai
security:
- bearer: []
tags:
- name: Calls
  description: Calls endpoints.
paths:
  /call:
    post:
      operationId: CallController_create
      summary: Create Call
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCallDTO'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Call'
                - $ref: '#/components/schemas/CallBatchResponse'
      tags:
      - Calls
      security:
      - bearer: []
    get:
      operationId: CallController_findAll
      summary: List Calls
      parameters:
      - name: id
        required: false
        in: query
        description: This is the unique identifier for the call.
        schema:
          type: string
      - name: assistantId
        required: false
        in: query
        description: This will return calls with the specified assistantId.
        schema:
          type: string
      - name: phoneNumberId
        required: false
        in: query
        description: 'This is the phone number that will be used for the call. To use a transient number, use `phoneNumber`
          instead.


          Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.'
        schema:
          type: string
      - name: limit
        required: false
        in: query
        description: This is the maximum number of items to return. Defaults to 100.
        schema:
          minimum: 0
          maximum: 1000
          type: number
      - name: createdAtGt
        required: false
        in: query
        description: This will return items where the createdAt is greater than the specified value.
        schema:
          format: date-time
          type: string
      - name: createdAtLt
        required: false
        in: query
        description: This will return items where the createdAt is less than the specified value.
        schema:
          format: date-time
          type: string
      - name: createdAtGe
        required: false
        in: query
        description: This will return items where the createdAt is greater than or equal to the specified value.
        schema:
          format: date-time
          type: string
      - name: createdAtLe
        required: false
        in: query
        description: This will return items where the createdAt is less than or equal to the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtGt
        required: false
        in: query
        description: This will return items where the updatedAt is greater than the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtLt
        required: false
        in: query
        description: This will return items where the updatedAt is less than the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtGe
        required: false
        in: query
        description: This will return items where the updatedAt is greater than or equal to the specified value.
        schema:
          format: date-time
          type: string
      - name: updatedAtLe
        required: false
        in: query
        description: This will return items where the updatedAt is less than or equal to the specified value.
        schema:
          format: date-time
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Call'
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}:
    get:
      operationId: CallController_findOne
      summary: Get Call
      parameters:
      - name: id
        required: true
        in: path
        description: The unique identifier for the resource.
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Call'
      tags:
      - Calls
      security:
      - bearer: []
    patch:
      operationId: CallController_update
      summary: Update Call
      parameters:
      - name: id
        required: true
        in: path
        description: The unique identifier for the resource.
        schema:
          format: uuid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCallDTO'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Call'
      tags:
      - Calls
      security:
      - bearer: []
    delete:
      operationId: CallController_deleteCallData
      summary: Delete Call
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteCallDTO'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Call'
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/mono-recording:
    get:
      operationId: CallArtifactController_monoRecordingDownload
      summary: Download Call Mono Recording
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the recording.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/stereo-recording:
    get:
      operationId: CallArtifactController_stereoRecordingDownload
      summary: Download Call Stereo Recording
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the recording.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/video-recording:
    get:
      operationId: CallArtifactController_videoRecordingDownload
      summary: Download Call Video Recording
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the video.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/customer-recording:
    get:
      operationId: CallArtifactController_customerRecordingDownload
      summary: Download Call Customer Recording
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the recording.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/assistant-recording:
    get:
      operationId: CallArtifactController_assistantRecordingDownload
      summary: Download Call Assistant Recording
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the recording.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/pcap:
    get:
      operationId: CallArtifactController_pcapDownload
      summary: Download Call Packet Capture (pcap)
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the pcap file.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
  /call/{id}/call-logs:
    get:
      operationId: CallArtifactController_callLogsDownload
      summary: Download Call Logs
      parameters:
      - name: id
        required: true
        in: path
        description: Call ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: ''
        '302':
          description: Redirect to a short-lived presigned URL for the log file.
        '401':
          description: Unauthorized — missing or invalid API token.
        '404':
          description: Artifact not found.
      tags:
      - Calls
      security:
      - bearer: []
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: Retrieve your API Key from [Dashboard](dashboard.vapi.ai).
  schemas:
    AIEdgeCondition:
      type: object
      properties:
        type:
          type: string
          enum:
          - ai
        prompt:
          type: string
          description: This is the prompt for the AI edge condition. It should evaluate to a boolean.
          maxLength: 1000
      required:
      - type
      - prompt
    AWSIAMCredentialsAuthenticationPlan:
      type: object
      properties:
        type:
          type: string
          enum:
          - aws-iam
        awsAccessKeyId:
          type: string
          description: AWS Access Key ID. This is not returned in the API.
          maxLength: 128
        awsSecretAccessKey:
          type: string
          description: AWS Secret Access Key. This is not returned in the API.
          maxLength: 256
      required:
      - type
      - awsAccessKeyId
      - awsSecretAccessKey
    AWSStsAuthenticationPlan:
      type: object
      properties:
        type:
          type: string
          description: This is the type of authentication plan
          enum:
          - aws-sts
        roleArn:
          type: string
          description: This is the role ARN for the AWS credential
        externalId:
          type: string
          description: Optional external ID for additional security in the role trust policy.
          maxLength: 256
      required:
      - type
      - roleArn
    Analysis:
      type: object
      properties:
        summary:
          type: string
          description: This is the summary of the call. Customize by setting `assistant.analysisPlan.summaryPrompt`.
        structuredData:
          type: object
          description: This is the structured data extracted from the call. Customize by setting `assistant.analysisPlan.structuredDataPrompt`
            and/or `assistant.analysisPlan.structuredDataSchema`.
        structuredDataMulti:
          description: This is the structured data catalog of the call. Customize by setting `assistant.analysisPlan.structuredDataMultiPlan`.
          type: array
          items:
            type: object
        successEvaluation:
          type: string
          description: This is the evaluation of the call. Customize by setting `assistant.analysisPlan.successEvaluationPrompt`
            and/or `assistant.analysisPlan.successEvaluationRubric`.
    AnalysisCost:
      type: object
      properties:
        type:
          type: string
          description: This is the type of cost, always 'analysis' for this class.
          enum:
          - analysis
        analysisType:
          type: string
          description: This is the type of analysis performed.
          enum:
          - summary
          - structuredData
          - successEvaluation
          - structuredOutput
        model:
          type: object
          description: This is the model that was used to perform the analysis.
        promptTokens:
          type: number
          description: This is the number of prompt tokens used in the analysis.
        completionTokens:
          type: number
          description: This is the number of completion tokens generated in the analysis.
        cachedPromptTokens:
          type: number
          description: This is the number of cached prompt tokens used in the analysis. This is only applicable to certain
            providers (e.g., OpenAI, Azure OpenAI) that support prompt caching. Cached tokens are billed at a discounted rate.
        cost:
          type: number
          description: This is the cost of the component in USD.
      required:
      - type
      - analysisType
      - model
      - promptTokens
      - completionTokens
      - cost
    AnalysisCostBreakdown:
      type: object
      properties:
        summary:
          type: number
          description: This is the cost to summarize the call.
        summaryPromptTokens:
          type: number
          description: This is the number of prompt tokens used to summarize the call.
        summaryCompletionTokens:
          type: number
          description: This is the number of completion tokens used to summarize the call.
        summaryCachedPromptTokens:
          type: number
          description: This is the number of cached prompt tokens used to summarize the call.
        structuredData:
          type: number
          description: This is the cost to extract structured data from the call.
        structuredDataPromptTokens:
          type: number
          description: This is the number of prompt tokens used to extract structured data from the call.
        structuredDataCompletionTokens:
          type: number
          description: This is the number of completion tokens used to extract structured data from the call.
        structuredDataCachedPromptTokens:
          type: number
          description: This is the number of cached prompt tokens used to extract structured data from the call.
        successEvaluation:
          type: number
          description: This is the cost to evaluate if the call was successful.
        successEvaluationPromptTokens:
          type: number
          description: This is the number of prompt tokens used to evaluate if the call was successful.
        successEvaluationCompletionTokens:
          type: number
          description: This is the number of completion tokens used to evaluate if the call was successful.
        successEvaluationCachedPromptTokens:
          type: number
          description: This is the number of cached prompt tokens used to evaluate if the call was successful.
        structuredOutput:
          type: number
          description: This is the cost to evaluate structuredOutputs from the call.
        structuredOutputPromptTokens:
          type: number
          description: This is the number of prompt tokens used to evaluate structuredOutputs from the call.
        structuredOutputCompletionTokens:
          type: number
          description: This is the number of completion tokens used to evaluate structuredOutputs from the call.
        structuredOutputCachedPromptTokens:
          type: number
          description: This is the number of cached prompt tokens used to evaluate structuredOutputs from the call.
    AnalysisPlan:
      type: object
      properties:
        minMessagesThreshold:
          type: number
          description: 'The minimum number of messages required to run the analysis plan.

            If the number of messages is less than this, analysis will be skipped.


            @default 2'
          deprecated: true
          minimum: 0
        summaryPlan:
          description: This is the plan for generating the summary of the call. This outputs to `call.analysis.summary`.
          deprecated: true
          allOf:
          - $ref: '#/components/schemas/SummaryPlan'
        structuredDataPlan:
          description: This is the plan for generating the structured data from the call. This outputs to `call.analysis.structuredData`.
          deprecated: true
          allOf:
          - $ref: '#/components/schemas/StructuredDataPlan'
        structuredDataMultiPlan:
          description: This is an array of structured data plan catalogs. Each entry includes a `key` and a `plan` for generating
            the structured data from the call. This outputs to `call.analysis.structuredDataMulti`.
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/StructuredDataMultiPlan'
        successEvaluationPlan:
          description: This is the plan for generating the success evaluation of the call. This outputs to `call.analysis.successEvaluation`.
          deprecated: true
          allOf:
          - $ref: '#/components/schemas/SuccessEvaluationPlan'
        outcomeIds:
          description: 'This is an array of outcome UUIDs to be calculated during analysis.

            The outcomes will be calculated and stored in `call.analysis.outcomes`.'
          deprecated: true
          type: array
          items:
            type: string
    AnthropicBedrockModel:
      type: object
      properties:
        messages:
          description: This is the starting state for the conversation.
          type: array
          items:
            $ref: '#/components/schemas/OpenAIMessage'
        tools:
          type: array
          description: 'These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.


            Both `tools` and `toolIds` can be used together.'
          items:
            oneOf:
            - $ref: '#/components/schemas/CreateApiRequestToolDTO'
              title: ApiRequestTool
            - $ref: '#/components/schemas/CreateBashToolDTO'
              title: BashTool
            - $ref: '#/components/schemas/CreateCodeToolDTO'
              title: CodeTool
            - $ref: '#/components/schemas/CreateComputerToolDTO'
              title: ComputerTool
            - $ref: '#/components/schemas/CreateDtmfToolDTO'
              title: DtmfTool
            - $ref: '#/components/schemas/CreateEndCallToolDTO'
              title: EndCallTool
            - $ref: '#/components/schemas/CreateFunctionToolDTO'
              title: FunctionTool
            - $ref: '#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO'
              title: GoHighLevelCalendarAvailabilityTool
            - $ref: '#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO'
              title: GoHighLevelCalendarEventCreateTool
            - $ref: '#/components/schemas/CreateGoHighLevelContactCreateToolDTO'
              title: GoHighLevelContactCreateTool
            - $ref: '#/components/schemas/CreateGoHighLevelContactGetToolDTO'
              title: GoHighLevelContactGetTool
            - $ref: '#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO'
              title: GoogleCalendarCheckAvailabilityTool
            - $ref: '#/components/schemas/CreateGoogleCalendarCreateEventToolDTO'
              title: GoogleCalendarCreateEventTool
            - $ref: '#/components/schemas/CreateGoogleSheetsRowAppendToolDTO'
              title: GoogleSheetsRowAppendTool
            - $ref: '#/components/schemas/CreateHandoffToolDTO'
              title: HandoffTool
            - $ref: '#/components/schemas/CreateMcpToolDTO'
              title: McpTool
            - $ref: '#/components/schemas/CreateQueryToolDTO'
              title: QueryTool
            - $ref: '#/components/schemas/CreateSlackSendMessageToolDTO'
              title: SlackSendMessageTool
            - $ref: '#/components/schemas/CreateSmsToolDTO'
              title: SmsTool
            - $ref: '#/components/schemas/CreateTextEditorToolDTO'
              title: TextEditorTool
            - $ref: '#/components/schemas/CreateTransferCallToolDTO'
              title: TransferCallTool
            - $ref: '#/components/schemas/CreateSipRequestToolDTO'
              title: SipRequestTool
            - $ref: '#/components/schemas/CreateVoicemailToolDTO'
              title: VoicemailTool
        toolIds:
          description: 'These are the tools that the assistant can use during the call. To use transient tools, use `tools`.


            Both `tools` and `toolIds` can be used together.'
          type: array
          items:
            type: string
        knowledgeBase:
          description: These are the options for the knowledge base.
          oneOf:
          - $ref: '#/components/schemas/CreateCustomKnowledgeBaseDTO'
            title: Custom
        provider:
          type: string
          description: The provider identifier for Anthropic via AWS Bedrock.
          enum:
          - anthropic-bedrock
        model:
          type: string
          description: The specific Anthropic/Claude model that will be used via Bedrock.
          enum:
          - claude-3-opus-20240229
          - claude-3-sonnet-20240229
          - claude-3-haiku-20240307
          - claude-3-5-sonnet-20240620
          - claude-3-5-sonnet-20241022
          - claude-3-5-haiku-20241022
          - claude-3-7-sonnet-20250219
          - claude-opus-4-20250514
          - claude-opus-4-5-20251101
          - claude-opus-4-6
          - claude-sonnet-4-20250514
          - claude-sonnet-4-5-20250929
          - claude-sonnet-4-6
          - claude-haiku-4-5-20251001
        thinking:
          description: 'Optional configuration for Anthropic''s thinking feature.

            Only applicable for claude-3-7-sonnet-20250219 model.

            If provided, maxTokens must be greater than thinking.budgetTokens.'
          allOf:
          - $ref: '#/components/schemas/AnthropicThinkingConfig'
        temperature:
          type: number
          description: This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
          minimum: 0
          maximum: 2
        maxTokens:
          type: number
          description: This is the max number of tokens that the assistant will be allowed to generate in each turn of the
            conversation. Default is 250.
          minimum: 50
          maximum: 10000
        emotionRecognitionEnabled:
          type: boolean
          description: 'This determines whether we detect user''s emotion while they speak and send it as an additional info
            to model.


            Default `false` because the model is usually are good at understanding the user''s emotion from text.


            @default false'
        numFastTurns:
          type: number
          description: 'This sets how many turns at the start of the conversation to use a smaller, faster model from the
            same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.


            Default is 0.


            @default 0'
          minimum: 0
      required:
      - provider
      - model
    AnthropicModel:
      type: object
      properties:
        messages:
          description: This is the starting state for the conversation.
          type: array
          items:
            $ref: '#/components/schemas/OpenAIMessage'
        tools:
          type: array
          description: 'These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.


            Both `tools` and `toolIds` can be used together.'
          items:
            oneOf:
            - $ref: '#/components/schemas/CreateApiRequestToolDTO'
              title: ApiRequestTool
            - $ref: '#/components/schemas/CreateBashToolDTO'
              title: BashTool
            - $ref: '#/components/schemas/CreateCodeToolDTO'
              title: CodeTool
            - $ref: '#/components/schemas/CreateComputerToolDTO'
              title: ComputerTool
            - $ref: '#/components/schemas/CreateDtmfToolDTO'
              title: DtmfTool
            - $ref: '#/components/schemas/CreateEndCallToolDTO'
              title: EndCallTool
            - $ref: '#/components/schemas/CreateFunctionToolDTO'
              title: FunctionTool
            - $ref: '#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO'
              title: GoHighLevelCalendarAvailabilityTool
            - $ref: '#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO'
              title: GoHighLevelCalendarEventCreateTool
            - $ref: '#/components/schemas/CreateGoHighLevelContactCreateToolDTO'
              title: GoHighLevelContactCreateTool
            - $ref: '#/components/schemas/CreateGoHighLevelContactGetToolDTO'
              title: GoHighLevelContactGetTool
            - $ref: '#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO'
              title: GoogleCalendarCheckAvailabilityTool
            - $ref: '#/components/schemas/CreateGoogleCalendarCreateEventToolDTO'
              title: GoogleCalendarCreateEventTool
            - $ref: '#/components/schemas/CreateGoogleSheetsRowAppendToolDTO'
              title: GoogleSheetsRowAppendTool
            - $ref: '#/components/schemas/CreateHandoffToolDTO'
              title: HandoffTool
            - $ref: '#/components/schemas/CreateMcpToolDTO'
              title: McpTool
            - $ref: '#/components/schemas/CreateQueryToolDTO'
              title: QueryTool
            - $ref: '#/components/schemas/CreateSlackSendMessageToolDTO'
              title: SlackSendMessageTool
            - $ref: '#/components/schemas/CreateSmsToolDTO'
              title: SmsTool
            - $ref: '#/components/schemas/CreateTextEditorToolDTO'
              title: TextEditorTool
            - $ref: '#/components/schemas/CreateTransferCallToolDTO'
              title: TransferCallTool
            - $ref: '#/components/schemas/CreateSipRequestToolDTO'
              title: SipRequestTool
            - $ref: '#/components/schemas/CreateVoicemailToolDTO'
              title: VoicemailTool
        toolIds:
          description: 'These are the tools that the assistant can use during the call. To use transient tools, use `tools`.


            Both `tools` and `toolIds` can be used together.'
          type: array
          items:
            type: string
        knowledgeBase:
          description: These are the options for the knowledge base.
          oneOf:
          - $ref: '#/components/schemas/CreateCustomKnowledgeBaseDTO'
            title: Custom
        model:
          type: string
          description: The specific Anthropic/Claude model that will be used.
          enum:
          - claude-3-opus-20240229
          - claude-3-sonnet-20240229
          - claude-3-haiku-20240307
          - claude-3-5-sonnet-20240620
          - claude-3-5-sonnet-20241022
          - claude-3-5-haiku-20241022
          - claude-3-7-sonnet-20250219
          - claude-opus-4-20250514
          - claude-opus-4-5-20251101
          - claude-opus-4-6
          - claude-sonnet-4-20250514
          - claude-sonnet-4-5-20250929
          - claude-sonnet-4-6
          - claude-haiku-4-5-20251001
        provider:
          type: string
          description: The provider identifier for Anthropic.
          enum:
          - anthropic
        thinking:
          description: 'Optional configuration for Anthropic''s thinking feature.

            Only applicable for claude-3-7-sonnet-20250219 model.

            If provided, maxTokens must be greater than thinking.budgetTokens.'
          allOf:
          - $ref: '#/components/schemas/AnthropicThinkingConfig'
        temperature:
          type: number
          description: This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
          minimum: 0
          maximum: 2
        maxTokens:
          type: number
          description: This is the max number of tokens that the assistant will be allowed to generate in each turn of the
            conversation. Default is 250.
          minimum: 50
          maximum: 10000
        emotionRecognitionEnabled:
          type: boolean
          description: 'This determines whether we detect user''s emotion while they speak and send it as an additional info
            to model.


            Default `false` because the model is usually are good at understanding the user''s emotion from text.


            @default false'
        numFastTurns:
          type: number
          description: 'This sets how many turns at the start of the conversation to use a smaller, faster model from the
            same provider before switching to the primary model. Example, gpt-3.5-turbo if provider is openai.


            Default is 0.


            @default 0'
          minimum: 0
      required:
      - model
      - provider
    AnthropicThinkingConfig:
      type: object
      properties:
        type:
          type: string
          enum:
          - enabled
        budgetTokens:
          type: number
          description: 'The maximum number of tokens to allocate for thinking.

            Must be between 1024 and 100000 tokens.'
          minimum: 1024
          maximum: 100000
      required:
      - type
      - budgetTokens
    AnyscaleModel:
      type: object
      properties:
        messages:
          description: This is the starting state for the conversation.
          type: array
          items:
            $ref: '#/components/schemas/OpenAIMessage'
        tools:
          type: array
          description: 'These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.


            Both `tools` and `toolIds` can be used together.'
          items:
            oneOf:
            - $ref: '#/components/schemas/CreateApiRequestToolDTO'
              title: ApiRequestTool
            - $ref: '#/components/schemas/CreateBashToolDTO'
              title: BashTool
            - $ref: '#/components/schemas/CreateCodeToolDTO'
              title: CodeTool
            - $ref: '#/components/schemas/CreateComputerToolDTO'
              title: ComputerTool
            - $ref: '#/components/schemas/CreateDtmfToolDTO'
              title: DtmfTool
            - $ref: '#/components/schemas/CreateEndCallToolDTO'
              title: EndCallTool
            - $ref: '#/components/schemas/CreateFunctionToolDTO'
              title: FunctionTool
            - $ref: '#/components/schemas/CreateGoHighLevelCalendarAvailabilityToolDTO'
              title: GoHighLevelCalendarAvailabilityTool
            - $ref: '#/components/schemas/CreateGoHighLevelCalendarEventCreateToolDTO'
              title: GoHighLevelCalendarEventCreateTool
            - $ref: '#/components/schemas/CreateGoHighLevelContactCreateToolDTO'
              title: GoHighLevelContactCreateTool
            - $ref: '#/components/schemas/CreateGoHighLevelContactGetToolDTO'
              title: GoHighLevelContactGetTool
            - $ref: '#/components/schemas/CreateGoogleCalendarCheckAvailabilityToolDTO'
              title: GoogleCalendarCheck

# --- truncated at 32 KB (858 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vapi-ai/refs/heads/main/openapi/vapi-calls-api-openapi.yml