Usage & limits
Usage & limits
Check your usage
GET /api/v1/usage returns activity analytics for your account over a selected
window — headline metrics with per-day spark series and deltas, a daily activity
series, voice-call duration stats, your most active numbers, and fixed-window
breakdown totals. Choose the window with days (7, 30, or 90; defaults to 30).
deltaPct is null when the previous equal window had no activity (for example, an
account younger than the selected window) — there’s no baseline to compare against.
currentPeriod is independent of the days window: it’s a monthly cycle anchored to
your account’s creation date (a stand-in until billing and pricing are defined). Each
number’s usage — plus an all aggregate — is split by direction (outbound/inbound) and
geography (domestic/international, by country calling code relative to the Dial number).
Limits to know
- Free accounts — an account that has never added credit and never subscribed is capped at 5 minutes per call and 2 concurrent calls, inbound and outbound combined — an outbound call over the concurrency limit is rejected with
429(call_limit_reached), an inbound one is declined. AmaxCallDurationSecondsyou send explicitly above the 5-minute ceiling returns400; one inherited from the number or account is clamped to it. Both limits lift permanently on your first top-up or subscription, and their current values are onlimitsinGET /api/v1/account. See Free accounts. - iMessage sending — each iMessage number can start up to 50 new conversations a day, and sustained volume is capped above that. See iMessage sending limits.
- Event waits —
POST /api/v1/events/waitaccepts atimeoutof 1–60 seconds. To wait longer, loop the request or keep a live stream open. - History lists —
GET /api/v1/messagesandGET /api/v1/callsreturn up to the 100 most recent records, newest first. Use thesinceanddirectionfilters on messages to narrow results. - Phone number format —
toandfromnumbers must be E.164 (e.g.+14155550123).
Treat a wait 408 as “try again,” not an error. Reads are safe to retry, but writes aren’t idempotent — retrying a failed POST can send a duplicate message or place a duplicate call, so confirm before re-sending.
iMessage sending limits
iMessage carries send limits that SMS doesn’t, to keep lines in good standing. SMS and voice numbers are unaffected.
New conversations — 50 per number per day. A new conversation is the first message a number sends to a recipient it has never messaged before; replies within a conversation that already exists don’t count. The allowance is per iMessage number, so each number you hold gets its own and a second number doesn’t inherit the first one’s usage.
Past the cap, sends are rejected with 429 (rate_limited) until the window resets. Retrying inside the same window fails the same way — wait for the reset, or send from a different iMessage number.
Sustained volume is capped separately, above the per-number level. If you’re planning a high-volume iMessage workload, talk to us with your expected daily volume before you build against it, rather than sizing your integration against an assumed ceiling.
New contacts who haven’t replied yet
Separate from the daily caps, the iMessage network limits how many messages you can send to a recipient who has never replied to your number. Past that, sends are rejected with 429 (rate_limited); the limit lifts as soon as they reply.
This is an anti-spam protection, not a Dial quota, so there’s no way to raise it — and it’s why an opening message should invite a reply rather than start a one-way sequence. Treat this 429 as “this recipient hasn’t opted in yet,” not as a transient failure to retry.