Guides
Bulk WhatsApp number check for Indian customer lists (+91)
Check an Indian list for WhatsApp: turn 0, 91, 091 and Hindi-digit cells into +91, keep 6–9 mobiles, get a free estimate, and follow DPDP Act and TRAI rules.
16 min read
Know before you send.
Check phone numbers and e-mail addresses before you message, call or approve them. One API request tells you whether a number is registered on messaging apps, what line type and carrier it has, and whether an address has a mailbox or an account. Every answer is yes, no or unknown, with the time we checked. You don't pay for unknowns.
Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.
Try the API without an account Just need a test key?

Developers
The console calls the live API from your browser with our public sandbox key. Pick a test number or e-mail and you get the real JSON, a plain-English verdict and the same call in seven languages. Sandbox calls are free and limited to 30 a minute.
To check your own numbers, create an account: 20 phone numbers and 10 e-mail addresses are checked for real, free.
Or paste this into a terminal:
curl https://api.mobilevalidate.com/v1/lookup -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" -H "Content-Type: application/json" -d '{"numbers":["+447700900001"],"checks":["whatsapp","telegram","carrier"]}'POST /v1/lookup
Public sandbox key · test values only · never billed
Sample response, captured in test mode
Phone number · GB
+44 7700 900001
whatsapp.registered
This number has a WhatsApp account.
Telegram
telegram.registered
This number has a Telegram account.
Carrier lookup
network.carrier
Mobile line on Test Carrier (GB). Line type tells you whether SMS can reach it.
3 of 3 conclusiveCost $0 · test mode is never billed
{
"object": "lookup",
"id": "lkp_0VWF4k0QQLs2yThfjlfW",
"status": "completed",
"livemode": false,
"created_at": "2026-09-25T14:25:28.937Z",
"results": [
{
"kind": "phone",
"input": "+447700900001",
"e164": "+447700900001",
"country": "GB",
"number_status": "valid",
"checks": {
"whatsapp.registered": {
"service": "whatsapp.registered",
"status": "completed",
"registered": true,
"attributes": null,
"confidence": "high",
"confidence_score": 0.99,
"checked_at": "2026-09-25T14:25:28.950Z",
"cached": false,
"age_seconds": 0,
"billed": false,
"reason": null,
"poll_after_ms": null
},
"telegram.registered": {
"service": "telegram.registered",
"status": "completed",
"registered": true,
"attributes": null,
"confidence": "high",
"confidence_score": 0.99,
"checked_at": "2026-09-25T14:25:28.950Z",
"cached": false,
"age_seconds": 0,
"billed": false,
"reason": null,
"poll_after_ms": null
},
"network.carrier": {
"service": "network.carrier",
"status": "completed",
"registered": true,
"attributes": {
"line_type": "mobile",
"carrier": "Test Carrier",
"country": "GB"
},
"confidence": "high",
"confidence_score": 0.99,
"checked_at": "2026-09-25T14:25:28.950Z",
"cached": false,
"age_seconds": 0,
"billed": false,
"reason": null,
"poll_after_ms": null
}
},
"whatsapp": {
"service": "whatsapp.registered",
"status": "completed",
"registered": true,
"confidence": "high",
"confidence_score": 0.99,
"checked_at": "2026-09-25T14:25:28.950Z",
"cached": false,
"age_seconds": 0,
"billed": false,
"reason": null,
"poll_after_ms": null
},
"test": true
}
],
"summary": {
"total": 1,
"registered": 1,
"not_registered": 0,
"unknown": 0,
"pending": 0,
"invalid": 0,
"suppressed": 0,
"by_service": {
"whatsapp.registered": {
"completed": 1,
"registered": 1,
"not_registered": 0,
"unknown": 0,
"pending": 0
},
"telegram.registered": {
"completed": 1,
"registered": 1,
"not_registered": 0,
"unknown": 0,
"pending": 0
},
"network.carrier": {
"completed": 1,
"registered": 1,
"not_registered": 0,
"unknown": 0,
"pending": 0
}
}
},
"billing": {
"billed_units": 0,
"cost": {
"amount": "0",
"currency": "USD"
},
"balance_after": {
"amount": "0",
"currency": "USD"
}
},
"next": null,
"request_id": "req_0VWF4k06NEVOB7ZR7HVR"
}curl https://api.mobilevalidate.com/v1/lookup \
-H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
-H "Content-Type: application/json" \
-d '{"numbers":["+447700900001"],"checks":["whatsapp","telegram","carrier"]}'What we check
Run any combination on the same phone number or e-mail address. Every answer is registered, not registered or unknown, with the time we checked.
Registration on messaging apps before you pick a channel.
Whether a number is linked to an account on a social network.
Account presence on major consumer platforms and marketplaces.
Line type, carrier, live network status, porting and reputation signals for routing and risk decisions.
Mailbox existence and account presence for e-mail addresses.
Combine up to 20 checks per lookup. Phone and e-mail checks run together, with one result per identifier and check.
One request, one answer per check
Phone, e-mail, messaging-app, account and network checks run side by side. Each one comes back as yes, no or unknown, so your code only handles three cases.


