PATCHhttps://core-api.heysadie.ai/assistants/{id}/sms-enabled
id smsEnabled success data featureFlags metadata timestamp version path error code message details fieldSet SMS enabled
Enable or disable the **SMS** channel for an assistant. - `smsEnabled`: `true` turns SMS on, `false` turns it off. The value is stored in the assistant's `feature_flags` JSON under the `sms_enabled` key; any other channel flags (e.g. a future WhatsApp toggle) are preserved. When SMS is disabled, the messaging service will not respond to inbound SMS for this assistant's number(s). No messaging prompt is required to toggle this. Enabling requires the assistant to have a linked **Twilio** phone number: the number is attached to the environment's Twilio Messaging Service before the flag is set (idempotent; moves the number if it belongs to another Messaging Service). Enabling fails with 400 (`NO_PHONE_NUMBER_LINKED` / `NON_TWILIO_PROVIDER`) and leaves the flag unchanged when no Twilio number is linked. Disabling only clears the flag — the number intentionally stays in the Messaging Service to avoid A2P campaign re-registration on re-enable.
Try it in the API ExplorerExample request
curl -X PATCH "https://core-api.heysadie.ai/assistants/ASSISTANT_ID/sms-enabled" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"smsEnabled": 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.
Body application/json · required
smsEnabledbooleanrequiredEnable (true) or disable (false) the SMS channel for this assistant. Stored under feature_flags.sms_enabled; other channel flags are preserved.
Responses
successbooleanrequireddataobjectoptionalShow 2 child properties
idstringrequiredfeatureFlagsmap<string, boolean>requiredmetadataobjectoptionalShow 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