Phone Number Lookup & Enrichment — Reverse Phone & Carrier avatar

Phone Number Lookup & Enrichment — Reverse Phone & Carrier

Pricing

Pay per event

Go to Apify Store
Phone Number Lookup & Enrichment — Reverse Phone & Carrier

Phone Number Lookup & Enrichment — Reverse Phone & Carrier

Turn phone numbers into people. Validates any number worldwide (E.164, carrier, line type, location) and, for US numbers, identifies the owner with name, address and email. Repeat numbers in a run are billed at a fraction. Confidence score on every record.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Logical Vivacity

Logical Vivacity

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

2 days ago

Last modified

Share

Phone Number Lookup & Enrichment — Reverse Phone, Carrier & Line Type

A number in any format goes in. A decided record comes out.

Is it a real number? Is it a mobile you can text, a landline, or a VoIP line? Which carrier? Which country, region and timezone? And — for US numbers — whose number is it: name, age, email, city, and whether they still use it.

One record per number, with a 0-100 confidence score so you can tell what is certain from what is merely likely.


Try it in 30 seconds

Paste these into Phone numbers, tick the terms box, and hit Start:

(425) 281-1646
+1 214-978-7456
+44 20 7946 0958

Messy formats are fine — brackets, dots, dashes, spaces, with or without a country code. Numbers without a + are read using your Default country setting.


What you get per number

{
"input": "(425) 281-1646",
"e164": "+14252811646",
"national": "(425) 281-1646",
"international": "+1 425-281-1646",
"countryCode": 1,
"country": "US",
"isValid": true,
"isPossible": true,
"lineType": "wireless", // what the source has actually seen, not a numbering-plan guess
"reportedCarrier": "T-Mobile USA, Inc.",
"location": "Seattle, WA",
"timezones": ["America/Los_Angeles"],
"identityFound": true, // US numbers only
"ownerName": "Keil York",
"ownerAge": 34,
"ownerEmail": "keilyork@yahoo.com",
"ownerEmails": ["keilyork@yahoo.com"],
"ownerAddress": "3418 SW Holden St, Seattle, WA 98126",
"ownerCity": "Seattle", "ownerState": "WA", "ownerZip": "98126",
"aliases": ["Keil M York"],
"lastReportedActive": "Aug 2026",
"isCurrentForOwner": true,
"otherNumbersForOwner": ["(206) 555-0148"],
"confidence": 100, // 0-100: how much of the number's story we established
"sourcesUsed": 1,
"status": "ok",
"scrapedAt": "2026-09-17T18:04:11Z"
}

A non-US number comes back with everything except the person:

{
"input": "+44 20 7946 0958",
"e164": "+442079460958",
"national": "020 7946 0958",
"country": "GB",
"isValid": true,
"lineType": "landline",
"location": "London",
"timezones": ["Europe/London"],
"identityFound": false,
"confidence": 35,
"status": "ok"
}

Export as JSON, CSV, Excel, XML or HTML, or pull it straight from the API.


Who uses this

Sales and outbound teams — clean a call list before you dial. Drop the dead numbers, route the mobiles to SMS, and know which name to open with.

Fraud, risk and onboarding — check a number before you approve an account: does it exist, is it a disposable VoIP line, does the name on it match the name on the application?

Debt recovery and collections — find the person behind an old account number, see when it was last reported active, and get their other numbers when this one has gone quiet.

CRM hygiene — bulk-validate the numbers already in your database, fix the formats to E.164, and flag the ones that are no longer valid.

Anyone deciding whether to dial — a landline at 7pm is a wasted call; a mobile is a conversation. Line type is the cheapest routing decision you can make.


What makes it different

Validation and identity in one record. Most tools do one or the other — a validator that tells you the number is real but not whose it is, or a people-search that needs a clean number to start with. This returns both in one row, so your spreadsheet has one column set, not two exports to join.

Line type from what has actually been seen. The numbering plan alone can only say what a range is allowed to be — and in the US that is very often "landline or mobile", which helps nobody. Where a public record shows the number in the wild, we return what it has actually been reported as (wireless, landline, voip) and fall back to the numbering plan only when nothing has.

A confidence score on every row. 0-100, built from what we could establish: validity, line type, carrier, owner name, address, email, whether the number is current, and whether more than one source agreed. Auto-accept above 90, review the rest.

Repeats cost a fraction. Dirty lists are full of duplicates. A number that appears five times in a run is looked up once — the first occurrence is billed at the full rate and the other four at the much cheaper repeat rate.

Cross-check mode. Turn on Cross-check every number against a second source and we check a second independent source and merge the results, raising confidence where they agree. For high-value lists where a wrong name is expensive.

Nothing to configure. No API keys, no accounts, no proxies to set up. Connection handling, retries and pacing are managed for you.


Owner lookup is US only — plainly

Owner identification (ownerName, ownerAge, ownerEmail, addresses, aliases, otherNumbersForOwner, relatives, past addresses) works for US numbers only.

Every other country still gets the full number picture: formatting, validity, line type, carrier, location and timezones — but identityFound will be false and the owner fields will be empty. That is a coverage limit, not an error, and those rows are still returned and charged because the validation data stands on its own. If you only want rows with a person on them, turn on Only return numbers where a person was identified and unmatched numbers come back as not_found, unbilled.


