Phone Number Validation API avatar

Phone Number Validation API

Pricing

from $0.01 / 1,000 phone numbers

Go to Apify Store
Phone Number Validation API

Phone Number Validation API

Check phone numbers against their numbering plan and format valid numbers. Get E.164, national, and international forms, plus country, line type, location, and likely time zones.

Pricing

from $0.01 / 1,000 phone numbers

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

📞 Check and format phone numbers

This phone number validator helps developers, data teams, and sales teams clean phone lists. It checks numbering-plan rules and returns E.164, national, and international formats, plus country, line type, location, and likely time zones when known.

📦 Returned data

Each saved dataset row is one valid phone number. It includes the first input source where that number was found. If the same normalized number appears again, the later match is not saved.

Returned fields include:

  • phoneNumber and source
  • e164, internationalFormat, and nationalFormat
  • isValid and isPossible
  • countryCode and callingCode
  • type, extension, location, and timeZones

Location, country, and time-zone data may be empty when numbering-plan data does not provide it. These checks do not show whether a number is active, assigned, or owned by a person. They do not check WhatsApp accounts.

▶️ Running the Actor

  1. Add one or more values to Phone numbers.
  2. Set Default country for numbers that have no country calling code.
  3. You may add Text to scan and turn on Keep rejected inputs.
  4. Run the Actor and open the dataset.

🧾 Input

{
"phoneNumbers": [
"+1 202-555-0123",
"020 7946 0958"
],
"defaultCountry": "GB",
"text": "Call the Paris office at +33 1 42 68 53 00.",
"includeInvalid": true
}
  • phoneNumbers is the required list to check.
  • defaultCountry is an optional two-letter country code used for national numbers.
  • text is optional free-form text. Phone-like values found there are checked too.
  • includeInvalid keeps rejected values and their reason in the REJECTED_INPUTS file. It is true by default.

📊 Output

A dataset row can look like this:

{
"phoneNumber": "+1 202-555-0123",
"source": "phoneNumbers",
"e164": "+12025550123",
"internationalFormat": "+1 202-555-0123",
"nationalFormat": "(202) 555-0123",
"isValid": true,
"isPossible": true,
"countryCode": "US",
"callingCode": "1",
"type": "fixedLineOrMobile",
"timeZones": ["America/New_York"]
}

When Keep rejected inputs is on, unparseable or implausible values go to REJECTED_INPUTS with phoneNumber, reason, and source. They do not create valid-number dataset rows.

💳 Pricing

This Actor uses pay-per-event pricing. You pay for each valid phone number saved to the dataset. Rejected inputs, repeated later matches, and runs with no valid saved phone number are not charged as phone-number events. Apify platform costs may still apply.

🔌 Integrations

Export the dataset as JSON, CSV, Excel, XML, RSS, or HTML. You can also run the Actor with the Apify API, schedule runs, or send finished data to webhooks and other Apify integrations.

❓ FAQ

Does this verify that a phone number is active or belongs to someone?
No. It checks the number against numbering-plan data. It does not call, text, run an HLR lookup, or check a subscriber.

Can it check national numbers without a + prefix?
Yes. Set defaultCountry to the two-letter country code that gives those numbers their local context.

What happens when the same number uses two formats?
The Actor uses the normalized number to spot repeats. It saves the first valid match and ignores later matches for that number.

Is a regex enough for E.164 validation?
A regex can check the shape of a value. This Actor also parses the number and checks its length and pattern against numbering-plan data.

Why can a valid number still be unused?
A valid result means the number fits its numbering plan. It does not prove that a carrier assigned it or that a person can answer it.

Do I need a phone service API key?
No third-party phone service key is needed for these numbering-plan checks. You still run the Actor through Apify.

📝 Changelog

  • 0.1.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré