Check iMessage Availability (Round-Robin)
iMessage Availability
Check iMessage Availability (Round-Robin)
Check if a phone or email has iMessage, using round-robin across your lines. REST endpoint in the Tuco AI iMessage API — bearer-token auth, JSON.
POST
Check iMessage Availability (Round-Robin)
Overview
Round-robin iMessage availability check across your workspace’s eligible lines. Returns whether any of the provided phone numbers or emails are registered on iMessage.Request
Array of phone numbers to check (checked first, in order).
Array of email addresses to check (checked after phones).
Response
Available
Not Available
Quota Exhausted (429)
Rate Limits
| Limit | Value |
|---|---|
| API rate limit | 200 req/min per workspace |
| Daily cap | 70 checks/day per line |
| Device gap | 3 seconds between checks on the same physical device |
Availability checks do not consume your daily send quota. Send limits and
availability limits are tracked separately in Redis.
Recommended Pattern: Send + Fallback Webhook
Instead of checking availability first, just send viaPOST /api/messages and
handle the message.fallback webhook to trigger your SMS or WhatsApp fallback.
Why this is better:
- No availability quota consumed (saves your 70/day/line cap)
- One API call instead of two
- Webhook-driven fallback is reliable and async
- Works even when availability quota is exhausted
Error Codes
| Code | When | Body |
|---|---|---|
| 400 | No phones or emails provided | { "available": false, "reason": "No phone or email addresses provided" } |
| 401 | Bad API key | { "error": "Unauthorized" } |
| 429 | API rate limit hit | { "error": "Rate limit exceeded" } |
| 429 | Daily cap exhausted | { "available": false, "reason": "Daily availability check quota exhausted" } |
| 500 | Server error | { "error": "Internal server error" } |