Phone Number Validator API: Format, Type & Country
Pricing
$1.00 / 1,000 phone checks
Phone Number Validator API: Format, Type & Country
Validate and format phone numbers from any country: E.164, international and national formats, mobile/landline/VoIP type, country, region, original carrier and time zones. Google libphonenumber.
Pricing
$1.00 / 1,000 phone checks
Rating
0.0
(0)
Developer
Tudor Lane
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Use when…
- You need to check and format phone numbers (E.164) before saving, texting or calling.
- A CRM, sign-up or data-cleaning agent must tell mobile from landline or VoIP and find the country and time zone.
- You want bulk validation for a tiny per-number price, with no API key.
Try this input
Copy-paste this JSON as the Actor input (it matches a successful run / the default schema):
{"requests": [{"phone": "+44 20 7946 0958"},{"phone": "(415) 555-2671","country": "US"},{"phone": "07911 123456","country": "GB"}]}
Sample output (real run 2026-10-27)
One dataset item, shortened:
{"phone": "+44 20 7946 0958","valid": true,"possible": true,"country_code": "GB","calling_code": 44,"e164": "+442079460958","international": "+44 20 7946 0958","national": "020 7946 0958","rfc3966": "tel:+44-20-7946-0958","line_type": "fixed_line","location": "London","original_carrier": null,"…": "+4 more keys"}
Clean up and check phone numbers from any country in bulk.
- Valid / possible for that country's numbering plan
- Formats: E.164 (+447911123456), international, national, tel: URI
- Line type: mobile, fixed line, VoIP, toll-free, premium...
- Country, region/city (where the number plan shows it), original carrier, time zones
- Pass
countryfor local-format numbers (07911 123456 + GB)
Quick start
Leave the default input (it is prefilled) and click Start:
{"requests": [{"phone": "+44 20 7946 0958"}, {"phone": "(415) 555-2671", "country": "US"}, {"phone": "07911 123456", "country": "GB"}]}
Send many items in requests per run (cheaper and faster than one run each).
Sample output (real run, 26 Oct 2026, default input)
| phone | valid | country_code | e164 | national | line_type | location | original_carrier |
|---|---|---|---|---|---|---|---|
| +44 20 7946 0958 | true | GB | +442079460958 | 020 7946 0958 | fixed_line | London | |
| (415) 555-2671 | true | US | +14155552671 | (415) 555-2671 | fixed_line_or_mobile | San Francisco, CA | |
| 07911 123456 | true | GG | +447911123456 | 07911 123456 | mobile | Guernsey | JT |
Each row also has possible, calling_code, international, rfc3966, timezones and a note.
Use cases
- Clean and standardise phone numbers to E.164 before saving them in a CRM.
- Check sign-up or order form numbers are real-looking for that country.
- Split mobiles from landlines before sending SMS.
- Add country and time zone to contact lists so calls happen at sensible hours.
Pricing
Pay per event: $0.001 per phone check (one phone number parsed and validated). Rows with errors are not charged.
Sources and licences
Google libphonenumber via the phonenumbers Python port (Apache 2.0).
Notes
No live network lookup: carrier is the original range holder and the number may have been ported. Validity means the number fits the plan, not that it is switched on.
FAQ
Does it check the phone is switched on? No. It checks the number fits the country's numbering plan. There is no live network lookup.
Do I need an API key? No.
Local numbers like 07911 123456? Add country (e.g. GB) so it knows which country to read them for.
Limits & failure modes
- Valid means the number fits the plan, not that it is live or belongs to the person.
- Carrier is the original range holder; the number may have been ported.
- UK mobile ranges shared with the Crown Dependencies can show as Guernsey or Jersey (as in the sample).
- Location is only as precise as the number plan (often just the country for mobiles).
Use from AI agents (MCP)
Add it to any MCP client via https://mcp.apify.com?actors=tudorlane/phone-validate, or call the Apify API / run-sync endpoint.