Properties
| Name | Type | Description |
|---|---|---|
| assistantId | string | This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. |
| assistant | object | This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead. |
| assistantOverrides | object | These are the variable values that will be used to replace template variables in the assistant messages. Only variable substitution is supported in chat contexts - other assistant properties cannot be |
| squadId | string | This is the squad that will be used for the chat. To use a transient squad, use `squad` instead. |
| squad | object | This is the squad that will be used for the chat. To use an existing squad, use `squadId` instead. |
| name | string | This is the name of the chat. This is just for your own reference. |
| sessionId | string | This is the ID of the session that will be used for the chat. Mutually exclusive with previousChatId. |
| input | object | This is the input text for the chat. Can be a string or an array of chat messages. |
| stream | boolean | This is a flag that determines whether the response should be streamed. When true, the response will be sent as chunks of text. |
| previousChatId | string | This is the ID of the chat that will be used as context for the new chat. The messages from the previous chat will be used as context. Mutually exclusive with sessionId. |
| id | string | This is the unique identifier for the chat. |
| orgId | string | This is the unique identifier for the org that this chat belongs to. |
| messages | array | This is an array of messages used as context for the chat. Used to provide message history for multi-turn conversations. |
| output | array | This is the output messages generated by the system in response to the input. |
| createdAt | string | This is the ISO 8601 date-time string of when the chat was created. |
| updatedAt | string | This is the ISO 8601 date-time string of when the chat was last updated. |
| costs | array | These are the costs of individual components of the chat in USD. |
| cost | number | This is the cost of the chat in USD. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/Chat",
"title": "Chat",
"type": "object",
"properties": {
"assistantId": {
"type": "string",
"description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead."
},
"assistant": {
"description": "This is the assistant that will be used for the chat. To use an existing assistant, use `assistantId` instead.",
"allOf": [
{
"$ref": "#/components/schemas/CreateAssistantDTO"
}
]
},
"assistantOverrides": {
"description": "These are the variable values that will be used to replace template variables in the assistant messages.\nOnly variable substitution is supported in chat contexts - other assistant properties cannot be overridden.",
"allOf": [
{
"$ref": "#/components/schemas/AssistantOverrides"
}
]
},
"squadId": {
"type": "string",
"description": "This is the squad that will be used for the chat. To use a transient squad, use `squad` instead."
},
"squad": {
"description": "This is the squad that will be used for the chat. To use an existing squad, use `squadId` instead.",
"allOf": [
{
"$ref": "#/components/schemas/CreateSquadDTO"
}
]
},
"name": {
"type": "string",
"description": "This is the name of the chat. This is just for your own reference.",
"maxLength": 40
},
"sessionId": {
"type": "string",
"description": "This is the ID of the session that will be used for the chat.\nMutually exclusive with previousChatId."
},
"input": {
"description": "This is the input text for the chat.\nCan be a string or an array of chat messages.",
"oneOf": [
{
"type": "string",
"title": "String"
},
{
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/SystemMessage",
"title": "SystemMessage"
},
{
"$ref": "#/components/schemas/UserMessage",
"title": "UserMessage"
},
{
"$ref": "#/components/schemas/AssistantMessage",
"title": "AssistantMessage"
},
{
"$ref": "#/components/schemas/ToolMessage",
"title": "ToolMessage"
},
{
"$ref": "#/components/schemas/DeveloperMessage",
"title": "DeveloperMessage"
}
]
},
"title": "MessageArray"
}
],
"examples": [
"Hello, how can you help me?",
[
{
"role": "user",
"content": "Hello, how can you help me?"
}
]
]
},
"stream": {
"type": "boolean",
"description": "This is a flag that determines whether the response should be streamed.\nWhen true, the response will be sent as chunks of text.",
"default": false
},
"previousChatId": {
"type": "string",
"description": "This is the ID of the chat that will be used as context for the new chat.\nThe messages from the previous chat will be used as context.\nMutually exclusive with sessionId."
},
"id": {
"type": "string",
"description": "This is the unique identifier for the chat."
},
"orgId": {
"type": "string",
"description": "This is the unique identifier for the org that this chat belongs to."
},
"messages": {
"type": "array",
"description": "This is an array of messages used as context for the chat.\nUsed to provide message history for multi-turn conversations.",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/SystemMessage",
"title": "SystemMessage"
},
{
"$ref": "#/components/schemas/UserMessage",
"title": "UserMessage"
},
{
"$ref": "#/components/schemas/AssistantMessage",
"title": "AssistantMessage"
},
{
"$ref": "#/components/schemas/ToolMessage",
"title": "ToolMessage"
},
{
"$ref": "#/components/schemas/DeveloperMessage",
"title": "DeveloperMessage"
}
]
}
},
"output": {
"type": "array",
"description": "This is the output messages generated by the system in response to the input.",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/SystemMessage",
"title": "SystemMessage"
},
{
"$ref": "#/components/schemas/UserMessage",
"title": "UserMessage"
},
{
"$ref": "#/components/schemas/AssistantMessage",
"title": "AssistantMessage"
},
{
"$ref": "#/components/schemas/ToolMessage",
"title": "ToolMessage"
},
{
"$ref": "#/components/schemas/DeveloperMessage",
"title": "DeveloperMessage"
}
]
}
},
"createdAt": {
"format": "date-time",
"type": "string",
"description": "This is the ISO 8601 date-time string of when the chat was created."
},
"updatedAt": {
"format": "date-time",
"type": "string",
"description": "This is the ISO 8601 date-time string of when the chat was last updated."
},
"costs": {
"type": "array",
"description": "These are the costs of individual components of the chat in USD.",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/ModelCost",
"title": "ModelCost"
},
{
"$ref": "#/components/schemas/ChatCost",
"title": "ChatCost"
}
]
}
},
"cost": {
"type": "number",
"description": "This is the cost of the chat in USD."
}
},
"required": [
"id",
"orgId",
"createdAt",
"updatedAt"
]
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/vapi-chat"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.