Fraud prevention
Catch disposable VOIP, simulated subscribers, and dead lines before they enter your funnel — or worse, your OTP queue.
Query the Home Location Register of any operator in 200+ countries. Get live reachability, line type, the carrier that owns the number today, and roaming state — to clean lists, score fraud, and route at least cost.

By the numbers
Each lookup hits the operator HLR in real time and returns a timestamped response your application can audit later.
Live HLR query, not a cached guess.
Every operator that publishes an HLR.
Resolves ported numbers to current owner.
Lookup-only mode keeps numbers off disk.
Real SS7 MAP queries (or Diameter, on 5G cores) against the destination operator's HLR. Not a stale third-party feed — the same path our own router uses to score every SMS we ship.
MSISDN in E.164. Batch endpoint accepts up to 10,000 numbers per call for list-hygiene runs.
Cached results return in under 50ms with the same operator and port-status fidelity.
Live HLR query routed via our SS7 / Diameter network to the destination operator's HLR. Real MAP, not a third-party data feed.
Returns the live operator (post-port), country, network status, roaming status, IMSI prefix, and reachability. All in one JSON.
Decide route, decide currency, skip dead numbers before they bill. The same lookup powers our own SMS routing internally.
MSISDN in E.164. Batch endpoint accepts up to 10,000 numbers per call for list-hygiene runs.
Cached results return in under 50ms with the same operator and port-status fidelity.
Live HLR query routed via our SS7 / Diameter network to the destination operator's HLR. Real MAP, not a third-party data feed.
Returns the live operator (post-port), country, network status, roaming status, IMSI prefix, and reachability. All in one JSON.
Decide route, decide currency, skip dead numbers before they bill. The same lookup powers our own SMS routing internally.
Why HLR before send
Catch disposable VOIP, simulated subscribers, and dead lines before they enter your funnel — or worse, your OTP queue.
Don't pay to send to unreachable handsets. An HLR query costs a fraction of the SMS that would have been spent and lost.
Discover the current operator (not the historical one) and pick the direct route. Ported numbers are routed correctly the first time.
Timestamped lookup results prove the number was validated and consented at the moment of opt-in — defensible under GDPR and PDPL.
Capabilities
Live SS7/SIGTRAN dip against the operator HLR. No stale data, no probabilistic guesses — the answer you get is the answer the network has right now.
Resolves ported numbers to the operator that actually serves them today. Crucial in markets where 25–40% of mobile numbers have been ported at least once.
Identify subscribers currently roaming outside their home network. Useful for fraud scoring, roaming alerts, and avoiding international surcharges.
Submit lists of up to a million MSISDNs per request. Results stream back as NDJSON or land in your S3 bucket as Parquet — ready for the warehouse.
Per-account TTL from 0 (always live) to 30 days. Repeat lookups within the window are served from edge cache, billed at the cache rate.
Lookup-only mode returns the answer and forgets the question. No MSISDN on disk, no logs containing customer numbers, GDPR right-to-erasure by design.
Batch lookup
Submit the entire list; we chunk it into calls of 10,000 and stream the results back as NDJSON, so you can pipe straight into your data warehouse.
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";
const sms = new SMSSMSApi(
new Configuration({
basePath: "https://api.broadnet.me",
accessToken: process.env.BROADNET_TOKEN!,
}),
);
// HLR / MNP lookup before sending: POST /sms/lookup
for (const destinationNumber of await readNumbers("./list.csv")) {
const res = await sms.smsLookupPost({ destinationNumber });
writeToWarehouse(destinationNumber, res.data);
}Integrations
OpenAPI 3.1, Bearer-token auth, retries with jitter.
Inline HLR dip on every MO/MT bind — no app changes.
@broadnet/cpaas-sdk for Node.js; generate a client for any other language from the OpenAPI 3.1 spec.
Validate a column of numbers without writing any code.
Pricing
Volume discounts start at 100K lookups a month. Cached hits are billed at a fraction of the live rate. No setup fees, no minimums, billed in USD, EUR, or AED — rates shown are indicative.
Compliance
MENA, EU, UK — different rules, one shared need: show that you checked the number was live, and when. Every lookup returns a timestamped result you can file as the audit artifact.
Lookup-only mode returns the answer and discards the number. EU traffic is isolated to EU storage; right-to-erasure is exposed via API.
Every lookup returns a timestamped result you can attach to the user record as proof of validation at the moment of opt-in.
TDRA, CST, NTRA and other MENA regulators push operators and senders toward clean, verified number data. An HLR lookup is the auditable hop that backs it up.
Run on the same infrastructure as our A2P SMS platform — ISO 27001, ISO 9001, ISO 22301. Tamper-evident logs, 7-year retention available.
We run live SS7 MAP and Diameter queries against the destination operator's actual HLR — not a periodic MNP database snapshot from a vendor. That means a number ported yesterday returns its new operator today, not next week. Latency is higher (350ms vs 20ms cached) but the answer is authoritative.
MCC (country code), MNC (network code), original operator, current operator (after porting), country name, network type (GSM/CDMA), roaming country if applicable, IMSI prefix, reachability status (active/dormant/disconnected), and a confidence score. All in one JSON response under 1KB.
Per lookup, with significant cache discounts. Standard tier is $0.005 per live MAP query and $0.0008 per cache hit. At 5M+ lookups/month enterprise rates drop to $0.0028 live and $0.0004 cached. Batch endpoint (up to 10K numbers per call) doesn't bill differently — same per-lookup pricing applies.
Default cache TTL is 30 days for active numbers and 7 days for unreachable. Bypass on a per-request basis with cache: false in the body, or shorten the TTL per account in settings. Cache is per-account-isolated; you never see another tenant's cached data.
Every SMS, OTP, and WhatsApp submit can pre-check HLR inline (validate: true on the send request). Dead numbers return an immediate API error instead of being billed and silently dropped. Many customers also run nightly batch lookups against their CRM to scrub the list before campaign send.
Yes — every lookup returns both the original operator (from the MSISDN prefix) and the current operator (from the live HLR). Comparing the two is a one-line MNP check. We don't charge extra for the MNP information; it's part of the standard response.
API availability is covered by the 99.99% platform SLA, with p99 < 350ms for live queries and p50 < 50ms for cache hits. If monthly uptime falls short, enterprise contracts earn a service credit against the monthly fee (10% below 99.99%, 25% below 99.0%, 50% below 95.0%). Multi-region active-active — if a region degrades, traffic re-routes within 800ms.
Coverage is 200+ countries via direct SS7 interconnects and partner relays. A handful of markets (typically restrictive regulatory regimes) only return MCC/MNC from prefix data, not live HLR. Those return a degraded: true flag in the response so your logic can fall back appropriately. The full coverage matrix is published in the dashboard.
Question not here? Ask our engineering team
Pairs well with
The reference behind the lookup: MNP, routing numbers, All-Call-Query and HLR dips for least-cost routing.
Once the number is validated, send the message itself through 1,000+ direct operator interconnects.
Multi-channel one-time passwords with HLR pre-validation built in to suppress fraud.
If you're a mobile operator, our firewall uses the same HLR intelligence to block grey routes at line rate.

No grey routes: a direct operator bind wherever one is commercially available, otherwise a labelled partner-managed route. One API to every channel, on a network built since 2003.
Request test access and we reply within one business day. Validate a sample batch, then scrub your lists in production once your account is approved.
Resources
HLR Lookup datasheet
Go deeper on the concepts behind this product.
Also from BroadNet
MobileValidatePrivate preview
Need a number's line type, or the messaging apps it can receive on, before you send? MobileValidate, a BroadNet brand in private preview, checks carrier and line type, apps such as Telegram, Viber and RCS, and e-mail mailboxes in one API request.