NaaS (Numbers & Network as a Service) is the part of Orbit that delivers numbering and cellular connectivity as a self-serve product. It covers phone numbers, number lookup, and data-only eSIM / IoT cellular plans. You browse a catalog, activate a SIM over the air with a GSMA pairing code, set per-SIM data limits, and read a fleet-wide rollup, all from the same account that runs your voice and messaging. Every cellular data plan Orbit sells carries data only, never voice or text on the bearer. This guide walks each stage against the shipped API surface.
1. Browse the plan catalog
The catalog distinguishes two things up front: SIM form factor (esim or iot-sim) and metering model. A plan meters either pay-as-you-go, where each SIM accrues usage independently at a published per-megabyte rate, or pooled, where every active SIM contributes a fixed monthly allowance to a shared bucket the whole fleet draws from. This is the Twilio Super SIM model. Pooled plans carry a per-SIM monthly allowance; usage-based plans meter each SIM on its own.
Two simple filters keep the evaluation honest:
GET /numbers/connectivity/plans?type=esimnarrows the catalog to a form factor. Pickesimfor a wallet-form-factor module, oriot-simfor an embedded/M2M module.GET /numbers/connectivity/plans?country=DEnarrows it to a country, so you check coverage before you commit a device.
You can also price the whole fleet before placing a single SIM order. GET /numbers/connectivity/plans/:id/cost-estimate?megabytes=2500&country=DE returns the estimated whole cents of usage plus the monthly platform fee, and flags whether the plan covers the country you passed. Coverage and cost stay upfront decisions, not after-the-fact surprises.
2. Provision an eSIM over the air, then manage its lifecycle
Once you pick a plan, POST /numbers/connectivity/sims orders a SIM against it, with an optional ICCID, label, and fleet assignment in the same call. eSIM provisioning runs over the air. Orbit issues a GSMA-standard activation code (a SGP.22 LPA pairing code, the thing an eSIM-capable device scans as a QR code) against the SIM's ICCID via POST /numbers/connectivity/sims/:iccid/esim/activation, and you can fetch or re-issue that code whenever you re-certify a device. There is no card to post, no tray swap, and no on-device profile transfer to drive by hand.
After the profile lands, the full lifecycle is reachable over the API:
POST .../sims/:iccid/activatemovesordered → active(orsuspended → activevia/resume)POST .../sims/:iccid/suspendfreezes a SIM without terminating itPOST .../sims/:iccid/resumebrings a suspended SIM backPOST .../sims/:iccid/terminatecloses it for good (terminal)
The same registry is enumerated with GET /numbers/connectivity/sims?state=active&planId=<plans>, so a dashboard page or a nightly audit pages through only the states it cares about.
3. Control quota, per SIM and per fleet
Usage is recorded per data session with POST /numbers/connectivity/sims/:iccid/usage, and read back, with a trailing list of recent sessions, from GET /numbers/connectivity/sims/:iccid/usage. Two quota levers separate a single misbehaving device from a whole-fleet problem:
- Per-SIM data limit.
PATCH /numbers/connectivity/sims/:iccid/quota(body{ dataLimitBytes }) sets a hard cap on one SIM. A sensor that starts misbehaving, or a tracker that streams at weekend volumes, gets capped from the console or API instead of a spreadsheet audit later. - Fleet rollup.
GET /numbers/connectivity/fleetsreturns every fleet's aggregate usage, so a deployment of trackers or shelf-edge terminals reads as one budget line instead of forty individual line items.
Two optional controls suit more specialized fleets. PUT /numbers/connectivity/sims/:iccid/authorized-imeis arms a device lock so the SIM only attaches to a known device. PUT /numbers/connectivity/fleets/:fleetId/network-access restricts which countries or carriers a fleet's SIMs may attach to. Both run against the same data-only catalog.
4. The honesty contract: data only, never voice or text
Every plan in the catalog pins voice: false and sms: false. The API re-checks the catalog fail-close before serving it, so a plan that smuggled in a voice-capable flag would return an error instead of quietly shipping a cellular bearer for a voice call. That removes a whole class of surprise bills and a class of regulatory exposure. An IoT deployment should not need a voice stack or an SMS sender to ship, and the cellular bearer here genuinely has neither. Voice and SMS on Orbit run through the platform's own communication channels: phone numbers on the telephony stack, WhatsApp and SMS on the messaging stack. The eSIM / IoT catalog is never one of them.
There is a compliance angle too. When a device only ever does data, there is no inbound or outbound voice-jurisdiction question to answer on the bearer itself. Any M2M-style control-command plain-text the fleet uses rides Orbit's normal messaging pillar, not a cellular SMS wire.
5. Where the capability lives in the platform
The eSIM / IoT capability is owned by the NaaS pillar (Numbers & Network as a Service), which also covers phone numbers, number lookup, and porting. The catalog cross-references it from the pillar page, and the NaaS product page carries the machine-readable Product schema pointing at the same capability set. For the wider architecture a deployment like this plugs into (one API, an orchestration layer, a channel/network layer, and an event layer), see How CPaaS works. Cost and coverage are evaluated up front through the plan catalog and the cost-estimate endpoint, and usage metering and billing live behind the same pay-as-you-go Orbit account.
- Endpoints, list-ready:
GET /numbers/connectivity/plans,GET /numbers/connectivity/plans/:id,GET /numbers/connectivity/plans/:id/cost-estimate,POST /numbers/connectivity/sims,GET /numbers/connectivity/sims. - Lifecycle:
.../activate,.../suspend,.../resume,.../terminate,.../esim/activation. - Usage and quota:
.../usage(record and read),PATCH .../quota,GET /numbers/connectivity/fleets.
Frequently asked questions
What does an IoT data plan from Orbit actually include?
A data-only cellular plan, natively metered. It is either pay-as-you-go (a per-megabyte rate) or pooled (a fixed per-SIM monthly allowance feeding a shared bucket the whole fleet draws from). Coverage is filterable per country before you commit devices, and a pure cost-estimate endpoint returns an estimated whole-cents figure plus the monthly platform fee for a given volume of megabytes.
Do the eSIM / IoT plans carry voice or SMS?
No. Every plan pins voice: false and sms: false, and the catalog rejects a plan that ever smuggled a voice flag in before it would ship it. Voice and messaging run on Orbit's telephony and messaging stacks. The eSIM / IoT catalog is data-only by contract, not by custom configuration.
How does an eSIM get on a device without a physical card?
You scan a GSMA-standard activation code, an SGP.22 LPA pairing code, that Orbit issues against the SIM's ICCID over the air. The device downloads the profile by itself. You can re-fetch or re-issue the activation code any time, per device.
How does a fleet of devices stay within budget as it grows?
Two levers. A per-SIM hard data cap set with PATCH .../sims/:iccid/quota, and a per-fleet rollup returned by GET /numbers/connectivity/fleets that reads the whole fleet as one usage line. A device lock (authorized_imeis) and a per-fleet Network Access Profile (which countries or carriers may attach) are available when the drivers get more specialized.
Where does this fit in the platform overall?
Under NaaS, the connectivity-and-numbering pillar alongside phone numbers, number lookup, and porting. The pillar page carries the Product schema for the capability set. How CPaaS works explains how one API shape supports this entire stack.
Published 30 August 2026.