Network signals before you send
A message costs money to send. A message delivered to a SIM that was swapped yesterday, sent to a handset that just moved countries, or accepted by a number whose registered owner no longer matches your customer costs more — in account takeovers, in compliance exposure, and in spend you cannot recover. Orbit’s Network APIs give you the operator’s own answer to “is this number still the customer I think it is?” before you commit anything. These are silent, no-OTP signals: the mobile network asserts facts about a subscriber without sending the subscriber a message, and without exposing the carrier’s underlying PII. You get a verdict — swapped or not, verified or not, matched or not — never the carrier’s record. This guide walks the canonical task shapes: gating an outbound campaign, scoring a login, replacing an SMS OTP on a known device, matching KYC attributes at onboarding, checking operator coverage before you lean on it, and deciding when Quality-on-Demand is worth a session. Per-endpoint schemas are in the Network APIs reference and are not repeated here.These signals are advisory inputs to your own controls, never a replacement for them. Tenants own their consent, KYC, and compliance posture; Orbit is the conduit that gets the operator’s verdict to your decision point. See Consent management and Country compliance requirements.
Inventory: one line per signal
All endpoints live under/api/v1/numbers/network-apis. Phone numbers are E.164; every request carries your X-API-Key.
Task walkthroughs
Gate an outbound campaign on SIM-swap and roaming
The cheapest place to catch a bad number is the campaign orchestration code that already validates recipients. Screen before you send — not after the delivery receipt arrives.1
Check for a recent SIM swap
swapped: true means the SIM changed within the last 240 hours. For a high-value re-engagement campaign, that recipient moves to your review queue.2
Check roaming on recipients who should be home
roaming: true on a domestic-only customer base corroborates the swap signal; either one alone rarely decides.3
Apply your own policy
Your campaign code applies the verdicts to your thresholds. Score-affected recipients get held or refused; the screen itself never sends, routes, or blocks anything — outbound exits only through the normal send path.
Fuse risk:score into a login or checkout flow
Every signal above answers one narrow question.risk:score answers the whole one: given everything the operator can assert plus everything you already hold, is this interaction safe? Call it at the moments that create liability — login, signup, checkout, payout — not just at OTP send.
allow proceeds, review triggers your own step-up (an existing factor, a manual queue), deny refuses the session. Unavailable signals are listed in signals_unavailable and contribute nothing — a partial verdict never reads as a clean one, and the request never fails because one leg was unconfigured. Tune weights and thresholds per request when one surface (checkout) needs a stricter posture than another (login).
Replace an SMS OTP with Silent Auth on a known device
An SMS OTP costs a message, leaks through SS7-class interception, and asks the user to transcribe a code. Number Verification (Silent Auth) asks the operator instead: the device’s data connection itself proves it holds the number. Use it for the known-customer step-ups where you currently send an OTP; keep SMS OTP as the fallback for devices where the network assertion is unavailable (Wi-Fi-only contexts, unconfigured operators).devicePhoneNumberVerified: true is the operator’s confirmation; anything that is not an explicit network-verified match reads false — the check fails closed. Fall back to your normal OTP path on false. The full Verify lifecycle for the fallback route is in the verification lifecycle concept and the Verify fallback chains guide.
KYC-match users at onboarding
KYC Match compares the identity attributes a user types into your onboarding form against the operator’s subscriber record and returns a per-attribute verdict —"true", "false", or "not_available" for each attribute you submitted. The operator’s underlying PII is never returned and never stored on your side.
nameMatch: "false" on an onboarding that claims the number’s owner is the applicant is a strong signal to step up — request a document in your own flow. Your consent basis for consulting the operator’s record is tenant-owned: pair this with your existing KYC disclosure and consent capture (see Consent management).
Inspect operator status before leaning on coverage
Every Network API fails closed when no GSMA/CAMARA operator is configured:503 SERVICE_UNAVAILABLE, never a fabricated identity result. Probe the surface at integration time and on a schedule:
{ "enabled": false } means route around the surface: fall back to OTP for silent-auth steps, to your own heuristics for risk, and queue KYC-match steps for manual review. An enabled: true is deployment-level, not per-country — individual subscriber lookups still depend on whether the subscriber’s operator participates in the signal you asked for. Treat signals_unavailable on risk:score as the per-request view of the same boundary.
When QoD matters
Quality-on-Demand allocates a programmable QoS bearer for a device’s data path — latency-bound applications are the canonical user. If you run emergency voice, field telehealth, or any session where a congested cell ruins the call, a QoD session asks the operator for a prioritized bearer for the duration of that session.Coverage and fail-soft behavior
Two questions decide how much of this surface serves a given number:- Is a GSMA/CAMARA operator configured for the deployment at all?
GET /statusanswers this. Onfalse, every endpoint returns503and your integration must route around the whole surface. - Does the subscriber’s operator answer this specific signal? Within an enabled deployment, coverage varies per operator and per signal.
risk:scoresurfaces this per request insignals_unavailable; the individual endpoints fail closed (SIM Swapswapped: falseis only meaningful against a200— a503or422means “no answer”, not “no swap”).
risk:score, manual review instead of KYC-match. Never treat SERVICE_UNAVAILABLE as a clean result.
Tenant-raised controls
Concretely:- Consent. Consulting the operator’s record about a subscriber is a processing act your privacy notice and consent capture must cover. Pair Silent Auth, KYC Match, and risk scoring with your existing consent flows.
- KYC programs. KYC Match returns per-attribute verdicts; whether a
"false"verdict refuses onboarding, steps up to document review, or merely informs an agent is your program’s call. - Advisory scoring.
risk:scoreand Scam Signal never touch a message, session, or charge. Thedecisionfield is a suggested action against thresholds you can override per request — your own policy applies the verdict.
What’s next
- Network APIs reference — every endpoint’s parameters, response schema, and error contract.
- Verification lifecycle concept — how OTP sessions behave when you fall back from silent signals.
- Verify fallback chains guide — ordered channel chains when Silent Auth is one leg of a broader verification posture.
- SMS-pumping protection guide — the complementary fraud screen for the spend side of the send.
- Consent management and Country compliance requirements — the tenant-owned controls these signals feed into.