iMessage infrastructure
for developers
Programmatic send and receive. Real-time webhooks. Typing indicators. Multi-line routing. One API.
Features
Everything you need to build on iMessage
Send & Receive API
REST API for programmatic iMessage with delivery status tracking, read receipts, and error handling.
Real-time Webhooks
Instant notifications for incoming messages, delivery receipts, and failures. Signed payloads with retry logic.
Typing Indicators
Bidirectional typing bubbles. Your users see the three-dot indicator, just like a real iMessage conversation.
Multi-line Routing
Route messages across multiple phone lines with priority rules, fallback logic, and load balancing.
Contact Management
Organize contacts with tags, team assignments, and full conversation history. Import and export via CSV.
Live Message Stream
Server-Sent Events for real-time message delivery. No polling. Sub-second latency from phone to your app.
How it works
Up and running in minutes
Connect a phone line
Plug an iPhone into your infrastructure. Our agent manages the device lifecycle, jailbreak state, and message relay automatically.
Configure webhooks
Set up webhook endpoints to receive real-time notifications for incoming messages, delivery status changes, and typing indicators.
Send via API
A single POST request sends an iMessage. Track delivery with webhooks or poll the status endpoint. It's that simple.
Developer experience
Built for developers who ship
Clean REST API. Predictable responses. Copy-paste examples in your language of choice.
$ curl -X POST \
app.urelay.ai/api/v1/messages/send \
-H "X-API-Key: ur_live_..." \
-H "X-API-Secret: ..." \
-d '{"to":"+1234567890","text":"Hello!"}' import requests
resp = requests.post(
"https://app.urelay.ai/api/v1/messages/send",
headers={
"X-API-Key": key,
"X-API-Secret": secret,
},
json={
"to": "+1234567890",
"text": "Hello!",
},
) const res = await fetch(
"https://app.urelay.ai/api/v1/messages/send",
{
method: "POST",
headers: {
"X-API-Key": key,
"X-API-Secret": secret,
},
body: JSON.stringify({
to: "+1234567890",
text: "Hello!",
}),
}
); Why urelay
Infrastructure you control
Unlike hosted providers, urelay gives you full ownership of your messaging infrastructure. No per-message fees. No vendor lock-in.
| µrelay | Sendblue | Linq | |
|---|---|---|---|
| Per-message fees | None | Per message | Per message |
| Infrastructure ownership | You own it | Hosted | Hosted |
| Typing indicators | Bidirectional | Limited | Yes |
| Real-time streaming | SSE + Redis pub/sub | Webhooks only | Webhooks only |
| Delivery latency | <2 seconds | ~5 seconds | <120ms * |
| Multi-tenant platform | Built-in | No | Enterprise only |
* Linq's latency claim is for their hosted infrastructure. urelay latency is measured end-to-end from API call to recipient delivery.
Pricing
Simple, predictable pricing
No per-message fees. No surprise charges. Pay for lines, not messages.
Perfect for testing and development.
- 1 phone line
- 50 new contacts per day
- Unlimited messages
- REST API + Webhooks
- Community support
For teams that need scale and support.
- Unlimited phone lines
- Custom routing rules
- Dedicated support + SLA
- Multi-tenant white-label
- Managed infrastructure option