Voice & Messaging Pricing and Throughput
Orbit has one pricing model for every account: transparent, usage-based, pay-as-you-go. There are no Starter/Growth/Business/Enterprise plan tiers, no “contact sales” gate to see a number, and no forced migrations to a new model later. You pay the published per-unit rate for what you actually send, drawn from a prepaid credit balance. This guide answers the two questions that come up when you scope a build: what does it cost, and how fast can I send.Per-unit rates change as carrier and operator costs change, so this guide
does not hard-code prices. The live source of truth is the pricing page
and the public pricing API below — always price against those, not a number
copied into a doc.
How pricing works
Billing is prepaid. You fund a credit balance and each send draws it down at the published per-unit rate. Because there is no postpaid invoice, your spend is bounded by the balance you fund — there is no net-30 term, no carrier-passthrough overage, and no surprise statement at the end of the month.- No contracts, no lock-in. No multi-year commitment, no automatic renewal, and no early-termination fee. Stop sending and you stop paying.
- No monthly platform fee and no minimums. You are billed for usage only.
- Prepaid credit does not expire.
- Operator-level rates. Prices reflect the underlying carrier/operator cost for each destination rather than a flat retail markup.
What each channel is billed on
The billing unit differs by channel. This is the part people most often get wrong when comparing platforms, so it is worth being precise:
Other bring-your-own-credential channels (Instagram, Messenger, Telegram,
LINE, push, web chat) are not billed by Orbit either.
Where to find your rates
No bill shock
Because the model is prepaid, spend is bounded by design. On top of that floor you get a server-side spend cap that holds the line, real-time balance burn-down, and spend alerts, so you see spend as it happens rather than weeks later. Configure alerts under Dashboard → Billing.SMS segments — what you actually pay for
SMS is metered per segment, not per whole message. A carrier splits a message body into fixed-length segments and bills each one:- A GSM-7 (plain-text) body splits every 160 characters.
- A UCS-2 (unicode — emoji, many non-Latin scripts) body splits every 70 characters.
Throughput
Throughput on Orbit is governed by three independent, tenant-side controls. Each shapes your own send rate; none of them changes where traffic terminates. All limits apply uniformly to every account by default — there are no per-plan throughput tiers — and any of them can be raised for your organization on request.1. API rate limits (requests per minute)
Every endpoint has a per-minute request limit applied per API key, plus a global safety-net ceiling of 50 requests per second across all endpoints. Exceeding a limit returns429 Too Many Requests with the RATE_LIMITED
error code and a retry_after value. See the
Rate Limits guide for the full per-endpoint table and
retry patterns.
2. Per-messaging-service throughput cap (MPS)
A messaging service bundles your senders, opt-out handling, and inbound webhook. You can pin a maximum messages-per-second (MPS) rate on each messaging service so a burst never runs faster than you intend — the same knob Twilio, Sinch, and Bird expose on a messaging service.- Set it in Dashboard → Messaging → Services, or via the API on the service’s throughput setting. Valid range is 1–1000 MPS.
- Leaving it unset means unbounded (the default) — existing services are unaffected.
- A send that would exceed the cap in the current second returns
429 Too Many RequestswithRetry-After: 1. Wait one second and retry.
3. Per-number throughput cap (MPS)
You can also pin a per-second ceiling on an individual number, independent of the messaging-service cap. This contains blast radius: a runaway loop or a mis-scheduled blast can only saturate the one number it targets, not your whole pool.- Set it on the number under Dashboard → Numbers (or via
PUTon the number). Absent or0means no per-number cap. - Like the service cap, a send over the ceiling returns
429withRetry-After: 1.
Handling a 429
Whichever limit you hit, the handling is the same: honour theRetry-After /
retry_after value, back off, and retry. For sustained high volume, queue and
send in controlled batches, and subscribe to status webhooks instead of polling.
Requesting more throughput
The defaults above suit most integrations. If you need a higher sustained rate, raise your messaging-service or per-number cap yourself, and email support@devotel.io for a per-organization increase to the API rate limits. There is no plan to upgrade to — limits are raised with a per-organization override.FAQ
How much does an SMS or voice minute cost on Orbit?
How much does an SMS or voice minute cost on Orbit?
Rates are published per channel and per country on
orbit.devotel.io/pricing and returned by
GET /api/v1/public/pricing. They are usage-based, pay-as-you-go, and the same
for every account (before any negotiated per-organization rate). SMS is priced
per segment and voice per minute.Does Orbit charge per message or per SMS segment?
Does Orbit charge per message or per SMS segment?
Per segment. A GSM-7 body splits every 160 characters and a unicode (UCS-2)
body every 70, so a long or emoji-containing message costs more than one
segment. Quoting per segment matches how the carrier bills.
Are there plan tiers, contracts, or minimums?
Are there plan tiers, contracts, or minimums?
No. There is a single pay-as-you-go model with no plan tiers, no contract or
lock-in, no auto-renewal, no early-termination fee, no monthly platform fee,
and no minimums. Credit is prepaid and does not expire.
How many messages per second can I send?
How many messages per second can I send?
By default there is no per-message-per-second cap — throughput is bounded only
by the API request rate limits (per-endpoint per-minute plus a 50 req/sec
global ceiling). You can additionally pin a messages-per-second (MPS) cap on a
messaging service (1–1000) or on an individual number to throttle bursts.
Why did a send come back with 429 and Retry-After: 1?
Why did a send come back with 429 and Retry-After: 1?
You hit a messaging-service or per-number MPS cap for the current second. Wait
the one second indicated by
Retry-After and retry — the throttle resets every
second.Is WhatsApp billed by Orbit?
Is WhatsApp billed by Orbit?
No. Orbit is a WhatsApp Tech Provider, so Meta bills your WhatsApp Business
Account directly for conversations and Orbit’s WhatsApp features are free. See
WhatsApp Pricing.
How do I increase my throughput?
How do I increase my throughput?
Raise the MPS cap on your messaging service or number yourself. For a higher
API request rate limit, email support@devotel.io with the endpoints and
sustained rate you need — it is granted as a per-organization override, not a
plan upgrade.