Phone Number Lookup API avatar

Phone Number Lookup API

Pricing

Pay per event

Go to Apify Store
Phone Number Lookup API

Phone Number Lookup API

All-in-one phone intelligence API. Validates any number, returns carrier, line type (mobile/landline/VoIP), country, region, owner name (US/CA), fraud score, breach data, WhatsApp/Telegram presence, and reverse-lookup URLs in a single call. 240+ countries.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

12

Monthly active users

7 days ago

Last modified

Share

Phone Number Lookup API — Carrier, Owner Name, Fraud Score, WhatsApp & Telegram Check

Validate, enrich, and reverse-lookup any phone number worldwide. This actor returns 40+ data fields per number including carrier, line type (mobile/landline/VoIP), country, region, city, owner name (US/CA), fraud score, breach data, WhatsApp/Telegram registration status, and pre-built reverse-lookup search URLs — all in a single API call. Powered by Google's libphonenumber + IPQualityScore + free OSINT enrichment. Works with 240+ countries.

Built for sales teams cleaning lead lists, fraud teams scoring inbound calls, RevOps automating CRM hygiene, and AI agents needing structured phone metadata via MCP.

What does Phone Number Lookup API do?

It takes any phone number — international (+12025551234) or local ((202) 555-1234 with a country code) — and returns everything publicly knowable about it in one structured JSON response:

  • Validation & format: E.164, international, national, and RFC 3966 formats
  • Geography: country, region, city, ZIP code, timezone
  • Telecom: carrier (real-time HLR), line type (mobile/landline/VoIP/toll-free/premium), MCC/MNC codes, ported flag, original carrier
  • Fraud signals: 0-100 fraud score, recent abuse, leaked-in-breach flag, spammer flag, DNC registry status, SMS deliverability score
  • Identity: owner name (US/CA via CNAM), associated emails (where available)
  • Cross-platform presence: WhatsApp registration + business flag, Telegram registration + public name/photo
  • Reverse-lookup URLs: pre-formatted search URLs for Google, Whitepages, Truecaller, BeenVerified, Spokeo, 800notes, MrNumber, Facebook, LinkedIn

Process 1 number or up to 10,000 per run. Per-number error isolation means one bad input never kills your whole batch.

Why use Phone Number Lookup API?

Most phone validators on Apify just wrap Google's libphonenumber library — they tell you if a number is syntactically valid and not much more. This actor goes far beyond:

  • Real fraud detection — 0-100 fraud score, leaked-in-breach lookup, spammer database, DNC registry status
  • Owner identification — name where available (US/CA via CNAM), associated emails
  • Real-time HLR carrier — actual current carrier (portability-aware), not the static carrier-at-issuance most actors return
  • Cross-platform presence — WhatsApp + Telegram registration check baked in (no separate actor needed)
  • Reverse-lookup URLs — instant manual investigation links for Google, Whitepages, Truecaller, etc.
  • Bulk-friendly — up to 10,000 per run, configurable concurrency, hard cost ceiling, streaming output, resume on failure
  • MCP-native — perfect tool for Claude/GPT/Cursor agents (1 input, structured JSON out, predictable cost)
  • No setup — bring nothing. We handle all the API keys.

Use cases

  • Sales / RevOps: clean lead lists before SMS or dialer campaigns; filter out invalid, VoIP, and toll-free numbers
  • Trust & Safety: score inbound numbers, detect spam/scam/fraud signals, check DNC registry
  • CRM hygiene: bulk-enrich phone records with carrier, region, line type, and owner name
  • Compliance / KYC: verify number ownership, line type, and active status before onboarding
  • Real estate / skip-tracing: enrich seller/lead phones with owner details and cross-platform footprint
  • AI agents: 1 MCP call returns the full phone profile — no chaining 4 actors

How to use Phone Number Lookup API

  1. Click Try for free above to open the actor in Apify Console.
  2. In the Input tab, paste your phone numbers (one per line) — international format +12025551234 works best. For local-format numbers, also set Default country (e.g. US).
  3. Optionally tweak: Concurrency (default 20), Max cost cap, toggle WhatsApp/Telegram checks.
  4. Click Start.
  5. Watch the live progress: Processed 240/5000 (4.8%) · 198 valid · 12 spam-flagged · $6.00 spent.
  6. When done, open the Output tab → preview, or download as JSON / CSV / Excel / HTML.

For programmatic use, hit our API endpoint directly:

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~phone-number-lookup-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phoneNumbers": ["+12025551234", "+447911123456"],
"defaultCountry": "US"
}'

Input

FieldTypeDefaultDescription
phoneNumbersstring[]— (required)Up to 10,000 numbers. E.164 preferred.
defaultCountrystringUSISO 3166-1 alpha-2 fallback for local-format numbers.
maxConcurrencyinteger20Parallel lookups (1-100).
includeReverseLookupUrlsbooleantrueGenerate Google/Whitepages/Truecaller search URLs.
includeWhatsAppCheckbooleantrueTest WhatsApp registration.
includeTelegramCheckbooleantrueTest Telegram registration + fetch public name/photo.
enableUnofficialSourcesbooleanfalseReserved for v2 (Truecaller/GetContact).
maxCostUsdintegerunsetHard spending cap per run.

Output

Each number returns one record with this shape (simplified):

