HomeProductsNumber Lookup
Number LookupNew

Know your number
before you send.
In 42 milliseconds.

Validate phone numbers, detect carrier and type, check porting status and reachability — before spending a single credit on delivery.

99.2% accuracy
200+ networks
7 data points
~42ms response

99.2%

Accuracy

~42ms

Response time

200+

Networks

10+

Countries

7

Data points

99.9%

Uptime SLA

What you get

Seven data points.
One API call.

validboolean active
countrystring
carrierstring
line_typeenum
portedboolean
roamingboolean
reachableenum

Field

valid

boolean

Whether the number is a correctly formatted, dialable phone number.

// example response
"valid": true

Why lookup first?

Stop wasting credits
on bad numbers.

18%

of phone numbers in African DBs are invalid or inactive

Without validation, nearly 1 in 5 messages you send goes nowhere — wasting budget and distorting delivery stats.

~40%

cheaper to lookup than to send to an invalid number

A lookup costs a fraction of an SMS. Catching bad numbers upfront pays for itself on the very first campaign.

higher conversion when messaging active, reachable numbers only

Segmenting on reachability and line type before sending measurably improves campaign ROI.

Common use cases

Validate numbers at signup before sending an OTP

Clean your contact list before launching a bulk SMS campaign

Detect ported numbers to route to the correct carrier

Filter out landlines and VoIP before SMS dispatch

Check reachability before making outbound voice calls

Identify roaming users for targeted messaging

Cost comparison

Send 10,000 SMS without lookup$120.00

18% invalid = 1,800 wasted → $21.60 lost

Lookup 10,000 numbers first$3.00

Remove 1,800 invalids before sending

Send 8,200 valid numbers only$98.40

Save $21.60 — lookup pays for itself 7×

Developer experience

Single or bulk —
one clean API.

Lookup a single number in real time at signup, or submit up to 100 in a single bulk call for list cleaning. Same response shape either way.

01

GET /v1/lookup/{number} for single queries

02

POST /v1/lookup/bulk for batch list cleaning

03

Filter on valid, line_type, and reachable

import Sendexa from "sendexa";

const client = new Sendexa(process.env.SENDEXA_API_KEY);

// Single number lookup
const result = await client.lookup.number("+233 55 123 4567");

console.log(result);
// {
//   valid:     true,
//   country:   "Ghana",
//   carrier:   "MTN Ghana",
//   line_type: "mobile",
//   ported:    false,
//   roaming:   false,
//   reachable: "yes"
// }

// Bulk lookup — up to 100 numbers per call
const bulk = await client.lookup.bulk([
  "+233 55 123 4567",
  "+234 80 987 6543",
  "+254 71 555 0011",
]);

// Filter to valid, reachable mobiles only
const sendable = bulk.filter(
  (n) => n.valid && n.line_type === "mobile" && n.reachable === "yes"
);

Use cases

Smarter decisions,
cleaner data.

🔐

Fraud Prevention

  • Validate before OTP
  • Detect VoIP / throwaway
  • Flag suspicious patterns
  • Enrich KYC data
📣

Campaign Hygiene

  • Clean lists before send
  • Filter unreachable numbers
  • Segment by carrier
  • Remove landlines from SMS list
📋

Onboarding

  • Validate at signup
  • Format numbers to E.164
  • Detect country from number
  • Pre-fill country code
📞

Voice & Dialler

  • Screen before outbound call
  • Detect roaming users
  • Identify ported numbers
  • Optimise IVR routing
Start building today — it's free

Your first 500 lookups
are on us.

Sign up, get your API key, and run your first lookup in under 5 minutes. No credit card required.

No credit card required500 free lookups99.2% accuracyCancel anytime