Why check first
Find invalid, duplicate, non-mobile and unreachable numbers before your SMS bill does, and route by the network a number is on today, even after it was ported.
Line type, messenger presence and, where enabled, spam reputation tell you which numbers deserve a second look.
See whether a number uses WhatsApp, Telegram, Viber, iMessage or RCS, and pick a channel that will deliver.
registered is true, false or null. null means unknown, never a guess, and every answer carries checked_at.
Phone and e-mail checks run together, with one result per identifier and check.
How it works
One request, every check in parallel, one answer per check. You pay only for the conclusive ones.
A phone number or an e-mail address, plus up to 20 checks.
Each check runs on its own, at the same time as the others.
Yes, no or unknown, with the time we checked.
Unknown, timeouts, invalid input and duplicates are never charged.
Realtime API for single decisions, bulk jobs for lists, and an MCP server for AI agents — same services, same answers.
POST /v1/lookup takes up to 100 numbers and e-mails with the checks you want, for example ["whatsapp", "telegram", "carrier"].
Real-time checks usually answer within the request. Slower ones return pending, and you can poll or receive a webhook.
POST /v1/jobs checks up to 50,000 numbers and e-mails, gives a free estimate first and returns CSV or NDJSON in your original row order.
The MCP server lets AI assistants run checks, with spend limits and confirmation built in.
Phone number · GB
+44 7700 900001
whatsapp.registered
This number has a WhatsApp account.
Telegram
telegram.registered
This number has a Telegram account.
Carrier lookup
network.carrier
Mobile line on Test Carrier (GB). Line type tells you whether SMS can reach it.
3 of 3 conclusiveCost $0 · test mode is never billed
Pricing promise
No. You pay per check, and only for conclusive answers. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Repeat checks served from your account's cache are free too, and max_cost caps what any request can spend. Prices per check for real-time and bulk are on the pricing page.
Never charged
Checks from $0.0001 ($0.10 per 1,000)
View all pricesUse cases
Check the phone number or e-mail address a user adds or changes on an account, and step up verification when the signals suggest takeover risk.
Read the playbookScreen inbound callers and outbound dialling lists by line type, carrier and live network status and, where enabled, by spam-report reputation.
Read the playbookSee which messaging apps an opted-in customer's number uses, such as WhatsApp, Telegram, Viber, iMessage or RCS, and send on a channel that arrives.
Read the playbookCheck the phone number and e-mail address on a lead form in one request, so fake, mistyped and low-quality leads are flagged before sales calls them.
Read the playbookCheck a phone number's line type, live network status and messenger presence before sending a one-time passcode, so fake and high-risk sign-ups are reviewed first.
Read the playbookCheck numbers before routing OTP and A2P traffic: live HLR status, current network after porting, line type and messaging-app registration, real time or bulk.
Read the playbookFrom the blog
Guides
Check an Indian list for WhatsApp: turn 0, 91, 091 and Hindi-digit cells into +91, keep 6–9 mobiles, get a free estimate, and follow DPDP Act and TRAI rules.
16 min read
Guides
Check a Nigerian list for WhatsApp: turn 080, 081, 070, 090 and 091 numbers into +234, fix 00234 cells, get a free estimate, and follow NCC and NDPA rules.
15 min read
Guides
Check a Philippine customer list for WhatsApp and Viber: turn 09XX into +63 9XX, keep the 08 mobile blocks, get a free estimate, follow the Data Privacy Act.
17 min read
Trust
Phone numbers and e-mail addresses are encrypted when stored and masked in logs and screens. By default we keep API lookups for 7 days and bulk jobs for 30 days, and you can delete a job's data at any time. Your cache is never shared with other customers. Requests that look like sequential number ranges or generated e-mail lists are rejected. Anyone can object to their number or address being checked through the opt-out form. Read more on the trust page.
Numbers and addresses are sealed when stored and masked in logs and screens.
Account checks answer yes, no or unknown. We never return names, photos or profiles.
Cached answers are scoped to your account and never shared with other customers.
Anyone can object to their number or address being checked.
MobileValidate is a phone and e-mail checks API. One request tells you whether a number is registered on messaging apps such as WhatsApp or Telegram, what line type and carrier it has, and whether an e-mail address has a mailbox or an account on a service.
No. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate).
No. Account checks answer only yes, no or unknown. We never return names, photos or profile data.
Yes. Test keys use documented test numbers and e-mail addresses, never reach a real network and are never billed.
Create a free account with the access form. Requests are approved automatically, usually within 10–15 minutes. You get a test key and free real checks for your first phone numbers and e-mail addresses on the dashboard's Try it page (details on the pricing page). You add credit, from $20, in the dashboard.
No. Platform names only describe which service a check refers to. MobileValidate is independent and not endorsed by any of these companies.
Create a free account: it is approved automatically, usually within 10–15 minutes, with a test key and free real checks on the Try it page. Add credit from $20 when you're ready.
Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.