Vapi · Schema

ToolMessageComplete

Artificial IntelligenceVoiceAgentsReal-TimeCPaaS

Properties

Name Type Description
contents array This is an alternative to the `content` property. It allows to specify variants of the same content, one per language. Usage: - If your assistants are multilingual, you can provide content for each la
type string This message is triggered when the tool call is complete. This message is triggered immediately without waiting for your server to respond for async tool calls. If this message is not provided, the mo
role string This is optional and defaults to "assistant". When role=assistant, `content` is said out loud. When role=system, `content` is passed to the model in a system message. Example: system: default one assi
endCallAfterSpokenEnabled boolean This is an optional boolean that if true, the call will end after the message is spoken. Default is false. This is ignored if `role` is set to `system`. @default false
content string This is the content that the assistant says when this message is triggered.
conditions array This is an optional array of conditions that the tool call arguments must meet in order for this message to be triggered.
View JSON Schema on GitHub

JSON Schema

vapi-toolmessagecomplete-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ToolMessageComplete",
  "title": "ToolMessageComplete",
  "type": "object",
  "properties": {
    "contents": {
      "type": "array",
      "description": "This is an alternative to the `content` property. It allows to specify variants of the same content, one per language.\n\nUsage:\n- If your assistants are multilingual, you can provide content for each language.\n- If you don't provide content for a language, the first item in the array will be automatically translated to the active language at that moment.\n\nThis will override the `content` property.",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/TextContent",
            "title": "Text"
          }
        ]
      }
    },
    "type": {
      "type": "string",
      "description": "This message is triggered when the tool call is complete.\n\nThis message is triggered immediately without waiting for your server to respond for async tool calls.\n\nIf this message is not provided, the model will be requested to respond.\n\nIf this message is provided, only this message will be spoken and the model will not be requested to come up with a response. It's an exclusive OR.",
      "enum": [
        "request-complete"
      ]
    },
    "role": {
      "type": "string",
      "description": "This is optional and defaults to \"assistant\".\n\nWhen role=assistant, `content` is said out loud.\n\nWhen role=system, `content` is passed to the model in a system message. Example:\n    system: default one\n    assistant:\n    user:\n    assistant:\n    user:\n    assistant:\n    user:\n    assistant: tool called\n    tool: your server response\n    <--- system prompt as hint\n    ---> model generates response which is spoken\nThis is useful when you want to provide a hint to the model about what to say next.",
      "enum": [
        "assistant",
        "system"
      ]
    },
    "endCallAfterSpokenEnabled": {
      "type": "boolean",
      "description": "This is an optional boolean that if true, the call will end after the message is spoken. Default is false.\n\nThis is ignored if `role` is set to `system`.\n\n@default false",
      "example": false
    },
    "content": {
      "type": "string",
      "description": "This is the content that the assistant says when this message is triggered.",
      "maxLength": 1000
    },
    "conditions": {
      "description": "This is an optional array of conditions that the tool call arguments must meet in order for this message to be triggered.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Condition"
      }
    }
  },
  "required": [
    "type"
  ]
}

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.
All 92 tools

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/vapi-toolmessagecomplete"
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 email required.

A second provider on the same verified email joins the account you already have.