{
"inputNumber": "+12025551234",
"valid": true,
"e164": "+12025551234",
"international": "+1 202-555-1234",
"national": "(202) 555-1234",
"rfc3966": "tel:+1-202-555-1234",
"countryCode": "US",
"countryCallingCode": "+1",
"countryName": "United States",
"region": "DC",
"city": "Washington",
"zipCode": "20001",
"timezones": ["America/New_York"],
"lineType": "mobile",
"isMobile": true,
"isLandline": false,
"isVoip": false,
"carrier": "Verizon Wireless",
"originalCarrier": "T-Mobile USA",
"ported": true,
"mobileCountryCode": "310",
"mobileNetworkCode": "012",
"active": true,
"fraudScore": 12,
"risky": false,
"recentAbuse": false,
"leakedInBreach": false,
"spammer": false,
"dncStatus": "not_on_dnc_registry",
"smsScore": 95,
"name": "John Doe",
"associatedEmails": ["j.doe@example.com"],
"whatsApp": { "registered": true, "isBusiness": false },
"telegram": { "registered": true, "publicName": "John D" },
"reverseLookupUrls": {
"google": "https://www.google.com/search?q=%2B12025551234",
"truecaller": "https://www.truecaller.com/search/intl/12025551234",
"whitepages": "https://www.whitepages.com/phone/12025551234"
},
"sources": ["libphonenumber", "ipqualityscore", "whatsapp", "telegram", "reverse_lookup_urls"],
"warnings": [],
"lookedUpAt": "2026-05-03T19:42:00.123Z"
}

You can download the dataset in JSON, CSV, Excel, JSONL, RSS, or HTML table format.

Data fields returned

CategoryFields
Validationvalid, formatted, e164, international, national, rfc3966
GeographycountryCode, countryCallingCode, countryName, region, city, zipCode, timezones
TelecomlineType, isMobile, isLandline, isVoip, isTollFree, isPremiumRate, carrier, originalCarrier, ported, mobileCountryCode, mobileNetworkCode, active
Fraud / RiskfraudScore, risky, recentAbuse, leakedInBreach, spammer, dncStatus, smsScore
Identityname, associatedEmails
PresencewhatsApp.registered, whatsApp.isBusiness, telegram.registered, telegram.publicName, telegram.publicPhotoUrl
Reverse lookupURLs for Google, Whitepages, Truecaller, BeenVerified, Spokeo, 800notes, MrNumber, Facebook, LinkedIn
Metadatasources[], warnings[], lookedUpAt

Pricing — How much does it cost to look up phone numbers?

Pay-per-event pricing. You pay only for what you use — no monthly minimums, no setup fees.

EventPriceWhen charged
Actor start$0.00005Per RAM-GB, charged once per run
Phone looked up$0.025Per number successfully processed

Cost examples

  • 1 number (one-off lookup): ~$0.025
  • 100 numbers (small lead batch): ~$2.50
  • 1,000 numbers (medium CRM cleanup): ~$25
  • 10,000 numbers (large enrichment job): ~$250

Cost cap

Set maxCostUsd in input to hard-cap your spend. The actor stops gracefully when reached — no surprise bills.

Tips & advanced options

  • Always pass E.164 format (+12025551234) when possible — local formats need a default country and may misparse.
  • For huge batches (>10,000), split into multiple runs and use Apify Tasks to chain them.
  • For real-time fraud screening, use the API endpoint with single numbers and webhook callbacks for sub-2-second response.
  • Lower concurrency to 5-10 if you see IPQS rate-limit warnings — IPQS allows generous limits but bursts of 50+ may throttle.
  • Disable WhatsApp/Telegram checks if you only need validation + fraud — saves 200-500ms per number.
  • Pipe output into your other Apify actors — pair with b2b-lead-finder-enrichment, linkedin-profile-email-scraper, bulk-website-contact-extractor, or google-maps-leads-scraper for end-to-end lead enrichment.

FAQ

Which countries are supported? All 240+ countries recognized by ITU-T E.164 (literally every country on Earth). Owner-name data is strongest for US, Canada, UK, EU, India, and Australia.

How accurate is the carrier data? Real-time HLR via IPQualityScore — portability-aware (tells you the current carrier, not the carrier at number issuance). Falls back to libphonenumber's static carrier data if IPQS lookup fails.

Does this work for landlines? Yes — landlines, mobile, VoIP, toll-free, premium-rate, personal numbers, pagers, and shared-cost lines are all supported and classified.

Does it return profile pictures like Truecaller? For WhatsApp business accounts, yes. For Telegram public profiles, yes. For general "Truecaller-style" name lookup beyond US/CA, that requires unofficial sources which are reserved for v2 (opt-in flag with TOS disclaimer).

Can I use this in real-time during a phone call? Yes — call the synchronous API endpoint with a single number; typical response time is 1-3 seconds.

Is bulk processing reliable? Yes. Per-number error isolation means one bad input doesn't kill your batch. The actor streams results to the dataset as each number completes, so you can start downloading partial results before the full run finishes.

Can I limit my spend? Yes — set maxCostUsd in input. The actor stops gracefully when the cap is reached.

This actor uses publicly available data sources — Google's open-source libphonenumber library, IPQualityScore's commercial fraud database, and public WhatsApp/Telegram presence indicators (no message content, no profile data scraping).

You are responsible for the legal use of this data in your jurisdiction. This includes but is not limited to:

  • Compliance with GDPR, CCPA, TCPA, and other applicable privacy/telecom laws
  • Honoring DNC registry restrictions (the actor flags DNC status — you must respect it)
  • Not using the data for harassment, stalking, fraud, or unauthorized commercial outreach
  • Consent and disclosure obligations when enriching personal data

The actor is provided "as is" without warranty. Carrier and ownership data is sourced from third-party providers and may be incomplete or outdated. Do not rely solely on this data for life-or-safety decisions.

Support

Found a bug, have a feature request, or want to chat about your use case? Open an Issue on this actor's page.

Pair Phone Number Lookup API with these to build full lead enrichment pipelines: