How to Send iMessage from an API in 2025
A developer's guide to programmatic iMessage delivery using LoopMessage + Callora, with automatic SMS fallback for non-Apple recipients.
The Problem
Apple doesn't offer an iMessage API. If you're building an app that needs to reach iPhone users where they actually read messages — the blue bubble — you're out of luck with native APIs.
SMS has 98% open rates, but iMessage has something SMS doesn't: read receipts, rich media, and the trust signal of a blue bubble. For missed-call text-backs, appointment reminders, and lead recovery flows, iMessage converts measurably better.
The Solution: LoopMessage + Callora
Callora wraps LoopMessage's iMessage infrastructure behind a single REST endpoint. You send one API call. Callora routes it:
channel: "imessage"— Strict iMessage via LoopMessage. Fails if recipient isn't on iMessage.channel: "auto"— Try iMessage first. If rejected, automatically falls back to SMS via Twilio. If iMessage fails asynchronously, SMS fallback fires via webhook.channel: "sms"— Direct SMS via Twilio. No iMessage attempt.
Quick Start (3 minutes)
# 1. Get a free API key (25 credits)
curl -X POST https://call.metis.gold/api/v1/keys/register \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com"}'
# 2. Send an iMessage (with auto SMS fallback)
curl -X POST https://call.metis.gold/api/v1/messages \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155551234",
"channel": "auto",
"body": "Hey! Your appointment is tomorrow at 2pm."
}'
# Response:
# { "id": "msg_x1y2z3", "channel": "auto",
# "resolved_channel": "imessage", "provider": "loopmessage",
# "status": "processing" }How the Fallback Works
When you use channel: "auto", Callora does two-stage fallback:
- Sync fallback: If LoopMessage immediately rejects (non-mobile number, no Apple ID), Callora sends SMS in the same request. You get back
resolved_channel: "sms". - Async fallback: If LoopMessage accepts but later reports delivery failure via webhook, Callora auto-sends SMS via Twilio and updates the message record.
Pricing
1 ANGEL credit per message (SMS or iMessage). Free tier includes 25 credits. See bundles →
Ready to try?
Get your free API key at /developers or read the full API reference.