iMessage with automatic SMS fallback
iMessage is never guaranteed for every recipient. With SMS fallback configured on your line, messages that can't deliver over iMessage go out as SMS instead — automatically, on the same request, with no extra code.
What happens when a recipient can't receive iMessage?
With SMS fallback configured on the sending line, the message is delivered as SMS instead, automatically. You don't detect the failure or retry manually — the routing layer decides per recipient and the status history records which channel actually delivered.
The same request either way
curl -X POST "https://api.sendimessage.com/v1/send-message" \-H "Content-Type: application/json" \-H "X-API-Key: $SENDIMESSAGE_API_KEY" \-H "X-API-Secret: $SENDIMESSAGE_API_SECRET" \-d '{ "number": "+14155550123", "content": "Your order shipped." }'
There is no channel parameter to set. The same request delivers over iMessage where supported and falls back to SMS where configured — your integration code doesn't change.
How fallback behaves
Fallback happens on the line's routing layer — your application doesn't detect a failure and retry over a different channel itself.
Every send is routed independently based on the recipient, not a static setting for the whole line.
The service actually used (iMessage or SMS) is recorded on the message and visible in the API and message history — never guessed.
Delivery events and replies use the same signed webhook shape regardless of which channel carried the message.
Is SMS fallback on by default?
It's configured per line during provisioning, not a hidden default. Tell us during onboarding whether you want SMS fallback enabled for a line, and it applies automatically once active.
FAQ
Do I need separate code for SMS vs iMessage?
No. You send one request to POST /send-message. Routing and fallback happen behind the API — your integration is identical either way.
How do I know which channel a message actually used?
The service field on the message record (and in message history) reports the channel that was actually used for that send — never assumed from the request.
Does fallback cost extra?
Fallback SMS counts as message activity on your line like any other send — see the pricing page for the full breakdown.
Add fallback to your lines
Read the full API reference, or start a pilot and configure fallback on a real managed line.