PATCH https://api.sulus.ai/tool/{id} — updates specific fields on an existing tool directly. Include only the fields you want to change; the rest of the tool's configuration remains intact.
curl -X PATCH https://api.sulus.ai/tool/{id} \
-H "Authorization: Bearer $SULUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"type": "request-start",
"content": "Hold on a moment while I look that up.",
"blocking": true
}
]
}'
A successful request returns 200 with the updated Tool object.
Tool Messages
You can configure messages spoken at different stages of a tool call:
| Message Type | Trigger |
|---|
request-start | Spoken when the tool call starts (not triggered for async tools). Defaults to a filler phrase like "Hold on a sec" if not provided. |
request-complete | Spoken when the tool call completes. If not provided, the model is asked to generate a response. |
request-failed | Spoken when the tool call fails (not triggered for async tools). If not provided, the model is asked to generate a response. |
Each message supports content (the text spoken), blocking (boolean, default false — if true, the tool call only fires after the message is spoken), conditions (an optional array of conditions based on tool call arguments that must be met for the message to trigger), and contents (a multilingual alternative to content, one entry per language, which overrides content if provided).
Attaching a Tool to an Assistant
Updating the tool itself (above) is separate from attaching an existing tool to a specific assistant. To do that, update the assistant's model.toolIds field instead:
curl --location --request PATCH 'https://api.sulus.ai/assistant/ASSISTANT_ID' \
--header 'Authorization: Bearer $SULUS_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": {
"provider": "openai",
"model": "gpt-4o",
"toolIds": ["your-tool-id-here"]
}
}'