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
urelay provisions a dedicated iMessage-enabled phone line for your account. We handle all the infrastructure so you can focus on building.
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 | Other Providers | |
|---|---|---|
| Per-message fees | None | Per message |
| Infrastructure ownership | You own it | Hosted (vendor-controlled) |
| Typing indicators | Bidirectional | Limited or none |
| Real-time streaming | SSE + Redis pub/sub | Webhooks only |
| Delivery latency | <2 seconds | 5-120 seconds |
| Multi-tenant platform | Built-in | Enterprise add-on or unavailable |
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