HLR API Reference
Every HLR endpoint, grouped by what it does. Requests go through the gateway and are authenticated with your key id and secret — see Authentication.
Products
Lookups
Returns your lookups, newest first, filterable by category, status and date range.
Submits one number or a batch. A single number is looked up immediately and its `result` comes back on this response; a batch is queued, and the lookup is polled for results. It is charged per number as results arrive. Retry behaviour differs by shape. A BATCH is idempotent on the request: if a response is lost — a network drop, or a slow lookup that timed out — re-send the identical batch (while it is running, or within ~1 minute of it completing) and you get the SAME lookup back by its `jobId`, never a second charge. A replay returns the job (its id and status), NOT a fresh inline `result`: read the outcome — `result`, price and per-number status — from that job with `GET /v1/hlr/lookups/{lookupId}` and its `/results`. A SINGLE lookup is NOT deduplicated: every call performs a fresh, separately-billed lookup, by design. Do NOT blind-retry a single lookup to recover a dropped response — you would be charged a second time. If a single lookup's response is lost, find it with `GET /v1/hlr/lookups` (your recent lookups) rather than re-posting.
Returns a lookup's status, per-outcome counts and price. Poll this after submitting.
Returns the per-number results of a lookup, paginated. Use an export for large completed lookups.
Stops a lookup that is still queued or running; numbers not yet processed are not charged. Only a non-terminal lookup can be cancelled — once it is terminal (`completed`, `partially_completed`, `cancelled` or `failed`), the call returns 409 CONFLICT and nothing changes.
Exports
Starts building a downloadable file of a completed lookup's results. A build is a resource keyed by its lookup and format, so this is idempotent BY STATE: repeating it returns the existing build for that `(lookup, format)` instead of starting a second one — unlike submitting a BATCH lookup, whose retry-safety is a replay of the identical request within its replay window after a lost response. A SINGLE lookup is not deduplicated at all: each submission is a fresh, separately-billed lookup. This operation is safe to repeat: repeating it returns the existing state and performs no further action.
Returns whether the export is ready, with its size and checksum once it is. Fetch the file itself from this export's `/content`.
Returns the export file itself, as an attachment. Build it first, and check it is `ready` — an export still building answers 409.
Get a profile GET
Returns one eSIM profile: its status, and the activation code plus Apple one-tap link that install it. The activation code IS the QR payload — render it as a QR locally rather than expecting a hosted image. Treat it as a credential: it is never cached and never logged.
List products GET
Returns every lookup product available to you, each with the unit price that applies to your account.