US Phone Number Validator & Reverse Lookup — Carrier & Owner
Pricing
$100.00 / 1,000 results
US Phone Number Validator & Reverse Lookup — Carrier & Owner
Validate any US phone number and enrich it with carrier, line type (mobile / landline / VoIP), prepaid status and the people or businesses linked to it — names, age range, addresses and industry. You pay per completed lookup — $0.10 per row, an unmatched number included.
Pricing
$100.00 / 1,000 results
Rating
5.0
(1)
Developer
NeuralVerge
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
9
Monthly active users
20 hours ago
Last modified
Categories
Share
US Phone Number Validator & Reverse Lookup — Carrier & Owner ✅ No API Key
Validate any US phone number and enrich it with carrier, line type, prepaid status and the people or businesses linked to it — names, age range, addresses and industry. Powered by the Neuralverge API. No API key or account required. You pay per completed lookup — matched or not, at $0.100 per row; a run that fails is never charged.
Ideal for lead validation, TCPA / line-type screening, identity resolution, fraud checks and CRM hydration.
✨ Why this Actor
- ☎️ Validate + enrich in one call — confirm a US number is real and get its carrier, line type (mobile / landline / VoIP) and prepaid flag.
- 👤 Reverse lookup — resolve the number to the linked people and businesses, with names, age range, gender, addresses and industry.
- 💸 One flat price, no run fee — $0.100 per row written. A number that is invalid or
unlisted comes back as one
no resultrow and is billed the same $0.100; only a failed run costs nothing. - 🔑 No API key or account — enrichment runs on the Neuralverge backend.
- ⚡ Real-time & structured — fresh data each run, ready for a spreadsheet, CRM or AI pipeline.
🔧 How it works
- Provide a US phone number — any format works (the Actor strips
+, spaces, dashes and parentheses and sends digits only; the leading1country code is optional). - Run the Actor. Validation and enrichment happen on the Neuralverge backend.
- Get one flat dataset row per lookup — 15 columns, all at the top level
(
phone,id,phoneNumber,isValid,activityScore,countryCallingCode, …). Export to CSV, JSON or Excel, or pull it over the Apify API.
If the number is invalid or returns no result, the run still writes one explicit no result
row with the reason — billed at the normal $0.100. A run that fails writes nothing and
is free.
Input
One number per run.
| Field | Type | Notes |
|---|---|---|
phone | string | The US phone number to validate and enrich. Any format; digits are extracted automatically. Leading 1 is optional. |
{"phone": "19165058708"}
What you'll receive
One flat row per number. Every field sits at the top level of the row, so the Output tab shows a single table with all 15 columns — there are no views to switch between. Exports (CSV, JSON, XML, Excel) contain exactly the same fields.
Columns: phone, id, phoneNumber, isValid, activityScore, countryCallingCode, countryCode, countryName, lineType, carrier, isPrepaid, isLitigatorRisk, warnings, error.
Lists — owners — come back as arrays. The table renders each as
an expandable "N items" cell; a CSV/JSON/Excel export carries them in full.
Nulls are normal. The column set is the same on every run, so a field the source does not expose for this number comes back
nullrather than disappearing — a spreadsheet or CRM mapping built on one run keeps working on the next.
Example output (real run)
A real dataset row, shown in full.
{"phone": "9165058708","id": "Phone.88b010e6-d1a7-4f0b-8ffe-e41aac0eab6d","phoneNumber": "+19165058708","isValid": true,"activityScore": null,"countryCallingCode": "1","countryCode": null,"countryName": null,"lineType": "Mobile","carrier": "T-Mobile USA, Inc.","isPrepaid": false,"isLitigatorRisk": null,"owners": [{"id": "Person.29d3ffb8-b9d9-3937-b1bb-137b6b95acf7","name": "Stephen M Sewell","firstname": "Stephen","middlename": "M","lastname": "Sewell","alternateNames": ["Steve M Sewell","S M Sewell"],"ageRange": "36-40","gender": "M","type": "Person","linkToPhoneStartDate": "2004-03-26","industry": [],"currentAddresses": [{"id": "Location.5290fe2a-6ee5-4120-9de6-7b95244a3c4f","locationType": "Address","streetLine1": "585 29th St Apt C","streetLine2": null,"city": "San Francisco","postalCode": "94131","zip4": "2240","stateCode": "CA","countryCode": "US","deliveryPoint": "MultiUnit","linkToPersonStartDate": "2021-03-01"}]},{"id": "Business.4dc14931-dd9b-397f-b084-cb3e4e748e28","name": "Builder.io, Inc","firstname": null,"middlename": null,"lastname": null,"alternateNames": [],"ageRange": null,"gender": null,"type": "Business","linkToPhoneStartDate": null,"industry": ["Data Processing, Hosting, & Related Services"],"currentAddresses": [{"id": "Location.7a4b3bb1-d40e-4d1a-8c57-04752c0f9031","locationType": "Address","streetLine1": "95 3rd St PMB 2 San Fr","streetLine2": null,"city": "San Francisco","postalCode": "94103","zip4": "3103","stateCode": "CA","countryCode": "US","deliveryPoint": "SingleUnit","linkToPersonStartDate": null}]}],"warnings": null,"error": null}
When nothing is found
A lookup that runs but matches nothing still returns a row, so a batch never silently loses an input. An invalid US number (bad format, non-existent line) and a valid but unlisted number both land here:
| Column | Value |
|---|---|
phone | echoed back exactly as submitted |
found | false |
message | the reason — e.g. the number failed validation, or it is valid but no owner record is linked to it |
Filter these out with found != false (or drop rows where message is set). This row is
billed as one result at the full $0.100 — see Pricing.
Pricing
Pay per event — $0.100 per result ($100 per 1,000) written to the dataset. There is no run fee and no start fee.
| Event | Price | Charged |
|---|---|---|
| Actor start | free | never |
| Failed run — missing input, API error, timeout | free | never |
| Row written to the dataset | $0.100 ($100 / 1,000) | every row, including the "no result" row |
A completed lookup is billed as one result, matched or not. When the source returns
nothing, the Actor writes one explicit no-result row — the query you submitted plus
found: false and a message explaining it — and that row is charged at the normal
per-result price. A run that fails (missing input, bad key, upstream error) writes no row
and costs $0.00.
This Actor is priced at $0.100 per row, so a lookup that matches nothing costs $0.100,
exactly the same as one that returns a full owner record. An invalid or unlisted US number is
not a failed run — the lookup completed and returned a verdict, so it writes a found: false
row and is billed the full $0.100.
Pricing is on top of your Apify platform usage.
Rate limit
Every Neuralverge Actor talks to the same backend, so there is a ceiling on how fast one Apify account can pull from it: 5 requests per second, counted across all Neuralverge Actors together. One run is normally one request, so this is about how many runs you start at once, not about the size of a single run — 5 requests per second is roughly 30 runs in flight at the same time, which is well above ordinary use.
Above the ceiling the backend answers HTTP 429. The Actor waits out the Retry-After it asks
for and retries a few times before giving up; a run that does give up writes no row and is not
charged.
If you need a higher rate for a bulk job, get in touch.
Free plan limits
Users on any paid Apify plan are not affected by anything in this section.
On the Apify Free plan all Neuralverge Actors share one budget, per user and per calendar month: 15 runs in total, at most 5 of them on this Actor, and 35 returned rows. A run that finds nothing still counts, because the lookup is performed either way. LinkedIn People Search is metered differently — one run there uses 25 of the 35 rows, because a full page of 25 profiles is bought upstream whether or not all of them are returned. When a limit is reached the Actor stops gracefully with a status message naming it; everything resets on the 1st of every month, and any paid Apify plan removes all of it.
Integrations & API
Results are stored in a standard Apify dataset — export as CSV, JSON, XML or Excel, or fetch on demand through the Apify API. The Actor also plugs into Apify's integrations (Make, Zapier, n8n, webhooks) and can be called from any MCP client.
FAQ
Do I need an account or API key? No. Validation and enrichment run on the Neuralverge backend.
Which numbers are supported? US phone numbers. Any format — the Actor strips +, spaces,
dashes and parentheses and sends digits only. The leading 1 country code is optional.
What line types can it detect? Mobile, landline and VoIP, along with the carrier and prepaid status.
Am I charged if a number is invalid or unlisted? Yes — $0.100, the same as any other
row. A lookup that ran is billed as one result even when it matched nothing; you get a
no result row carrying found: false and the reason, so you can see what you paid for. Only
a run that fails — missing input, a bad key, an upstream error or timeout — writes no row and
costs $0.00.
Disclaimer: This Actor is an independent tool. Use enriched personal data in compliance with applicable privacy laws (e.g. TCPA, CCPA, GDPR) and only where you have a lawful basis.