Vapi Chats API

Text-based conversation surface that reuses the same assistant configuration as voice calls, including an OpenAI-compatible /chat/responses endpoint for drop-in replacement of OpenAI chat completions.

Vapi Chats 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.

Tagged areas include Chats, Voice AI, and Text. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

vapi-chats-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Vapi Chats API
  description: Vapi API — Chats 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: Chats
  description: Chats endpoints.
paths:
  /chat:
    get:
      operationId: ChatController_listChats
      summary: List Chats
      parameters:
      - name: id
        required: false
        in: query
        description: This is the unique identifier for the chat to filter by.
        schema:
          type: string
      - name: assistantId
        required: false
        in: query
        description: This is the unique identifier for the assistant that will be used for the chat.
        schema:
          type: string
      - name: assistantIdAny
        required: false
        in: query
        description: Filter by multiple assistant IDs. Provide as comma-separated values.
        schema:
          example: assistant-1,assistant-2,assistant-3
          type: string
      - name: squadId
        required: false
        in: query
        description: This is the unique identifier for the squad that will be used for the chat.
        schema:
          type: string
      - name: sessionId
        required: false
        in: query
        description: This is the unique identifier for the session that will be used for the chat.
        schema:
          type: string
      - name: previousChatId
        required: false
        in: query
        description: This is the unique identifier for the previous chat to filter by.
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: This is the page number to return. Defaults to 1.
        schema:
          minimum: 1
          type: number
      - name: sortOrder
        required: false
        in: query
        description: This is the sort order for pagination. Defaults to 'DESC'.
        schema:
          enum:
          - ASC
          - DESC
          type: string
      - name: sortBy
        required: false
        in: query
        description: This is the column to sort by. Defaults to 'createdAt'.
        schema:
          enum:
          - createdAt
          - duration
          - cost
          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:
                $ref: '#/components/schemas/ChatPaginatedResponse'
      tags:
      - Chats
      security:
      - bearer: []
    post:
      operationId: ChatController_createChat
      summary: Create Chat
      description: 'Creates a new chat with optional SMS delivery via transport field. Requires at least one of: assistantId/assistant,
        sessionId, or previousChatId. Note: sessionId and previousChatId are mutually exclusive. Transport field enables SMS
        delivery with two modes: (1) New conversation - provide transport.phoneNumberId and transport.customer to create a
        new session, (2) Existing conversation - provide sessionId to use existing session data. Cannot specify both sessionId
        and transport fields together. The transport.useLLMGeneratedMessageForOutbound flag controls whether input is processed
        by LLM (true, default) or forwarded directly as SMS (false).'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChatDTO'
      responses:
        '200':
          description: Chat response - either non-streaming chat or streaming
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Chat'
                - $ref: '#/components/schemas/CreateChatStreamResponse'
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Chats
      security:
      - bearer: []
  /chat/{id}:
    get:
      operationId: ChatController_getChat
      summary: Get Chat
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Chat'
      tags:
      - Chats
      security:
      - bearer: []
    delete:
      operationId: ChatController_deleteChat
      summary: Delete Chat
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Chat'
      tags:
      - Chats
      security:
      - bearer: []
  /chat/responses:
    post:
      operationId: ChatController_createOpenAIChat
      summary: Create Chat (OpenAI Compatible)
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenAIResponsesRequest'
      responses:
        '200':
          description: OpenAI Responses API format - either non-streaming or streaming
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ResponseObject'
                - $ref: '#/components/schemas/ResponseTextDeltaEvent'
                - $ref: '#/components/schemas/ResponseTextDoneEvent'
                - $ref: '#/components/schemas/ResponseCompletedEvent'
                - $ref: '#/components/schemas/ResponseErrorEvent'
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Chats
      security:
      - bearer: []
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: Retrieve your API Key from [Dashboard](dashboard.vapi.ai).
  schemas:
    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
    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: 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
          enum:
          - anyscale
        model:
          type: string
          description: This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
        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
    ArtifactPlan:
      type: object
      properties:
        recordingEnabled:
          type: boolean
          description: 'This determines whether assistant''s calls are recorded. Defaults to true.


            Usage:

            - If you don''t want to record the calls, set this to false.

            - If you want to record the calls when `assistant.hipaaEnabled` (deprecated) or `assistant.compliancePlan.hipaaEnabled`
            explicity set this to true and make sure to provide S3 or GCP credentials on the Provider Credentials page in
            the Dashboard.


            You can find the recording at `call.artifact.recordingUrl` and `call.artifact.stereoRecordingUrl` after the call
            is ended.


            @default true'
          example: true
        recordingFormat:
          type: string
          description: 'This determines the format of the recording. Defaults to `wav;l16`.


            @default ''wav;l16'''
          enum:
          - wav;l16
          - mp3
        recordingUseCustomStorageEnabled:
          type: boolean
          description: 'This determines whether to use custom storage (S3 or GCP) for call recordings when storage credentials
            are configured.


            When set to false, recordings will be stored on Vapi''s storage instead of your custom storage, even if you have
            custom storage credentials configured.


            Usage:

            - Set to false if you have custom storage configured but want to store recordings on Vapi''s storage for this
            assistant.

            - Set to true (or leave unset) to use your custom storage for recordings when available.


            @default true'
          example: true
        videoRecordingEnabled:
          type: boolean
          description: 'This determines whether the video is recorded during the call. Defaults to false. Only relevant for
            `webCall` type.


            You can find the video recording at `call.artifact.videoRecordingUrl` after the call is ended.


            @default false'
          example: false
        fullMessageHistoryEnabled:
          type: boolean
          description: This determines whether the artifact contains the full message history, even after handoff context
            engineering. Defaults to false.
          example: false
        pcapEnabled:
          type: boolean
          description: 'This determines whether the SIP packet capture is enabled. Defaults to true. Only relevant for `phone`
            type calls where phone number''s provider is `vapi` or `byo-phone-number`.


            You can find the packet capture at `call.artifact.pcapUrl` after the call is ended.


            @default true'
          example: true
        pcapS3PathPrefix:
          type: string
          description: 'This is the path where the SIP packet capture will be uploaded. This is only used if you have provided
            S3 or GCP credentials on the Provider Credentials page in the Dashboard.


            If credential.s3PathPrefix or credential.bucketPlan.path is set, this will append to it.


            Usage:

            - If you want to upload the packet capture to a specific path, set this to the path. Example: `/my-assistant-captures`.

            - If you want to upload the packet capture to the root of the bucket, set this to `/`.


            @default ''/'''
          example: /pcaps
        pcapUseCustomStorageEnabled:
          type: boolean
          description: 'This determines whether to use custom storage (S3 or GCP) for SIP packet captures when storage credentials
            are configured.


            When set to false, packet captures will be stored on Vapi''s storage instead of your custom storage, even if you
            have custom storage credentials configured.


            Usage:

            - Set to false if you have custom storage configured but want to store packet captures on Vapi''s storage for
            this assistant.

            - Set to true (or leave unset) to use your custom storage for packet captures when available.


            @default true'
          example: true
        loggingEnabled:
          type: boolean
          description: 'This determines whether the call logs are enabled. Defaults to true.


            @default true'
          example: true
        loggingUseCustomStorageEnabled:
          type: boolean
          description: 'Thi

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