Phone Number Carrier Lookup
Pricing
from $3.20 / 1,000 looked-up numbers
Phone Number Carrier Lookup
Find out which network issued a phone number. Feed it a list of numbers and get back the carrier, country, line type, and region for each — in bulk, with export to JSON, CSV, or Excel.
Pricing
from $3.20 / 1,000 looked-up numbers
Rating
0.0
(0)
Developer
VeroAPIs
Maintained by CommunityActor stats
0
Bookmarked
19
Total users
7
Monthly active users
2 days ago
Last modified
Categories
Share
Phone Number Carrier Lookup — validate phone numbers in bulk and get carrier, line type, and country
Phone Number Carrier Lookup validates every number in your list and tells you which mobile network issued it. Feed it a list of numbers and get back the carrier, country, line type, and region for each. Download the results as JSON, CSV, Excel, HTML, or XML.
Use it to find the carrier of a phone number, sort mobile numbers from landlines, clean and standardise phone lists, and enrich leads before a campaign. It runs in the cloud and needs no coding.
What you can do
- Validate a phone list in bulk — every number is checked against its country's numbering plan, and only numbers that fit it come back.
- Find the carrier — the mobile network that issued each number, like Vodafone, Airtel, or China Unicom.
- Split mobiles from landlines — filter on one true/false column.
- Standardise your list — every number comes back in clean E.164, international, and national format.
- Read local numbers — pick a Default country and numbers like
(415) 555-2671or020 7946 0123work as they are. - Plan send times — every number comes with its time zone.
Who uses it
- Marketing teams routing SMS campaigns and cleaning lists before a send.
- Sales and RevOps teams standardising CRM phone fields and scoring leads by line type.
- Fraud and trust teams screening sign-up numbers by country and line type.
- Data teams enriching phone numbers collected with other Apify Actors.
How to use it
- Paste your phone numbers into Phone numbers, one per line. Spaces, dashes, brackets, and duplicates are cleaned up for you.
- If your numbers are written the local way, without a country code, pick their country under Default country.
- Click Start, then download your results as JSON, CSV, or Excel.
What does it do?
For each phone number, the Actor:
- Checks the format first — so you only pay for numbers it can look up.
- Identifies the carrier — the mobile network that issued the number.
- Adds the context around it — country, line type, region, time zone, and the number in three clean formats.
What data does it return?
Each result is one row per phone number:
| Data | Details |
|---|---|
| 📱 Number | the phone number you supplied |
| 📡 Carrier | the mobile network that issued the number |
| 🌍 Country | country name, flag, two-letter code, plus the dialling code |
| ☎️ Line type | mobile, fixed line, toll free, voip, and more |
| 📲 Mobile | a true/false column, so you can filter a list to mobiles in one click |
| 📍 Region | the town or region the number is registered to |
| 🕒 Time zone | the time zone the number is based in |
| ✅ Clean formats | the number in E.164, international, and national format |
Every number we could read gets its own row — and only one row, however many times it appears in your list.
If an entry isn't a valid phone number — wrong digit count, or not a number at all — it gets no row, so a blank never sits next to a real answer in your results. Those entries land in the FAILED_NUMBERS record in the run's key-value store (the Numbers we couldn't read link in the Output tab), with the reason for each, and they are not charged. The run's status message sums it all up: how many numbers were looked up and how many were skipped.
Input
Provide a numbers array of phone numbers. Up to 1000 numbers per run.
{"numbers": ["+61491570156", "+353830648858", "+442079460123", "+14155550123"]}
- International format (
+61491570156) works for every country. - A leading
00(0061491570156) is read the same as+. - Local format (
(415) 555-2671,020 7946 0123) works once you setdefaultCountryto the list's country, like"US"or"GB". Numbers that start with+or00keep their own country, so a mixed list is fine. - Several numbers in one line, separated by commas or semicolons, are split for you — handy when you paste a spreadsheet cell or send data from Make or n8n.
{"numbers": ["(415) 555-2671", "212-555-0123", "+61491570156"],"defaultCountry": "US"}
Output
[{"number": "+61491570156","carrier": "Telstra","country": "AU","countryName": "Australia","flag": "🇦🇺","countryCallingCode": "+61","lineType": "mobile","isMobile": true,"location": null,"timezones": ["Australia/Sydney"],"e164": "+61491570156","international": "+61 491 570 156","national": "0491 570 156"},{"number": "+442079460123","carrier": null,"country": "GB","countryName": "United Kingdom","flag": "🇬🇧","countryCallingCode": "+44","lineType": "fixed line","isMobile": false,"location": "London","timezones": ["Europe/London"],"e164": "+442079460123","international": "+44 20 7946 0123","national": "020 7946 0123"},{"number": "(415) 555-2671","carrier": null,"country": "US","countryName": "United States","flag": "🇺🇸","countryCallingCode": "+1","lineType": "fixed line or mobile","isMobile": null,"location": "San Francisco, CA","timezones": ["America/Los_Angeles"],"e164": "+14155552671","international": "+1 415 555 2671","national": "(415) 555-2671"}]
US and Canadian numbers come back validated with their region, time zone, and clean formats. In countries where numbers move freely between networks and no per-range carrier data exists, such as the US, Canada, Mexico, Argentina, South Korea, and Russia, carrier is empty. US and Canadian mobiles and landlines also share the same ranges, so isMobile is empty for them too.
Integrations
- Chain it after any scraper. Start this Actor automatically when a lead or contact scraper finishes, with an Apify Actor-to-Actor integration.
- Send results anywhere. Push them to Google Sheets, Zapier, Make, n8n, Slack, or any webhook with Apify integrations.
- Export in any format. JSON, CSV, Excel, XML, or HTML.
Use it as a phone number validation API
Call it from your own code and get the results back as JSON. In Python, with the Apify client (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vero-api/phone-carrier-lookup").call(run_input={"numbers": ["+61491570156", "(415) 555-2671"],"defaultCountry": "US",})for item in client.dataset(run.default_dataset_id).iterate_items():print(item["e164"], item["carrier"], item["lineType"])
Or get the results in a single HTTP call:
curl -X POST "https://api.apify.com/v2/acts/vero-api~phone-carrier-lookup/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"numbers": ["+61491570156", "+353830648858"]}'
Your token is under Settings → API & Integrations in Apify Console.
Use it from your AI assistant (MCP)
Ask Claude, Cursor, VS Code, or any assistant that supports MCP to check numbers in plain words. Add this server to its MCP settings:
{"mcpServers": {"phone-carrier-lookup": {"url": "https://mcp.apify.com?tools=vero-api/phone-carrier-lookup"}}}
Then just ask, for example:
- "Which of these numbers are mobiles, and on which network?"
- "Clean this list of UK numbers and give me them in E.164."
- "What time zone is each of these customers in?"
Pricing
Pay only for the results you get — one flat charge per number looked up. Numbers that couldn't be read are never charged, and a number that appears several times in your list is charged once.
FAQ
What does the carrier tell me? The mobile network that issued the number — Orange, Vodafone, T-Mobile, and so on. It's filled in for most countries. Where numbers move freely between networks and no per-range carrier data exists, such as the US, Canada, Mexico, Argentina, South Korea, and Russia, it's empty. Every number also comes back with its country, line type, region, and clean formats, so you can segment a list either way.
Do I need to format the numbers first? No. Numbers that start with + or 00 and the country code work as they are, like +14155552671 or 0061491570156. For numbers written the local way, like (415) 555-2671, pick their country under Default country. The Actor handles spaces, dashes, and brackets, and gives you back clean E.164, international, and national formats.
My numbers have the country code but no +. What do I do? Add a + in front, like +14155552671. If they all come from one country, picking that country under Default country works too.
Can I tell mobiles from landlines? Yes — filter on the isMobile column to get every mobile in one click, or use lineType when you want the detail (toll free, voip, and so on). A handful of countries hand mobiles and landlines out of the same range; those rows leave isMobile empty rather than guess, so a maybe never gets counted as a yes.
What about US, Canadian, and other numbers with no carrier? They're validated and come back with their region, time zone, line type, and clean formats. The carrier is empty for them, because numbers there move freely between networks and no per-range carrier data exists. This is the case in the US, Canada, Mexico, Argentina, South Korea, and Russia.
Is the carrier the current one after a number was ported? It's the network that issued the number. A number moved to another network keeps the carrier it was issued with.
What if my list has duplicates? The same number counts once, however it was typed — +61 491 570 156, +61-491-570-156 and +61491570156 are one number. You get one row for it, and you pay for it once.
How many numbers can I check at once? Up to 1000 per run.
Can I cap what a run costs? Yes. Set a spending limit on the run: it stops cleanly when the limit is reached and tells you so in the status message.
Do I need an API key for anything? No. Paste your numbers and run it — there is nothing to sign up for.
More tools from us
- WhatsApp Number Checker — find out which numbers in your list have WhatsApp.
- WhatsApp Profile Scraper — profile picture, about text, and business details for phone numbers.
- Telegram Username Checker — profiles, channels, groups, and bots by username.
- Email Validator — check a list of email addresses and get valid, risky, or invalid for each.
- DNS Tools — WHOIS, domain age, and DNS records for any list of domains.