Vapi Eval API

The Eval API from Vapi — 4 operation(s) for eval.

OpenAPI Specification

vapi-eval-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Vapi Analytics Eval API
  description: Voice AI for developers.
  version: '1.0'
  contact: {}
servers:
- url: https://api.vapi.ai
tags:
- name: Eval
paths:
  /eval:
    post:
      operationId: EvalController_create
      summary: Create Eval
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEvalDTO'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Eval'
      tags:
      - Eval
      security:
      - bearer: []
    get:
      operationId: EvalController_getPaginated
      summary: List Evals
      parameters:
      - name: id
        required: false
        in: query
        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/EvalPaginatedResponse'
      tags:
      - Eval
      security:
      - bearer: []
  /eval/{id}:
    patch:
      operationId: EvalController_update
      summary: Update Eval
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEvalDTO'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Eval'
      tags:
      - Eval
      security:
      - bearer: []
    delete:
      operationId: EvalController_remove
      summary: Delete Eval
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Eval'
      tags:
      - Eval
      security:
      - bearer: []
    get:
      operationId: EvalController_get
      summary: Get Eval
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Eval'
      tags:
      - Eval
      security:
      - bearer: []
  /eval/run/{id}:
    delete:
      operationId: EvalController_removeRun
      summary: Delete Eval Run
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvalRun'
      tags:
      - Eval
      security:
      - bearer: []
    get:
      operationId: EvalController_getRun
      summary: Get Eval Run
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvalRun'
      tags:
      - Eval
      security:
      - bearer: []
  /eval/run:
    post:
      operationId: EvalController_run
      summary: Create Eval Run
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEvalRunDTO'
      responses:
        '200':
          description: ''
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      tags:
      - Eval
      security:
      - bearer: []
    get:
      operationId: EvalController_getRunsPaginated
      summary: List Eval Runs
      parameters:
      - name: id
        required: false
        in: query
        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/EvalRunPaginatedResponse'
      tags:
      - Eval
      security:
      - bearer: []
