Skip to main content
This documents the v1 product. It is kept for integrations already running on it. If you are building something new, start with the Quickstart.
An API tool lets an assistant call your HTTP endpoint during a call — look up an order, check stock, book a slot. Create the tool once per workspace, then list its _id in the assistant’s agent.tools.
API tools are a v1 capability. v2 has no equivalent yet.

Create a tool

201 Created

Parameters

type is string, number, boolean, object or array. Nested objects use properties and their own required list; arrays use items. A property with a fixed value is sent as-is rather than being asked of the model.

Writing tool descriptions

The description is a prompt, not documentation. The model reads it to decide whether to call the tool, mid-conversation, under latency pressure.
  • Say when, not what. “Use this whenever the customer asks where their order is” beats “Returns order status.”
  • Name the trigger phrases your customers actually use.
  • Describe each parameter in the same terms. orderId — “the order identifier, e.g. ORD-12345” — tells the model what shape to extract.
  • Keep the endpoint fast. A tool call happens between turns; a slow endpoint is dead air on a live phone call. Budget a few hundred milliseconds.

List tools

Returns every API tool in the workspace under data.

Update a tool

Send only the fields you are changing.
isActive: false is the safe way to take a tool out of service — assistants stop calling it without you having to edit each one.

Delete a tool

200 OK
Remove the tool _id from every assistant’s agent.tools first.

Attaching tools to an assistant

Mention the tool’s purpose in the system prompt as well as in the tool’s own description. Two nudges are more reliable than one.