PUThttps://core-api.heysadie.ai/assistants/{id}/tools/{toolId}/steps/{stepId}/override
id toolId stepId action additional_rules wait_for_response _remove success data message metadata timestamp version path error code details fieldSet step instruction override
Override a single step in a tool's instruction flow **for a specific assistant**. This allows you to customize how a shared tool behaves for one assistant, without modifying the tool itself (which would affect all other assistants using it). ### How it works Each step in a tool's `instruction.steps` array can have a `step_id` field — a stable, internal identifier that never appears in the prompt. You use that `step_id` to target which step to override. ### What you can override per step | Field | Type | Description | |-------|------|-------------| | `action` | string | Replace the step's action text | | `additional_rules` | string[] | Replace the step's additional rules | | `wait_for_response` | boolean | Change whether the assistant waits for a caller response | Only include the fields you want to change. Omitted fields keep the tool's default value. ### Removing a step entirely To remove a step from this assistant's flow (so it is skipped entirely), send: ```json { "_remove": true } ``` ### Requirements - The **assistant** must belong to your tenant. - The **tool** must belong to your tenant (or be a global tool). - The **tool must be linked** to the assistant. - The **step_id** must exist in the tool's `instruction.steps` array. ### Example If the tool has a step with `"step_id": "collect_email"`, you can override it for one assistant: ``` PUT /assistants/{id}/tools/{toolId}/steps/collect_email/override { "action": "Just confirm the email already on file.", "additional_rules": ["Skip if email is already confirmed."] } ``` Other assistants using the same tool will still see the original step.
Try it in the API ExplorerExample request
curl -X PUT "https://core-api.heysadie.ai/assistants/ASSISTANT_ID/tools/TOOL_ID/steps/STEP_ID/override" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "string",
"additional_rules": [
"string"
],
"wait_for_response": true
}'Authentication
Authenticate with an API key in the Authorization header using the ApiKey scheme — see Authentication for how keys work and where to get them.
AuthorizationstringrequiredAPI key in the ApiKey scheme: ApiKey YOUR_API_KEY. Tenant keys authorize their own tenant; organization keys can act on any tenant in the organization.
X-Tenant-Idstring (uuid)optionalRequired when authenticating with an organization key — selects the tenant the request acts on. Omit with tenant keys.
Request
Path parameters
idstringrequiredThe resource's UUID.
toolIdstringrequiredUUID of the tool.
stepIdstringrequiredUUID of the tool step.
Body application/json · required
actionstringoptionalReplacement action text for this step. If omitted, the original action is kept.
additional_rulesstring[]optionalReplacement additional rules for this step. If omitted, the original rules are kept.
wait_for_responsebooleanoptionalWhether the assistant should wait for a caller response at this step. If omitted, the original value is kept.
_removebooleanoptionalSet to true to remove this step entirely from the instruction flow for this assistant.
Responses
successbooleanrequireddataobjectoptionalShow 1 child properties
messagestringrequiredmetadataobjectoptionalShow 3 child properties
timestampstringrequiredversionstringrequiredpathstringoptional400
successbooleanrequirederrorobjectoptionalShow 3 child properties
codeenumrequired"VALIDATION_ERROR"messagestringrequireddetailsobject[]optionalShow 2 item properties
fieldstringrequiredmessagestringrequiredmetadataobjectoptionalShow 3 child properties
timestampstringrequiredversionstringrequiredpathstringoptional401
successbooleanrequirederrorobjectoptionalShow 2 child properties
codeenumrequired"UNAUTHORIZED"messagestringrequiredmetadataobjectoptionalShow 3 child properties
timestampstringrequiredversionstringrequiredpathstringoptional403
successbooleanrequirederrorobjectoptionalShow 2 child properties
codeenumrequired"FORBIDDEN"messagestringrequiredmetadataobjectoptionalShow 3 child properties
timestampstringrequiredversionstringrequiredpathstringoptional404
successbooleanrequirederrorobjectoptionalShow 2 child properties
codeenumrequired"RESOURCE_NOT_FOUND"messagestringrequiredmetadataobjectoptionalShow 3 child properties
timestampstringrequiredversionstringrequiredpathstringoptional500
successbooleanrequirederrorobjectoptionalShow 2 child properties
codeenumrequired"INTERNAL_SERVER_ERROR"messagestringrequiredmetadataobjectoptionalShow 3 child properties
timestampstringrequiredversionstringrequiredpathstringoptional