Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/vapi-ai-squads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Vapi Analytics Squads API
description: Vapi API — Analytics 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: Squads
description: Squads endpoints.
paths:
/squad:
post:
operationId: SquadController_create
summary: Create Squad
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSquadDTO'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Squad'
tags:
- Squads
security:
- bearer: []
get:
operationId: SquadController_findAll
summary: List Squads
parameters:
- 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/Squad'
tags:
- Squads
security:
- bearer: []
/squad/{id}:
get:
operationId: SquadController_findOne
summary: Get Squad
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/Squad'
tags:
- Squads
security:
- bearer: []
patch:
operationId: SquadController_update
summary: Update Squad
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/UpdateSquadDTO'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Squad'
tags:
- Squads
security:
- bearer: []
delete:
operationId: SquadController_remove
summary: Delete Squad
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/Squad'
tags:
- Squads
security:
- bearer: []
components:
schemas:
SummaryPlan:
type: object
properties:
messages:
description: "These are the messages used to generate the summary.\n\n@default: ```\n[\n {\n \"role\": \"system\",\n \"content\": \"You are an expert note-taker. You will be given a transcript of a call. Summarize the call in 2-3 sentences. DO NOT return anything except the summary.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Here is the transcript:\\n\\n{{transcript}}\\n\\n. Here is the ended reason of the call:\\n\\n{{endedReason}}\\n\\n\"\n }\n]```\n\nYou can customize by providing any messages you want.\n\nHere are the template variables available:\n- {{transcript}}: The transcript of the call from `call.artifact.transcript` \n- {{systemPrompt}}: The system prompt of the call from `assistant.model.messages[type=system].content` \n- {{messages}}: The messages of the call from `assistant.model.messages` \n- {{endedReason}}: The ended reason of the call from `call.endedReason`"
type: array
items:
type: object
enabled:
type: boolean
description: 'This determines whether a summary is generated and stored in `call.analysis.summary`. Defaults to true.
Usage:
- If you want to disable the summary, set this to false.
@default true'
timeoutSeconds:
type: number
description: 'This is how long the request is tried before giving up. When request times out, `call.analysis.summary` will be empty.
Usage:
- To guarantee the summary is generated, set this value high. Note, this will delay the end of call report in cases where model is slow to respond.
@default 5 seconds'
minimum: 1
maximum: 60
CallHookCallEnding:
type: object
properties:
'on':
type: string
description: This is the event that triggers this hook
enum:
- call.ending
maxLength: 1000
do:
type: array
description: This is the set of actions to perform when the hook triggers
items:
oneOf:
- $ref: '#/components/schemas/ToolCallHookAction'
title: ToolCallHookAction
- $ref: '#/components/schemas/MessageAddHookAction'
title: MessageAddHookAction
filters:
description: This is the set of filters that must match for the hook to trigger
type: array
items:
$ref: '#/components/schemas/CallHookFilter'
required:
- 'on'
- do
CreateMistralCredentialDTO:
type: object
properties:
provider:
type: string
enum:
- mistral
apiKey:
type: string
maxLength: 100
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
NeuphonicVoice:
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'
fallbackPlan:
description: This is the plan for voice provider fallbacks in the event that the primary voice provider fails.
allOf:
- $ref: '#/components/schemas/FallbackPlan'
required:
- provider
- voiceId
- language
RecordingConsentPlanStayOnLine:
type: object
properties:
message:
type: string
description: 'This is the message asking for consent to record the call.
If the type is `stay-on-line`, the message should ask the user to hang up if they do not consent.
If the type is `verbal`, the message should ask the user to verbally consent or decline.'
maxLength: 1000
examples:
- For quality purposes, this call may be recorded. Please stay on the line if you agree or end the call if you do not consent.
- This call may be recorded for quality and training purposes. Say "I agree" if you consent to being recorded, or "I disagree" if you do not consent.
voice:
description: 'This is the voice to use for the consent message. If not specified, inherits from the assistant''s voice.
Use a different voice for the consent message for a better user experience.'
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
- $ref: '#/components/schemas/XaiVoice'
title: XaiVoice
firstMessageMode:
type: string
description: 'This controls whether the consent assistant speaks first or waits for the caller to speak first.
Use:
- `assistant-speaks-first` (default) to have the consent assistant play the consent message as soon as the call is answered.
- `assistant-waits-for-user` to have the consent assistant wait for the caller to speak before playing the consent message.
We strongly recommend `assistant-waits-for-user` for outbound calls. Some telephony providers signal "answered" while the line is still ringing, which can cause the consent message to play into a ringing line and be missed by the caller. Waiting for the caller to speak first guarantees they hear the full consent message.
Note: when combined with `type: ''stay-on-line''`, silence only counts toward consent after the caller has spoken at least once.
@default ''assistant-speaks-first'''
enum:
- assistant-speaks-first
- assistant-waits-for-user
default: assistant-speaks-first
example: assistant-speaks-first
type:
type: string
description: This is the type of recording consent plan. This type assumes consent is granted if the user stays on the line.
enum:
- stay-on-line
example: stay-on-line
waitSeconds:
type: number
description: Number of seconds to wait before transferring to the assistant if user stays on the call
minimum: 1
maximum: 6
default: 3
example: 3
required:
- message
- type
CreateNeuphonicCredentialDTO:
type: object
properties:
provider:
type: string
enum:
- neuphonic
apiKey:
type: string
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
BackoffPlan:
type: object
properties:
type:
type: object
description: 'This is the type of backoff plan to use. Defaults to fixed.
@default fixed'
enum:
- fixed
- exponential
example: fixed
maxRetries:
type: number
description: 'This is the maximum number of retries to attempt if the request fails. Defaults to 0 (no retries).
@default 0'
minimum: 0
maximum: 10
example: 0
baseDelaySeconds:
type: number
description: This is the base delay in seconds. For linear backoff, this is the delay between each retry. For exponential backoff, this is the initial delay.
minimum: 0
maximum: 10
example: 1
excludedStatusCodes:
description: 'This is the excluded status codes. If the response status code is in this list, the request will not be retried.
By default, the request will be retried for any non-2xx status code.'
example:
- 400
- 401
- 403
- 404
type: array
items:
type: object
required:
- type
- maxRetries
- baseDelaySeconds
CreateTextEditorToolDTO:
type: object
properties:
messages:
type: array
description: 'These are the messages that will be spoken to the user as the tool is running.
For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.'
items:
oneOf:
- $ref: '#/components/schemas/ToolMessageStart'
title: ToolMessageStart
- $ref: '#/components/schemas/ToolMessageComplete'
title: ToolMessageComplete
- $ref: '#/components/schemas/ToolMessageFailed'
title: ToolMessageFailed
- $ref: '#/components/schemas/ToolMessageDelayed'
title: ToolMessageDelayed
type:
type: string
enum:
- textEditor
description: The type of tool. "textEditor" for Text Editor tool.
subType:
type: string
enum:
- text_editor_20241022
description: The sub type of tool.
server:
description: "\n This is the server where a `tool-calls` webhook will be sent.\n\n Notes:\n - Webhook is sent to this server when a tool call is made.\n - Webhook contains the call, assistant, and phone number objects.\n - Webhook contains the variables set on the assistant.\n - Webhook is sent to the first available URL in this order: {{tool.server.url}}, {{assistant.server.url}}, {{phoneNumber.server.url}}, {{org.server.url}}.\n - Webhook expects a response with tool call result."
allOf:
- $ref: '#/components/schemas/Server'
name:
type: string
description: The name of the tool, fixed to 'str_replace_editor'
default: str_replace_editor
enum:
- str_replace_editor
rejectionPlan:
description: "This is the plan to reject a tool call based on the conversation state.\n\n// Example 1: Reject endCall if user didn't say goodbye\n```json\n{\n conditions: [{\n type: 'regex',\n regex: '(?i)\\\\b(bye|goodbye|farewell|see you later|take care)\\\\b',\n target: { position: -1, role: 'user' },\n negate: true // Reject if pattern does NOT match\n }]\n}\n```\n\n// Example 2: Reject transfer if user is actually asking a question\n```json\n{\n conditions: [{\n type: 'regex',\n regex: '\\\\?',\n target: { position: -1, role: 'user' }\n }]\n}\n```\n\n// Example 3: Reject transfer if user didn't mention transfer recently\n```json\n{\n conditions: [{\n type: 'liquid',\n liquid: `{% assign recentMessages = messages | last: 5 %}\n{% assign userMessages = recentMessages | where: 'role', 'user' %}\n{% assign mentioned = false %}\n{% for msg in userMessages %}\n {% if msg.content contains 'transfer' or msg.content contains 'connect' or msg.content contains 'speak to' %}\n {% assign mentioned = true %}\n {% break %}\n {% endif %}\n{% endfor %}\n{% if mentioned %}\n false\n{% else %}\n true\n{% endif %}`\n }]\n}\n```\n\n// Example 4: Reject endCall if the bot is looping and trying to exit\n```json\n{\n conditions: [{\n type: 'liquid',\n liquid: `{% assign recentMessages = messages | last: 6 %}\n{% assign userMessages = recentMessages | where: 'role', 'user' | reverse %}\n{% if userMessages.size < 3 %}\n false\n{% else %}\n {% assign msg1 = userMessages[0].content | downcase %}\n {% assign msg2 = userMessages[1].content | downcase %}\n {% assign msg3 = userMessages[2].content | downcase %}\n {% comment %} Check for repetitive messages {% endcomment %}\n {% if msg1 == msg2 or msg1 == msg3 or msg2 == msg3 %}\n true\n {% comment %} Check for common loop phrases {% endcomment %}\n {% elsif msg1 contains 'cool thanks' or msg2 contains 'cool thanks' or msg3 contains 'cool thanks' %}\n true\n {% elsif msg1 contains 'okay thanks' or msg2 contains 'okay thanks' or msg3 contains 'okay thanks' %}\n true\n {% elsif msg1 contains 'got it' or msg2 contains 'got it' or msg3 contains 'got it' %}\n true\n {% else %}\n false\n {% endif %}\n{% endif %}`\n }]\n}\n```"
allOf:
- $ref: '#/components/schemas/ToolRejectionPlan'
required:
- type
- subType
- name
TransferDestinationAssistant:
type: object
properties:
message:
description: 'This is spoken to the customer before connecting them to the destination.
Usage:
- If this is not provided and transfer tool messages is not provided, default is "Transferring the call now".
- If set to "", nothing is spoken. This is useful when you want to silently transfer. This is especially useful when transferring between assistants in a squad. In this scenario, you likely also want to set `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message` for the destination assistant.
This accepts a string or a ToolMessageStart class. Latter is useful if you want to specify multiple messages for different languages through the `contents` field.'
oneOf:
- type: string
- $ref: '#/components/schemas/CustomMessage'
type:
type: string
enum:
- assistant
transferMode:
type: string
description: "This is the mode to use for the transfer. Defaults to `rolling-history`.\n\n- `rolling-history`: This is the default mode. It keeps the entire conversation history and appends the new assistant's system message on transfer.\n\n Example:\n\n Pre-transfer:\n system: assistant1 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n assistant: (destination.message)\n\n Post-transfer:\n system: assistant1 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n assistant: (destination.message)\n system: assistant2 system message\n assistant: assistant2 first message (or model generated if firstMessageMode is set to `assistant-speaks-first-with-model-generated-message`)\n\n- `swap-system-message-in-history`: This replaces the original system message with the new assistant's system message on transfer.\n\n Example:\n\n Pre-transfer:\n system: assistant1 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n assistant: (destination.message)\n\n Post-transfer:\n system: assistant2 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n assistant: (destination.message)\n assistant: assistant2 first message (or model generated if firstMessageMode is set to `assistant-speaks-first-with-model-generated-message`)\n\n- `delete-history`: This deletes the entire conversation history on transfer.\n\n Example:\n\n Pre-transfer:\n system: assistant1 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n assistant: (destination.message)\n\n Post-transfer:\n system: assistant2 system message\n assistant: assistant2 first message\n user: Yes, please\n assistant: how can i help?\n user: i need help with my account\n\n- `swap-system-message-in-history-and-remove-transfer-tool-messages`: This replaces the original system message with the new assistant's system message on transfer and removes transfer tool messages from conversation history sent to the LLM.\n\n Example:\n\n Pre-transfer:\n system: assistant1 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n transfer-tool\n transfer-tool-result\n assistant: (destination.message)\n\n Post-transfer:\n system: assistant2 system message\n assistant: assistant1 first message\n user: hey, good morning\n assistant: how can i help?\n user: i need help with my account\n assistant: (destination.message)\n assistant: assistant2 first message (or model generated if firstMessageMode is set to `assistant-speaks-first-with-model-generated-message`)\n\n@default 'rolling-history'"
enum:
- rolling-history
- swap-system-message-in-history
- swap-system-message-in-history-and-remove-transfer-tool-messages
- delete-history
assistantName:
type: string
description: This is the assistant to transfer the call to.
description:
type: string
description: This is the description of the destination, used by the AI to choose when and how to transfer the call.
required:
- type
- assistantName
CreateEndCallToolDTO:
type: object
properties:
messages:
type: array
description: 'These are the messages that will be spoken to the user as the tool is running.
For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.'
items:
oneOf:
- $ref: '#/components/schemas/ToolMessageStart'
title: ToolMessageStart
- $ref: '#/components/schemas/ToolMessageComplete'
title: ToolMessageComplete
- $ref: '#/components/schemas/ToolMessageFailed'
title: ToolMessageFailed
- $ref: '#/components/schemas/ToolMessageDelayed'
title: ToolMessageDelayed
type:
type: string
enum:
- endCall
description: The type of tool. "endCall" for End Call tool.
rejectionPlan:
description: "This is the plan to reject a tool call based on the conversation state.\n\n// Example 1: Reject endCall if user didn't say goodbye\n```json\n{\n conditions: [{\n type: 'regex',\n regex: '(?i)\\\\b(bye|goodbye|farewell|see you later|take care)\\\\b',\n target: { position: -1, role: 'user' },\n negate: true // Reject if pattern does NOT match\n }]\n}\n```\n\n// Example 2: Reject transfer if user is actually asking a question\n```json\n{\n conditions: [{\n type: 'regex',\n regex: '\\\\?',\n target: { position: -1, role: 'user' }\n }]\n}\n```\n\n// Example 3: Reject transfer if user didn't mention transfer recently\n```json\n{\n conditions: [{\n type: 'liquid',\n liquid: `{% assign recentMessages = messages | last: 5 %}\n{% assign userMessages = recentMessages | where: 'role', 'user' %}\n{% assign mentioned = false %}\n{% for msg in userMessages %}\n {% if msg.content contains 'transfer' or msg.content contains 'connect' or msg.content contains 'speak to' %}\n {% assign mentioned = true %}\n {% break %}\n {% endif %}\n{% endfor %}\n{% if mentioned %}\n false\n{% else %}\n true\n{% endif %}`\n }]\n}\n```\n\n// Example 4: Reject endCall if the bot is looping and trying to exit\n```json\n{\n conditions: [{\n type: 'liquid',\n liquid: `{% assign recentMessages = messages | last: 6 %}\n{% assign userMessages = recentMessages | where: 'role', 'user' | reverse %}\n{% if userMessages.size < 3 %}\n false\n{% else %}\n {% assign msg1 = userMessages[0].content | downcase %}\n {% assign msg2 = userMessages[1].content | downcase %}\n {% assign msg3 = userMessages[2].content | downcase %}\n {% comment %} Check for repetitive messages {% endcomment %}\n {% if msg1 == msg2 or msg1 == msg3 or msg2 == msg3 %}\n true\n {% comment %} Check for common loop phrases {% endcomment %}\n {% elsif msg1 contains 'cool thanks' or msg2 contains 'cool thanks' or msg3 contains 'cool thanks' %}\n true\n {% elsif msg1 contains 'okay thanks' or msg2 contains 'okay thanks' or msg3 contains 'okay thanks' %}\n true\n {% elsif msg1 contains 'got it' or msg2 contains 'got it' or msg3 contains 'got it' %}\n true\n {% else %}\n false\n {% endif %}\n{% endif %}`\n }]\n}\n```"
allOf:
- $ref: '#/components/schemas/ToolRejectionPlan'
required:
- type
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
CreateMinimaxCredentialDTO:
type: object
properties:
provider:
type: string
enum:
- minimax
apiKey:
type: string
description: This is not returned in the API.
groupId:
type: string
description: This is the Minimax Group ID.
name:
type: string
description: This is the name of credential. This is just for your reference.
minLength: 1
maxLength: 40
required:
- provider
- apiKey
- groupId
OpenAITranscriber:
type: object
properties:
provider:
type: string
description: This is the transcription provider that will be used.
enum:
- openai
model:
type: string
description: This is the model that will be used for the transcription.
enum:
- gpt-4o-transcribe
- gpt-4o-mini-transcribe
language:
type: string
description: This is the language that will be set for the transcription.
enum:
- af
- ar
- hy
- az
- be
- bs
- bg
- ca
- zh
- hr
- cs
- da
- nl
- en
- et
- fi
- fr
- gl
- de
- el
- he
- hi
- hu
- is
- id
- it
- ja
- kn
- kk
- ko
- lv
- lt
- mk
- ms
- mr
- mi
- ne
- 'no'
- fa
- pl
- pt
- ro
- ru
- sr
- sk
- sl
- es
- sw
- sv
- tl
- ta
- th
- tr
- uk
- ur
- vi
- cy
fallbackPlan:
description: This is the plan for transcriber provider fallbacks in the event that the primary transcriber provider fails.
allOf:
- $ref: '#/components/schemas/FallbackTranscriberPlan'
required:
- provider
- model
CreateGoogleCredentialDTO:
type: object
properties:
provider:
type: string
description: 'This is the key for Gemini in Google AI Studio. Get it from here: https://aistudio.google.com/app/apikey'
enum:
- google
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
FallbackGladiaTranscriber:
type: object
properties:
provider:
type: string
description: This is the transcription provider that will be used.
enum:
- gladia
model:
description: This is the Gladia model that will be used. Default is 'fast'
oneOf:
- type: string
enum:
- fast
- accurate
- solaria-1
languageBehaviour:
description: Defines how the transcription model detects the audio language. Default value is 'automatic single language'.
oneOf:
- type: string
enum:
- manual
- automatic single language
- automatic multiple languages
language:
type: string
description: Defines the language to use for the transcription. Required when languageBehaviour is 'manual'.
enum:
- af
- sq
- am
- ar
- hy
-
# --- truncated at 32 KB (705 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vapi-ai/refs/heads/main/openapi/vapi-ai-squads-api-openapi.yml