v1
latestOpenAPI 3.0.32026-07-267015229.9 KBTools
Create Tool
Create a standalone tool that can be attached to one or more PALs via Attach Tools To PAL.
In-call tools (trigger_type: in_call, default) are invoked during the conversation by an LLM (origin: llm) or a perception model (origin: vision / origin: audio).
Post-call actions (trigger_type: post_call) run once after the conversation ends; omit origin and set delivery.api (HTTPS webhook). See Post-Call Actions.
Every tool dispatches via exactly one delivery channel:
- delivery.app_message: true (default) - calls land on your frontend as a conversation.tool_call event over the Daily data channel.
- delivery.api - Tavus makes an HTTPS request to a URL you configure. Supports five auth types and {placeholder} templating in the URL path, query string, and body.
See Tools Overview, LLM Tool Delivery, and LLM Tool Auth for the conceptual model.
post/v2/tools
Request body
Example request
{
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name"
}
},
"required": [
"city"
]
},
"delivery": {
"api": {
"url": "https://api.example.com/v1/weather/{city}",
"headers": {
"X-Service": "weather-bot"
},
"auth": {
"name": "X-API-Key",
"token_url": "https://auth.example.com/oauth/token"
},
"query_params": {
"units": "metric"
},
"content_type": "application/json"
}
},
"trigger_type": "in_call",
"origin": "llm",
"on_call": "generate_filler",
"on_resolve": "generate_response",
"static_filler": "Sure, let me grab that for you."
}Response
Tool created
Example response
{
"tool_id": "tabc123def456",
"owner_id": 3675,
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name"
}
},
"required": [
"city"
]
},
"delivery": {
"api": {
"url": "https://api.example.com/v1/weather/{city}",
"headers": {
"X-Service": "weather-bot"
},
"auth": {
"name": "X-API-Key",
"token_url": "https://auth.example.com/oauth/token"
},
"query_params": {
"units": "metric"
},
"content_type": "application/json"
}
},
"trigger_type": "in_call",
"origin": "llm",
"on_call": "generate_filler",
"on_resolve": "generate_response",
"static_filler": "Sure, let me grab that for you.",
"created_at": "2026-05-15T10:30:00",
"updated_at": "2026-05-15T10:30:00"
}