Skip to main content
POST
Create a tool

Authorizations

Authorization
string
header
required

API key from waterr.ai/settings?tab=api-keys. Send as Authorization: Bearer wai_<your_key>.

Body

application/json
name
string
required

Function name the LLM calls. Letters, digits, _, -. Max 64. Unique per account.

Maximum string length: 64
Pattern: ^[a-zA-Z0-9_-]{1,64}$
Example:

"lookup_account"

description
string
required

One-sentence prompt the LLM reads to decide when to call this tool.

Example:

"Fetch the participant's CRM record so you can reference their plan, MRR, and last contact date."

parameters_schema
object

JSON Schema for the arguments. Top-level type must be "object".

Example:
execution_mode
enum<string>
default:webhook

webhook — we POST the call to webhook_url. client — your frontend handles it.

Available options:
webhook,
client
Example:

"webhook"

webhook_url
string<uri>

HTTP(S) endpoint for tool calls. Required when execution_mode = "webhook".

Example:

"https://your-app.com/waterr/tools/lookup_account"

webhook_secret
string

HMAC-SHA256 secret. Signs every webhook request as X-Waterr-Signature: sha256=<hex>. Never returned after creation.

Example:

"whsec_8f2c9e7b5d4a3e1c2f5d8b6e9a4c7f1e3b6d8a2c5e7f9b1d4a6c8e2f5b7d9a3c"

timeout_ms
integer
default:10000

Webhook response timeout in ms. Range 1000–30000.

Required range: 1000 <= x <= 30000
Example:

8000

on_call
enum<string>
default:silent

What the persona does while the tool runs. See Conversational modes.

Available options:
generate_filler,
static_filler,
silent,
passthrough
Example:

"static_filler"

static_filler
string

Phrase to speak during the tool call. Required when on_call = "static_filler", forbidden otherwise.

Example:

"Sure, let me grab that for you."

on_resolve
enum<string>
default:generate_response

What to do with the result after the tool returns.

Available options:
generate_response,
response_in_result,
add_to_context,
fire_and_forget
Example:

"generate_response"

Response

Tool created.

data
object

A tool the LLM can call mid-meeting. Defined once on your account, attached to one or more scenarios.