Protocol Selection
Choose between iMessage, RCS, and SMS for message delivery.
The Linq API supports sending messages via iMessage, RCS, and SMS. You can let the API automatically select the best protocol or explicitly choose one. See the Create Chat API reference for the full specification.
Automatic selection (default)
Section titled “Automatic selection (default)”When preferred_service is omitted, the API uses the full fallback chain: iMessage → RCS → SMS.
Explicit protocol selection
Section titled “Explicit protocol selection”Use preferred_service inside the message object to control which protocol is used:
| Value | Behavior |
|---|---|
iMessage | iMessage only. No fallback — send fails if the recipient is unavailable on iMessage. |
RCS | RCS if supported, otherwise SMS. Never uses iMessage. |
SMS | RCS if supported, otherwise SMS. Never uses iMessage. |
preferred_servicevsservice:preferred_serviceis what you requested. Theservicefield on the response is what was actually used for delivery.
curl -X POST https://api.linqapp.com/api/partner/v3/chats \ -H "Authorization: Bearer $LINQ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "+12223334444", "to": ["+15556667777"], "message": { "preferred_service": "iMessage", "parts": [ { "type": "text", "value": "This will be sent via iMessage" } ] } }'const chat = await client.chats.create({ from: '+12223334444', to: ['+15556667777'], message: { preferred_service: 'iMessage', parts: [{ type: 'text', value: 'This will be sent via iMessage' }], },});chat = client.chats.create( from_="+12223334444", to=["+15556667777"], message={ "preferred_service": "iMessage", "parts": [{"type": "text", "value": "This will be sent via iMessage"}], },)Protocol capabilities
Section titled “Protocol capabilities”Not all features are available on every protocol:
| Feature | iMessage | RCS | SMS |
|---|---|---|---|
| Text messages | Yes | Yes | Yes |
| Images & video | Yes | Yes | MMS |
| Read receipts | Yes | Yes | No |
| Delivery receipts | Yes | Yes | No |
| Typing indicators | Yes | No | No |
| Reactions / tapbacks | Yes | Yes | No |
| Message effects | Yes | No | No |
| Group chats | Yes | Yes | MMS |
| Message threading | Yes | No | No |
| Rich link previews | Yes | Yes | No |
| Voice memos | Yes | Yes | No |
| File attachments (100MB) | Yes | Limited | No |
| Text decorations | Yes | No | No |
When to choose a protocol
Section titled “When to choose a protocol”- iMessage — When you need Apple-exclusive features like message effects or text decorations. Be aware: delivery fails if the recipient isn’t on iMessage.
- RCS — When you want rich messaging on Android (reactions, read receipts, threading) but still want SMS as a fallback.
- SMS — Equivalent to RCS in behavior: uses RCS if supported, otherwise SMS. Never iMessage.
- Omit — Best for maximum reach. The API picks the richest available protocol automatically.
Note: Use the capability check endpoints to verify recipient support before specifying
iMessage. See Capability Checks for details.