Settings

SettingWhat it does
Phone numbersYour numbers, one per line, in any format
Default countryWhich country to assume for numbers typed without a + country code. Numbers starting with + ignore this
Find the person behind the numberAdds the owner block. US numbers only. Off = pure validation / carrier run
Only return numbers where a person was identifiedUnmatched numbers come back not_found and are not charged
Include relatives and associatesAdds likely relatives to the owner block
Include past addressesAdds the owner's previously reported addresses
Cross-check against a second sourceHigher accuracy and confidence, higher cost

There are no proxy, concurrency or retry knobs. There is nothing to tune.


Bulk lists and automation

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~phone-number-enrichment/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"numbers": ["(425) 281-1646", "+1 214-978-7456", "+44 20 7946 0958"],
"defaultCountry": "US",
"findOwner": true,
"onlyIdentified": false,
"acceptTerms": true
}'

Works with Make, Zapier, n8n, Google Sheets and the Apify API, and as an MCP tool for AI agents. Schedule it to re-check a call list on any cadence.


Results you can trust

Every input reports what happened, so nothing fails silently:

statusMeaningCharged?
okThe number was read and enriched — with or without an ownerYes (repeats at the repeat rate)
invalid_inputThat text isn't a phone number at all; the message says whyNo
invalid_numberIt parses, but it isn't a valid number for its countryNo
not_foundNo person could be tied to the number, and you asked for identified numbers onlyNo
errorA source was briefly unavailable — retry that numberNo

FAQ

Which countries return an owner? The United States, and only the United States. Every other country returns full validation, line type, carrier, location and timezone data, but no person.

Why does a perfectly valid number have no owner? Usually because no public record ties a name to it: freshly issued numbers, business lines, prepaid and burner numbers, VoIP numbers, and numbers belonging to people with a thin public record often have nobody attached. The number is still real — we just can't say whose it is.

What is the difference between lineType and reportedCarrier? lineType is mobile / landline / VoIP; reportedCarrier is the network the number sits on. On US numbers both prefer what a public record has actually reported for that number, and fall back to the numbering plan otherwise.

Does a mobile line type mean I'm allowed to call or text it? No — that is your decision and your legal risk. In the US, calls and texts to mobiles are regulated (TCPA, do-not-call registries, state rules and carrier policies), and this Actor does not check any do-not-call list or consent record. Line type tells you what the line is, not what you may lawfully do with it. Scrub against your own DNC and consent data before dialling.

Do duplicates cost full price? No. A number repeated in the same run is looked up once; the first occurrence is billed at the full rate and each repeat at a much lower repeat rate. Duplicate rows are marked fromCache.

Can I pull every number in an area code? No. This Actor answers lookups about numbers you supply. It is not a bulk database export.

How fresh is it? Read live at the moment of your run. lastReportedActive tells you when the number was last reported in use, and scrapedAt records exactly when we looked.


Terms of Use

By running this Actor (ticking I accept the Terms of Use) you agree to the following.

1. Permitted use. You may use the results only for a lawful purpose that you have determined is permitted in your jurisdiction — for example verifying a contact detail, preventing fraud, recovering a debt, cleaning a customer database, or contacting a person in connection with a legitimate business, legal or investigative purpose.

2. FCRA — prohibited uses. This Actor is not a consumer reporting agency and its output is not a consumer report under the US Fair Credit Reporting Act. You may not use the results, in whole or in part, to make decisions about consumer credit, insurance, employment, tenant or housing screening, government benefits, or any other purpose regulated by the FCRA or a comparable law.

3. Other prohibited uses. You may not use the results to stalk, harass, threaten, dox, intimidate or discriminate against any person, or for unlawful marketing — including calls, texts or automated dialling that violate the TCPA, do-not-call rules, consent requirements or similar laws. Line type is informational and is not permission to contact anyone.

4. Your responsibility as data controller. You are solely responsible for how you collect, store, use, share and delete the results, and for complying with all applicable privacy, data-protection, marketing and consumer-protection laws in your jurisdiction, including responding to any opt-out, access or deletion request you receive from a data subject.

5. No warranty of accuracy. Records are aggregated from third-party public sources and may be incomplete, outdated or wrong. Confidence scores are estimates, not guarantees of identity, and a number may have changed hands since it was last reported. Verify independently before you act on a result, especially before contacting anyone or taking a decision that affects them.

6. No relationship with carriers or sources. This Actor is not affiliated with, endorsed by, or sponsored by any telecommunications carrier, numbering authority, or third-party data source or brand. Carrier names are returned as reported and are used only to identify the network.

7. Liability. The Actor is provided "as is", without warranties of any kind. To the maximum extent permitted by law, the developer is not liable for any loss or damage arising from your use of the results, and you agree to indemnify the developer against claims arising from your use.

8. Removal requests. If you are an individual and want your information removed, contact the underlying public-records sources directly; records are not stored by this Actor after your run completes.

If you do not agree to these terms, do not run this Actor.


A number it couldn't crack, or need volume pricing? Open an issue on the Actor's Issues tab.