Phone Number Validator - Bulk E.164 Formatting & Line Type
Pricing
from $0.30 / 1,000 number validateds
Phone Number Validator - Bulk E.164 Formatting & Line Type
Validate and format phone numbers in bulk, offline with Google's libphonenumber data: valid/possible, E.164, international and national formats, country, calling code, extension and line type (mobile, fixed line, toll-free, VoIP). From a list, CSV/Excel or dataset column. $0.30 per 1,000.
Pricing
from $0.30 / 1,000 number validateds
Rating
0.0
(0)
Developer
ActorForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Validate and format phone numbers in bulk, offline with Google's libphonenumber data: valid/possible, E.164, international and national formats, country, calling code, extension and line type (mobile, fixed line, toll-free, VoIP). From a list, CSV/Excel or dataset column. $0.30 per 1,000.
Clean and standardise phone numbers in bulk before they hit your CRM, dialer or SMS tool. Paste a list, or point it at a CSV / Excel / JSON file or an Apify dataset column (for example the output of a business-leads scrape), and get one row per number: valid?, possible?, E.164 (+14155552671), international and national formats, tel: URI, ISO country and country name, calling code, extension and line type (mobile, fixed line, toll-free, premium rate, VoIP, shared cost…), plus a plain-English reason when a number is invalid. Validation runs offline against Google's libphonenumber numbering-plan data (via libphonenumber-js), the same rules Android and Google use, so it is fast, private and cheap: no number is sent to any third-party service, and nothing is looked up about who owns it. Use it for CRM and lead-list hygiene, form and signup validation, normalising numbers to E.164 for Twilio, WhatsApp Business or HubSpot, routing mobile vs landline numbers, and deduplicating contact lists. Numbers without a + prefix use your default country, or a per-row country column. $0.30 per 1,000 numbers; duplicates and empty cells are free.
What data does it return?
Every run outputs clean, schema-validated rows like these:
| input | valid | e164 | national | countryCode | lineType |
|---|---|---|---|---|---|
| +44 20 7946 0958 | true | +442079460958 | 020 7946 0958 | GB | fixed_line |
| (415) 555-2671 | true | +14155552671 | (415) 555-2671 | US | fixed_line_or_mobile |
| tel:+33612345678 | true | +33612345678 | 06 12 34 56 78 | FR | mobile |
| 123 | false | US |
How much does it cost?
Transparent pay-per-event pricing — you only pay for what you get, and the actor always respects your run budget: set a maximum total charge and it stops cleanly at the cap instead of overrunning.
| Event | Price | Charged | Worked example |
|---|---|---|---|
number-validated | $0.0003 | per unique phone number validated and delivered (valid or invalid; duplicates and empty values are free) | 10,000 CRM phone numbers = $3.00 |
apify-actor-start | $0.00005 | per run per GB of memory (platform start fee) | One run at 0.5 GB = $0.000025 |
Input options
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
phoneNumbers | array | no | — | Phone numbers in any common format: +44 20 7946 0958, (415) 555-2671, 0049 30 1234567, tel: links, with or without extensions. Numbers without a + prefix use the default country. |
defaultCountry | string | no | — | Two-letter ISO country code (US, GB, DE, FR, IN, BR…) for numbers written in national format without a + prefix. |
datasetId | string | no | — | Optional. Validate a column of an Apify dataset (e.g. a leads scrape). Picking it here gives this run read access to it. Set the phone column below. |
fileUrl | string | no | — | Optional. A public CSV/TSV, JSON, JSON Lines or XLSX file (first row = column names, up to 50 MB). Set the phone column below. |
phoneField | string | no | — | For a dataset or file: the field / column holding the phone number (dot paths like contact.phone work). |
countryField | string | no | — | For a dataset or file: a field holding each row's two-letter country code, used instead of the default country for that row. |
keepSourceFields | boolean | no | false | For a dataset or file: copy the whole original row into sourceRow, so results can be matched back to your records. |
onlyValid | boolean | no | false | Drop invalid numbers from the output (they are not charged). |
dedupe | boolean | no | true | Validate each distinct number once (same digits and country); repeats are skipped and free. |
maxNumbers | integer | no | 1000000 | Stop after delivering this many numbers. |
Limits & honest notes
- Offline validation checks a number against its country's numbering plan only. It cannot tell whether a number is currently assigned, switched on or reachable, and it does not identify the carrier after number porting. "valid" means the number is correctly formed and in an allocated range.
- No lookups of people: the actor never queries who owns a number and returns no personal data beyond the number you supplied. It is meant for business uses such as CRM hygiene and form validation; process personal phone numbers only with a lawful basis.
- Line type comes from the numbering plan: in the US, Canada and some other countries mobile and fixed-line ranges overlap, so you get fixed_line_or_mobile.
- Numbering-plan data is Google's libphonenumber metadata as shipped with libphonenumber-js at build time; plans change a few times a year and the actor is rebuilt with updates.
- Files are downloaded once (up to 50 MB) and private or internal network addresses are refused at every redirect hop. Datasets are read only when you pick them in the Dataset field (limited permissions).
Related ActorForge actors
- Business Places Data — business leads with phone numbers to validate
- Contact Details Scraper — company phones and role emails from websites
- Merge & Deduplicate Datasets — merge and dedupe lead lists
Changelog
- 2026-10-23 — Initial release: bulk offline validation and E.164/international/national formatting with country, calling code, extension, line type and invalid reason; list, CSV/Excel/JSON file or dataset column input; per-row country column; dedupe.
Built and maintained by ActorForge. Reliability first: every actor in the portfolio is monitored by an automated nightly self-test, and breakages are typically fixed the same day.