components:
  schemas:
    CustomerSpeechTimeoutOptions:
      type: object
      properties:
        timeoutSeconds:
          type: number
          description: 'This is the timeout in seconds before action is triggered.

            The clock starts when the assistant finishes speaking and remains active until the user speaks.


            @default 7.5

            @minimum 2

            @maximum 1000'
          minimum: 1
          maximum: 1000
        triggerMaxCount:
          type: number
          description: 'This is the maximum number of times the hook will trigger in a call.


            @default 3'
          minimum: 1
          maximum: 10
        triggerResetMode:
          type: object
          description: 'This is whether the counter for hook trigger resets the user speaks.


            @default never'
      required:
      - timeoutSeconds
    CreateInflectionAICredentialDTO:
      type: object
      properties:
        provider:
          type: string
          description: 'This is the api key for Pi in InflectionAI''s console. Get it from here: https://developers.inflection.ai/keys, billing will need to be setup'
          enum:
          - inflection-ai
        apiKey:
          type: string
          maxLength: 10000
          description: This is not returned in the API.
        name:
          type: string
          description: This is the name of credential. This is just for your reference.
          minLength: 1
          maxLength: 40
      required:
      - provider
      - apiKey
    FallbackNeuphonicVoice:
      type: object
      properties:
        cachingEnabled:
          type: boolean
          description: This is the flag to toggle voice caching for the assistant.
          example: true
          default: true
        provider:
          type: string
          description: This is the voice provider that will be used.
          enum:
          - neuphonic
        voiceId:
          description: This is the provider-specific ID that will be used.
          oneOf:
          - type: string
            enum: []
            title: Preset Voice Options
          - type: string
            title: Neuphonic Voice ID
        model:
          type: string
          description: This is the model that will be used. Defaults to 'neu_fast' if not specified.
          enum:
          - neu_hq
          - neu_fast
          example: neu_fast
        language:
          type: object
          description: This is the language (ISO 639-1) that is enforced for the model.
          example: en
        speed:
          type: number
          description: This is the speed multiplier that will be used.
          minimum: 0.25
          maximum: 2
          example: null
        chunkPlan:
          description: This is the plan for chunking the model output before it is sent to the voice provider.
          allOf:
          - $ref: '#/components/schemas/ChunkPlan'
      required:
      - provider
      - voiceId
      - language
    CreateGoogleSheetsOAuth2AuthorizationCredentialDTO:
      type: object
      properties:
        provider:
          type: string
          enum:
          - google.sheets.oauth2-authorization
        authorizationId:
          type: string
          description: The authorization ID for the OAuth2 authorization
        name:
          type: string
          description: This is the name of credential. This is just for your reference.
          minLength: 1
          maxLength: 40
      required:
      - provider
      - authorizationId
    AssistantOverrides:
      type: object
      properties:
        transcriber:
          description: These are the options for the assistant's transcriber.
          oneOf:
          - $ref: '#/components/schemas/AssemblyAITranscriber'
            title: AssemblyAITranscriber
          - $ref: '#/components/schemas/AzureSpeechTranscriber'
            title: AzureSpeechTranscriber
          - $ref: '#/components/schemas/CustomTranscriber'
            title: CustomTranscriber
          - $ref: '#/components/schemas/DeepgramTranscriber'
            title: DeepgramTranscriber
          - $ref: '#/components/schemas/ElevenLabsTranscriber'
            title: ElevenLabsTranscriber
          - $ref: '#/components/schemas/GladiaTranscriber'
            title: GladiaTranscriber
          - $ref: '#/components/schemas/GoogleTranscriber'
            title: GoogleTranscriber
          - $ref: '#/components/schemas/SpeechmaticsTranscriber'
            title: SpeechmaticsTranscriber
          - $ref: '#/components/schemas/TalkscriberTranscriber'
            title: TalkscriberTranscriber
          - $ref: '#/components/schemas/OpenAITranscriber'
            title: OpenAITranscriber
          - $ref: '#/components/schemas/CartesiaTranscriber'
            title: CartesiaTranscriber
          - $ref: '#/components/schemas/SonioxTranscriber'
            title: SonioxTranscriber
        model:
          description: These are the options for the assistant's LLM.
          oneOf:
          - $ref: '#/components/schemas/AnthropicModel'
            title: Anthropic
          - $ref: '#/components/schemas/AnthropicBedrockModel'
            title: AnthropicBedrock
          - $ref: '#/components/schemas/AnyscaleModel'
            title: Anyscale
          - $ref: '#/components/schemas/CerebrasModel'
            title: Cerebras
          - $ref: '#/components/schemas/CustomLLMModel'
            title: CustomLLM
          - $ref: '#/components/schemas/DeepInfraModel'
            title: DeepInfra
          - $ref: '#/components/schemas/DeepSeekModel'
            title: DeepSeek
          - $ref: '#/components/schemas/GoogleModel'
            title: Google
          - $ref: '#/components/schemas/GroqModel'
            title: Groq
          - $ref: '#/components/schemas/InflectionAIModel'
            title: InflectionAI
          - $ref: '#/components/schemas/MinimaxLLMModel'
            title: MiniMaxLLM
          - $ref: '#/components/schemas/OpenAIModel'
            title: OpenAI
          - $ref: '#/components/schemas/OpenRouterModel'
            title: OpenRouter
          - $ref: '#/components/schemas/PerplexityAIModel'
            title: PerplexityAI
          - $ref: '#/components/schemas/TogetherAIModel'
            title: Together
          - $ref: '#/components/schemas/XaiModel'
            title: XAI
        voice:
          description: These are the options for the assistant's voice.
          oneOf:
          - $ref: '#/components/schemas/AzureVoice'
            title: AzureVoice
          - $ref: '#/components/schemas/CartesiaVoice'
            title: CartesiaVoice
          - $ref: '#/components/schemas/CustomVoice'
            title: CustomVoice
          - $ref: '#/components/schemas/DeepgramVoice'
            title: DeepgramVoice
          - $ref: '#/components/schemas/ElevenLabsVoice'
            title: ElevenLabsVoice
          - $ref: '#/components/schemas/HumeVoice'
            title: HumeVoice
          - $ref: '#/components/schemas/LMNTVoice'
            title: LMNTVoice
          - $ref: '#/components/schemas/NeuphonicVoice'
            title: NeuphonicVoice
          - $ref: '#/components/schemas/OpenAIVoice'
            title: OpenAIVoice
          - $ref: '#/components/schemas/PlayHTVoice'
            title: PlayHTVoice
          - $ref: '#/components/schemas/WellSaidVoice'
            title: WellSaidVoice
          - $ref: '#/components/schemas/RimeAIVoice'
            title: RimeAIVoice
          - $ref: '#/components/schemas/SmallestAIVoice'
            title: SmallestAIVoice
          - $ref: '#/components/schemas/TavusVoice'
            title: TavusVoice
          - $ref: '#/components/schemas/VapiVoice'
            title: VapiVoice
          - $ref: '#/components/schemas/SesameVoice'
            title: SesameVoice
          - $ref: '#/components/schemas/InworldVoice'
            title: InworldVoice
          - $ref: '#/components/schemas/MinimaxVoice'
            title: MinimaxVoice
        firstMessage:
          type: string
          description: 'This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).


            If unspecified, assistant will wait for user to speak and use the model to respond once they speak.'
          example: Hello! How can I help you today?
        firstMessageInterruptionsEnabled:
          type: boolean
          default: false
        firstMessageMode:
          type: string
          description: 'This is the mode for the first message. Default is ''assistant-speaks-first''.


            Use:

            - ''assistant-speaks-first'' to have the assistant speak first.

            - ''assistant-waits-for-user'' to have the assistant wait for the user to speak first.

            - ''assistant-speaks-first-with-model-generated-message'' to have the assistant speak first with a message generated by the model based on the conversation state. (`assistant.model.messages` at call start, `call.messages` at squad transfer points).


            @default ''assistant-speaks-first'''
          enum:
          - assistant-speaks-first
          - assistant-speaks-first-with-model-generated-message
          - assistant-waits-for-user
          example: assistant-speaks-first
        voicemailDetection:
          description: 'These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].

            By default, voicemail detection is disabled.'
          oneOf:
          - type: string
            enum:
            - 'off'
          - $ref: '#/components/schemas/GoogleVoicemailDetectionPlan'
            title: Google
          - $ref: '#/components/schemas/OpenAIVoicemailDetectionPlan'
            title: OpenAI
          - $ref: '#/components/schemas/TwilioVoicemailDetectionPlan'
            title: Twilio
          - $ref: '#/components/schemas/VapiVoicemailDetectionPlan'
            title: Vapi
        clientMessages:
          type: array
          enum:
          - conversation-update
          - assistant.speechStarted
          - function-call
          - function-call-result
          - hang
          - language-changed
          - metadata
          - model-output
          - speech-update
          - status-update
          - transcript
          - tool-calls
          - tool-calls-result
          - tool.completed
          - transfer-update
          - user-interrupted
          - voice-input
          - workflow.node.started
          - assistant.started
          example:
          - conversation-update
          - function-call
          - hang
          - model-output
          - speech-update
          - status-update
          - transfer-update
          - transcript
          - tool-calls
          - user-interrupted
          - voice-input
          - workflow.node.started
          - assistant.started
          description: These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input,workflow.node.started,assistant.started. You can check the shape of the messages in ClientMessage schema.
          items:
            type: string
            enum:
            - conversation-update
            - assistant.speechStarted
            - function-call
            - function-call-result
            - hang
            - language-changed
            - metadata
            - model-output
            - speech-update
            - status-update
            - transcript
            - tool-calls
            - tool-calls-result
            - tool.completed
            - transfer-update
            - user-interrupted
            - voice-input
            - workflow.node.started
            - assistant.started
        serverMessages:
          type: array
          enum:
          - assistant.started
          - assistant.speechStarted
          - conversation-update
          - end-of-call-report
          - function-call
          - hang
          - language-changed
          - language-change-detected
          - model-output
          - phone-call-control
          - speech-update
          - status-update
          - transcript
          - transcript[transcriptType="final"]
          - tool-calls
          - transfer-destination-request
          - handoff-destination-request
          - transfer-update
          - user-interrupted
          - voice-input
          - chat.created
          - chat.deleted
          - session.created
          - session.updated
          - session.deleted
          - call.deleted
          - call.delete.failed
          example:
          - conversation-update
          - end-of-call-report
          - function-call
          - hang
          - speech-update
          - status-update
          - tool-calls
          - transfer-destination-request
          - handoff-destination-request
          - user-interrupted
          - assistant.started
          description: These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,handoff-destination-request,user-interrupted,assistant.started. You can check the shape of the messages in ServerMessage schema.
          items:
            type: string
            enum:
            - assistant.started
            - assistant.speechStarted
            - conversation-update
            - end-of-call-report
            - function-call
            - hang
            - language-changed
            - language-change-detected
            - model-output
            - phone-call-control
            - speech-update
            - status-update
            - transcript
            - transcript[transcriptType="final"]
            - tool-calls
            - transfer-destination-request
            - handoff-destination-request
            - transfer-update
            - user-interrupted
            - voice-input
            - chat.created
            - chat.deleted
            - session.created
            - session.updated
            - session.deleted
            - call.deleted
            - call.delete.failed
        maxDurationSeconds:
          type: number
          description: 'This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.


            @default 600 (10 minutes)'
          minimum: 10
          maximum: 43200
          example: 600
        backgroundSound:
          description: 'This is the background sound in the call. Default for phone calls is ''office'' and default for web calls is ''off''.

            You can also provide a custom sound by providing a URL to an audio file.'
          oneOf:
          - type: string
            enum:
            - 'off'
            - office
            example: office
          - type: string
            format: uri
            example: https://www.soundjay.com/ambient/sounds/people-in-lounge-1.mp3
        modelOutputInMessagesEnabled:
          type: boolean
          description: 'This determines whether the model''s output is used in conversation history rather than the transcription of assistant''s speech.


            @default false'
          example: false
        transportConfigurations:
          type: array
          description: These are the configurations to be passed to the transport providers of assistant's calls, like Twilio. You can store multiple configurations for different transport providers. For a call, only the configuration matching the call transport provider is used.
          items:
            oneOf:
            - $ref: '#/components/schemas/TransportConfigurationTwilio'
              title: Twilio
        observabilityPlan:
          description: 'This is the plan for observability of assistant''s calls.


            Currently, only Langfuse is supported.'
          oneOf:
          - $ref: '#/components/schemas/LangfuseObservabilityPlan'
            title: Langfuse
          allOf:
          - $ref: '#/components/schemas/LangfuseObservabilityPlan'
        credentials:
          type: array
          description: These are dynamic credentials that will be used for the assistant calls. By default, all the credentials are available for use in the call but you can supplement an additional credentials using this. Dynamic credentials override existing credentials.
          items:
            oneOf:
            - $ref: '#/components/schemas/CreateAnthropicCredentialDTO'
              title: AnthropicCredential
            - $ref: '#/components/schemas/CreateAnthropicBedrockCredentialDTO'
              title: AnthropicBedrockCredential
            - $ref: '#/components/schemas/CreateAnyscaleCredentialDTO'
              title: AnyscaleCredential
            - $ref: '#/components/schemas/CreateAssemblyAICredentialDTO'
              title: AssemblyAICredential
            - $ref: '#/components/schemas/CreateAzureCredentialDTO'
              title: AzureCredential
            - $ref: '#/components/schemas/CreateAzureOpenAICredentialDTO'
              title: AzureOpenAICredential
            - $ref: '#/components/schemas/CreateByoSipTrunkCredentialDTO'
              title: ByoSipTrunkCredential
            - $ref: '#/components/schemas/CreateCartesiaCredentialDTO'
              title: CartesiaCredential
            - $ref: '#/components/schemas/CreateCerebrasCredentialDTO'
              title: CerebrasCredential
            - $ref: '#/components/schemas/CreateCloudflareCredentialDTO'
              title: CloudflareCredential
            - $ref: '#/components/schemas/CreateCustomLLMCredentialDTO'
              title: CustomLLMCredential
            - $ref: '#/components/schemas/CreateDeepgramCredentialDTO'
              title: DeepgramCredential
            - $ref: '#/components/schemas/CreateDeepInfraCredentialDTO'
              title: DeepInfraCredential
            - $ref: '#/components/schemas/CreateDeepSeekCredentialDTO'
              title: DeepSeekCredential
            - $ref: '#/components/schemas/CreateElevenLabsCredentialDTO'
              title: ElevenLabsCredential
            - $ref: '#/components/schemas/CreateGcpCredentialDTO'
              title: GcpCredential
            - $ref: '#/components/schemas/CreateGladiaCredentialDTO'
              title: GladiaCredential
            - $ref: '#/components/schemas/CreateGoHighLevelCredentialDTO'
              title: GhlCredential
            - $ref: '#/components/schemas/CreateGoogleCredentialDTO'
              title: GoogleCredential
            - $ref: '#/components/schemas/CreateGroqCredentialDTO'
              title: GroqCredential
            - $ref: '#/components/schemas/CreateHumeCredentialDTO'
              title: HumeCredential
            - $ref: '#/components/schemas/CreateInflectionAICredentialDTO'
              title: InflectionAICredential
            - $ref: '#/components/schemas/CreateLangfuseCredentialDTO'
              title: LangfuseCredential
            - $ref: '#/components/schemas/CreateLmntCredentialDTO'
              title: LmntCredential
            - $ref: '#/components/schemas/CreateMakeCredentialDTO'
              title: MakeCredential
            - $ref: '#/components/schemas/CreateMistralCredentialDTO'
              title: MistralCredential
            - $ref: '#/components/schemas/CreateNeuphonicCredentialDTO'
              title: NeuphonicCredential
            - $ref: '#/components/schemas/CreateOpenAICredentialDTO'
              title: OpenAICredential
            - $ref: '#/components/schemas/CreateOpenRouterCredentialDTO'
              title: OpenRouterCredential
            - $ref: '#/components/schemas/CreatePerplexityAICredentialDTO'
              title: PerplexityAICredential
            - $ref: '#/components/schemas/CreatePlayHTCredentialDTO'
              title: PlayHTCredential
            - $ref: '#/components/schemas/CreateRimeAICredentialDTO'
              title: RimeAICredential
            - $ref: '#/components/schemas/CreateRunpodCredentialDTO'
              title: RunpodCredential
            - $ref: '#/components/schemas/CreateS3CredentialDTO'
              title: S3Credential
            - $ref: '#/components/schemas/CreateSmallestAICredentialDTO'
              title: SmallestAICredential
            - $ref: '#/components/schemas/CreateSpeechmaticsCredentialDTO'
              title: SpeechmaticsCredential
            - $ref: '#/components/schemas/CreateSonioxCredentialDTO'
              title: SonioxCredential
            - $ref: '#/components/schemas/CreateSupabaseCredentialDTO'
              title: SupabaseCredential
            - $ref: '#/components/schemas/CreateTavusCredentialDTO'
              title: TavusCredential
            - $ref: '#/components/schemas/CreateTogetherAICredentialDTO'
              title: TogetherAICredential
            - $ref: '#/components/schemas/CreateTwilioCredentialDTO'
              title: TwilioCredential
            - $ref: '#/components/schemas/CreateVonageCredentialDTO'
              title: VonageCredential
            - $ref: '#/components/schemas/CreateWebhookCredentialDTO'
              title: WebhookCredential
            - $ref: '#/components/schemas/CreateCustomCredentialDTO'
              title: CustomCredential
            - $ref: '#/components/schemas/CreateXAiCredentialDTO'
              title: XAiCredential
            - $ref: '#/components/schemas/CreateGoogleCalendarOAuth2ClientCredentialDTO'
              title: GoogleCalendarOAuth2ClientCredential
            - $ref: '#/components/schemas/CreateGoogleCalendarOAuth2AuthorizationCredentialDTO'
              title: GoogleCalendarOAuth2AuthorizationCredential
            - $ref: '#/components/schemas/CreateGoogleSheetsOAuth2AuthorizationCredentialDTO'
              title: GoogleSheetsOAuth2AuthorizationCredential
            - $ref: '#/components/schemas/CreateSlackOAuth2AuthorizationCredentialDTO'
              title: SlackOAuth2AuthorizationCredential
            - $ref: '#/components/schemas/CreateGoHighLevelMCPCredentialDTO'
              title: GoHighLevelMCPCredential
            - $ref: '#/components/schemas/CreateInworldCredentialDTO'
              title: InworldCredential
            - $ref: '#/components/schemas/CreateMinimaxCredentialDTO'
        

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