Number Lookup
Look up any E.164 phone number to validate it and enrich it with carrier, line-type, portability, SIM-swap, roaming, and live-reachability intelligence. Orbit uses Devotel HLR as the primary source and Telnyx as a fallback. Lookup is a billable operation — see Billing below.Single Lookup (quick validation)
phone field must be valid E.164 (+ followed by 2–15 digits, the first non-zero).
Full Intelligence Lookup
+ as %2B (an unencoded + is also accepted for back-compat).
Response
Data Packages (Twilio Lookup v2 compatible)
Add afields= selector (comma-separated, or a JSON array) to request per-field intelligence packages — the same selector shape Twilio Lookup v2 uses, so migration scripts work unchanged.
422.
Available fields
Each entry in the response
dataPackages map carries a discriminated status:
call_forwarding is a derived, best-effort signal, not an operator-asserted
forwarding flag. It infers an active unconditional divert from the HLR
reachability dip Orbit already runs — a valid line reported as unreachable on its
home network is the classic proxy for calls forwarding elsewhere (a known
SIM-swap / account-takeover indicator). Treat it as a low-confidence input
(confidence: "low", derived: true), fuse it with other signals, and do not
use it as ground truth. It falls back to coming_soon when HLR returns no usable
reachability signal.Bulk Lookup
Validate up to 100 numbers in a single request.available: false with an explanatory message and an empty results array. The endpoint is rate-limited more tightly than single lookup (a 100-number batch checks for ~$1.00 of wallet headroom up front).
Configuration
Lookup resolves its upstream from two environment variables on the API service:
Set
DEVOTEL_HLR_API_KEY (and, if needed, DEVOTEL_HLR_API_URL) on the API service and restart it. Once the key is present, bulk lookup begins returning results and single lookup uses HLR as its primary source.
Billing
Each lookup that an upstream actually answers is charged to your wallet on thenumber_lookup channel (fallback 1¢/query; per-org overrides apply). Key rules:
- Single lookup is charged after the upstream returns. A request that falls through to local E.164 detection (no upstream call) is free.
- Bulk lookup pre-checks your balance for
N × unit priceand fails fast with402before fanning out, then charges per successful result. - A per-tenant daily cost cap (default $50/day) protects against runaway spend — exceeding it returns
429. - Sandbox requests (
testMode) are never billed.
402 INSUFFICIENT_BALANCE with balance_cents and cost_cents so you can prompt a top-up.