This free bulk phone number checker tests one number now and checks a whole CSV list after you sign up.
Check one phone number free, and see how a whole CSV list comes back. No signup for the single check.
Pick the country, then enter the number without the country code.
Free & rate-limited. No signup required to try.
A bulk phone number checker validates a whole list of numbers in one run. 1Lookup's free page checks one number and shows a sample file. A 7-day free trial opens CSV upload of up to 2 million rows at 1 credit a number, with line type, carrier and, for US numbers, Do Not Call status.
- Free single-number check
- Sample CSV in and out
- Up to 2 million rows a file
- Never calls or texts a number
You can check a whole list of phone numbers in four steps.
Put the numbers in one column of a CSV file.
Add a header row, give every number its own line, and write a number outside the US and Canada with its country code, such as +44.
Upload the file and pick the column.
The upload takes a CSV file of up to 1 GB and 2,000,000 rows. You tell it which column holds the numbers.
Download the results file.
It comes back with the result columns added to every row, such as line type, carrier, state and the Do Not Call and porting columns.
Keep the numbers you want.
Sort by line type, drop the Do Not Call rows and set aside the numbers that came back inactive or invalid.
Need this at scale? Phone Validation API
Validate a whole list of phone numbers by CSV upload or send one request per number from your own code.

A bulk phone number checker runs one check on every number in a list, so you read a results file instead of typing numbers one at a time.
A bulk phone number checker takes a file of phone numbers and returns the answers you would get by checking each number alone: whether the number is active, what kind of line it is, which carrier holds it, where it is and, for US numbers, whether it carries a Do Not Call flag. 1Lookup reads the numbers from one column of a CSV file and gives the same file back with new columns on every row.
A list goes stale on its own. The FCC estimated in 2018 that about 35 million US phone numbers were disconnected and made available for reassignment each year, and its own count shows about 40.5 million numbers ported in 2024. A number that was right when you collected it can sit on a different carrier or a different line type today, which is why a list is worth checking again before a send or a campaign.
One number at a time is free on this page, with no signup, and it shows one row of the results file. Checking the whole list uses credits: a 7-day free trial opens CSV upload and the API, at 1 credit a number.
The phone validation API runs the same check on every number as it arrives.
When numbers come in one at a time through a form or a CRM, the phone endpoint returns the same fields for 1 credit a request. See the phone validation API. To read the guide behind this page, see our complete guide to bulk phone validation. To check whether a US number is on the Do Not Call Registry and see how a litigator scrub works, use our free TCPA litigator check. To check one number's validity, line type and carrier, use our free phone validator. To see whether a number is a landline, use our free landline checker. To see which carrier holds a number, use our free carrier lookup.
One row of the results file shows these fields, and each one answers a different question.
This is an invented result for a made-up number, laid out the way a check comes back. The first six fields are free on this page, and a 7-day free trial adds the four that fill the rest of the results file for a US number.
- ValidYes
- Line typeMobile
- Carrier / networkSample Wireless
- CountryUS
- Region / stateCA
- TimezoneAmerica/Los_Angeles
Opens with a free trial
- Do Not Call statusNot listed
- Porting statusPorted
- Routing number (LRN)4155550100
- OCN and rate center0000, SAMPLE CNTRL
Valid
Whether the number is real, which means correctly written for its country and assigned. An invalid number can be dropped before anything is sent.
Line type
Mobile, landline or VoIP. It decides whether a text can arrive.
Carrier / network
The phone company that holds the number today, read from its carrier record.
Country
The country the number belongs to, as its two-letter code for a US or Canadian number and by name for a number elsewhere.
Region / state
The state or region on the number's record.
Timezone
The time zone of the number's area, which helps you call at a sensible hour.
Do Not Call status
Whether a US number carries a Do Not Call flag on its record. In the results file this is the DNC Listed column, which reads Yes or No for a US number and N/A outside the US.
Porting status
Whether the number has moved to another carrier. In the results file this is the Porting Status column.
Routing number (LRN)
The location routing number, the code phone networks use to send a call to the number's current carrier. It is the LRN column of the results file and is empty outside the US.
OCN and rate center
The operating company number, a four-character carrier code, and the rate center the number belongs to.
A bulk phone check takes four steps from file to results.
Prepare the file.
Save the list as a CSV file with a header row and one number on each line. Write a number outside the US and Canada with its country code, such as +44.
Upload it and pick the column.
Open the batch upload page of the dashboard, choose the Phone Number Validation check and tell it which column holds the numbers.
Every number is checked.
Each row is looked up the way the single check above does it. Nothing is called or texted, so no phone rings and no one is told.
Download the results file.
The file comes back with the result columns filled in on every row. A row the upload cannot read as a phone number is skipped.
A bulk check sends every row through the same lookup and writes the answers back into your file.
This is the path a CSV file takes. The single check above is one row of the same process.
- Your CSV fileOne number on each line, under a header row.
- Each row is looked upThe line type, carrier, location and, for US numbers, the Do Not Call flag are read from the number's record.A row that is not a phone number is skipped, and the rest of the file is still checked.
- The answers join the rowNew columns sit beside your own, so every result stays on the row of its number.
- You download the results fileSort by line type, drop the Do Not Call rows and keep the rest.
Carriers held 72.3 million disconnected numbers in aging at the end of 2024, up from 36.6 million at the end of 2020.
Aging numbers are disconnected numbers that are held out of use for a set period before they can be assigned to someone else. The FCC says the count gives some indication of how many customers disconnected in the previous three months to a year, and it is a stock at one date, not a total for a year. Separately, the FCC estimated in 2018 that about 35 million numbers were disconnected and made available for reassignment each year, using 2013 to 2016 averages, and it noted that one party questioned that estimate. The first three columns are the FCC's figures in thousands of numbers for all reporting carriers, and the last column is our division of the second by the third.
| Status date | Aging numbers in thousands | Total numbers in thousands | Aging share of the total |
|---|---|---|---|
| 31 December 2020 | 36,596 | 1,680,352 | 2.2% |
| 31 December 2021 | 34,589 | 1,787,394 | 1.9% |
| 31 December 2022 | 42,824 | 1,838,103 | 2.3% |
| 31 December 2023 | 46,814 | 1,884,990 | 2.5% |
| 31 December 2024 | 72,317 | 1,786,900 | 4.0% |
US carriers ported about 40.5 million phone numbers in each of 2023 and 2024, and each move changes which carrier holds a number.
The FCC reports the numbers ported, for each half year, in thousands. The year total is our sum of the two halves. The FCC says its figures include numbers that were ported back to the original carrier or where the subscriber ended service, and that they leave out significant porting between large wireless carriers after their mergers and large porting by companies identified as number wholesalers since 2020.
| Year | January to June in thousands | July to December in thousands | Year total in thousands |
|---|---|---|---|
| 2020 | 21,564 | 22,489 | 44,053 |
| 2021 | 21,715 | 22,386 | 44,101 |
| 2022 | 22,884 | 21,856 | 44,740 |
| 2023 | 20,315 | 20,194 | 40,509 |
| 2024 | 19,452 | 21,075 | 40,527 |
The FCC's Reassigned Numbers Database held over 102 million numbers in May 2021 and over 361 million in August 2023.
A caller who has consent for a number can ask the database whether the number was permanently disconnected since the date the consent was obtained. It is a separate service from a phone number check, which reads line type and carrier records and cannot tell you whether the person who gave you a number still has it. Each figure is "over" the number shown, as the FCC and the administrator word it. The first four rows are from the FCC's own page, and the last is from the database administrator's FAQ.
| Date | Numbers in the database, in millions | Stated by |
|---|---|---|
| 17 May 2021 | 102 | FCC |
| 17 October 2021 | 152 | FCC |
| 1 November 2022 | 268 | FCC |
| 17 February 2023 | 305.9 | FCC |
| 16 August 2023 | 361 | Database administrator |
RFC 4180 describes the format most programs follow for CSV files in seven rules, and a phone list should follow them.
RFC 4180 is an informational document from the IETF, dated October 2005, and it does not set an Internet standard. It describes the format that most programs follow. The third column says what each rule means for a phone list.
| Rule | What RFC 4180 says | What it means for a phone list |
|---|---|---|
| Records | Each record is on a separate line, ending in a line break. | Give every number its own line. |
| Last line | The last record may or may not end with a line break. | A missing line break at the end does not matter. |
| Header | An optional header line comes first, names the fields and has the same number of fields as the records. | The upload needs a header row and at least one data row. |
| Fields | Fields are separated by commas, every line should have the same number of fields, and the last field is not followed by a comma. | Keep the same number of columns on every row. |
| Quotes | A field may or may not be enclosed in double quotes, and double quotes may not appear inside a field that is not enclosed in them. | RFC 4180 notes that some programs write no double quotes at all. |
| Commas and line breaks | A field that contains a line break, a double quote or a comma must be enclosed in double quotes. | A name such as Rivera, Alex in another column needs quotes. |
| Quotes inside quotes | A double quote inside a quoted field is written as two double quotes. | Keep stray quote marks out of the number column. |
An international phone number has at most 15 digits, and a US number is a 1 followed by a 3-digit area code, a 3-digit prefix and a 4-digit line number.
The International Telecommunication Union sets the international format, called E.164, and the North American Numbering Plan sets the layout inside the US and Canada, where N stands for any digit from 2 to 9 and X for any digit. A national prefix such as a leading 0 is not part of the international number.
| Part of a number | What it is | Length |
|---|---|---|
| Whole international number | The country code plus the national number, digits only, without any dialing prefix | At most 15 digits |
| Country code | Selects the destination country | 1 to 3 digits |
| National number | Everything after the country code | At most 15 minus the digits of the country code |
| Prefixes | Dialing instructions, such as a national prefix of 0, that are not part of the international number | Not counted |
| US and Canada area code (NPA) | The first three digits of the ten-digit number, in the form NXX | 3 digits |
| US and Canada prefix (NXX) | The next three digits, also called the central office code or exchange | 3 digits |
| US and Canada line number | The last four digits | 4 digits |
| A US number with its country code | The digit 1, then the ten digits | 11 digits |
A CSV upload takes up to 2,000,000 rows in a file of up to 1 GB, and the phone API takes 200 requests per 10 seconds for each API key.
These are the limits of the 1Lookup batch upload and API, read from the product and its API guide. A request over the limit returns a 429 error with a Retry-After header. The number type, HLR and MNP endpoints hold a connection open for seconds and have their own limit of 1,000 requests a minute.
| Limit | Value | Applies to |
|---|---|---|
| File type | CSV only | Batch upload |
| Rows in one file | Up to 2,000,000 | Batch upload |
| File size | Up to 1 GB | Batch upload |
| Header row | Required, with at least one data row | Batch upload |
| Standard lookups, including the phone endpoint | 200 requests per 10 seconds | Each API key |
| Hard ceiling | 500 requests per second and 5,000 per 10 seconds | Each API key, across everything |
| Credits | 1 credit for each number checked | Upload and API |
At the standard limit of 200 requests per 10 seconds, a list of 100,000 numbers takes at least 83 minutes to send through the API.
The standard limit is 20 requests a second. This table divides each list size by 20 and sends one request for each number, so the times are the least the sending takes. A CSV upload sends the whole list as one file instead.
| Numbers in the list | Least time through the API | Credits at 1 credit a number |
|---|---|---|
| 1,000 | 50 seconds | 1,000 |
| 10,000 | 8 minutes 20 seconds | 10,000 |
| 100,000 | 1 hour 23 minutes 20 seconds | 100,000 |
| 1,000,000 | 13 hours 53 minutes 20 seconds | 1,000,000 |
A bulk phone check costs 1 credit a number, about $4.95 per 1,000 on Starter and $2.00 on Enterprise.
These are the monthly plans on the pricing page. The line type, carrier, porting status and Do Not Call columns come back on the same check. Every plan starts with a 7-day free trial, and the same credits pay for every other 1Lookup check.
| Plan | About per 1,000 lookups | Monthly price | Number checks included |
|---|---|---|---|
| Starter | $4.95 | $99 | 20,000 |
| Growth | $3.52 | $299 | 85,000 |
| Professional | $3.20 | $799 | 250,000 |
| Enterprise | $2.00 | $1,999 | 1,000,000 |
You can check a whole list of phone numbers with one CSV file.
The free tool checks one number at a time. With a 1Lookup account you upload a CSV file, pick the column that holds the numbers and download the file back with the results added on every row. These are 7 of the columns it adds, in the order the file has them, shown for four invented numbers with invented carriers.
phone
+1 415 555 0132
(212) 555-0141
718-555-0187
3055550163| phone | Carrier Full Name | Line Type | DNC Listed | LRN | State | Number Status | Porting Status |
|---|---|---|---|---|---|---|---|
| +1 415 555 0132 | Sample Wireless | MOBILE | No | 4155550100 | CA | ACTIVE | PORTED |
| (212) 555-0141 | Sample Local Exchange | LANDLINE | Yes | 2125550000 | NY | ACTIVE | NOT_PORTED |
| 718-555-0187 | Example Telecom, LLC | VOIP | No | 7185550100 | NY | ACTIVE | PORTED |
| 3055550163 | Sample Wireless | MOBILE | No | 3055550000 | FL | INACTIVE | NOT_PORTED |
- 1 credit a number, the same price as one API lookup.
- Up to 2 million rows and 1 GB in one CSV file.
- Up to 200 API requests per 10 seconds for each API key.
You land on the signup page, and after signup the batch upload page takes your CSV file.
The phone API returns each row of the results file as JSON from one request.
Send the number in international format (+1 and ten digits for the US) to the phone endpoint with your API key. Each request costs 1 credit, and standard lookups are limited to 200 requests per 10 seconds for each key. The line type is in classification.line_type, the porting status in classification.portability_status and the Do Not Call flag in insights.compliance.dnc_listed. The response below is for an invented number.
curl -X POST https://app.1lookup.io/api/v1/phone \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phone_number": "+14155550132"}'import requests
response = requests.post(
"https://app.1lookup.io/api/v1/phone",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"phone_number": "+14155550132"},
)
data = response.json()["data"]
print(data["classification"]["line_type"])const response = await fetch('https://app.1lookup.io/api/v1/phone', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ phone_number: '+14155550132' })
})
const { data } = await response.json()
console.log(data.classification.line_type)Response
{
"success": true,
"data": {
"request": { "type": "phone", "input": "+14155550132" },
"classification": {
"line_type": "MOBILE",
"number_status": "ACTIVE",
"portability_status": "PORTED"
},
"insights": {
"location": { "timezone": "America/Los_Angeles" },
"routing": { "lrn": "4155550100", "is_ported": true },
"compliance": { "dnc_listed": false },
"raw_api_fields": {
"network": "Sample Wireless",
"ocn": "0000",
"ratecenter": "SAMPLE CNTRL",
"state": "CA",
"country": "US"
}
},
"metadata": { "credits_used": 1, "credits_remaining": 9998 }
}
}To run the same check on every number you collect, see our phone validation API.
It gives your own file back with columns added.
Every result sits on the row of the number it belongs to, so there is nothing to match back up.
It checks up to 2 million numbers in one file.
A CSV file of up to 1 GB and 2,000,000 rows goes in as one upload, so a large list does not need a loop of requests.
It says UNKNOWN or N/A when it has no record.
A number with no carrier record shows UNKNOWN, and the Do Not Call column reads N/A outside the US, so a gap is never filled with a guess.
It never calls or texts a number.
The check reads records, so no phone rings and the owner of a number does not know it was checked.
Who uses this tool
Sales and marketing teams check a bought or exported list before a campaign.
The line type and number status show which numbers are worth a call or a text before any money is spent on a send.
Teams that send texts keep landlines out of the send.
Sorting the results file by line type separates mobile numbers from landlines and VoIP numbers.
Call centers sort a list by time zone and Do Not Call flag before dialing.
The Timezone and DNC Listed columns tell a dialer when to call each US number and which numbers to leave out.
CRM owners check old contact records before they move them to a new system.
A results file shows which stored numbers are inactive or invalid, so the move carries only numbers that work.
Frequently asked questions
How do I check a list of phone numbers in bulk?
Save the list as a CSV file with a header row and one number on each line, upload it on the batch upload page and pick the column that holds the numbers. The file comes back with the results added to every row. A 7-day free trial opens CSV upload and the API.
Is there a free bulk phone number checker?
This page checks one number free, with no signup, and shows a sample file going in and coming out. Checking a whole list uses credits at 1 credit a number, and a 7-day free trial opens the CSV upload.
How many phone numbers can I check in one CSV file?
Up to 2,000,000 rows in a file of up to 1 GB. The upload takes CSV files only, and the file needs a header row and at least one data row.
What does the results file contain for each number?
Among its columns are Carrier Full Name, Line Type, Timezone, DNC Listed, LRN, OCN, State, Country, Rate Center, Number Status and Porting Status, added to the right of your own columns. This page lists seven of them in the table above.
What does a bulk phone check show for numbers outside the US?
The line type, the carrier where the network lists one, the country and the time zone. The DNC Listed column reads N/A for a number outside the US and the LRN column is empty, because those two come from US records.
What format should the numbers in my file be in?
Give each number its own line. US and Canadian numbers can be written with or without punctuation, such as (212) 555-0141 or 2125550141. A number from another country is written with its country code, such as +44 20 7946 0958, and an international number has at most 15 digits.
What happens to a row that is not a phone number?
The upload skips a row it cannot read as a US or Canadian number or as an international number with its country code, and it checks the rest of the file.
What is the rate limit of the phone validation API?
Standard lookups, which include the phone endpoint, are limited to 200 requests per 10 seconds for each API key, with a ceiling of 500 requests per second and 5,000 per 10 seconds. A request over the limit returns 429 with a Retry-After header. The number type, HLR and MNP endpoints have their own limit of 1,000 requests a minute.
How long does it take to send a list through the API?
At 200 requests per 10 seconds, 1,000 numbers take at least 50 seconds and 100,000 take at least 83 minutes 20 seconds when each request carries one number. A CSV upload sends the whole list as one file, which suits anything above a few thousand numbers.
How much does a bulk phone number check cost per number?
A bulk phone number check costs 1 credit per number, in a CSV upload or through the API. That is about $4.95 per 1,000 on the Starter plan, $3.52 on Growth, $3.20 on Professional and $2.00 on Enterprise. The free tool on this page checks one number at a time, and a 7-day free trial opens the upload.
Does a bulk phone number check tell me whether a number is still active?
It shows the number status on the carrier's record: ACTIVE, INACTIVE or INVALID for a US or Canadian number, and VALID or INVALID for a number elsewhere. It does not call the number, and it cannot tell whether the person who gave you the number still has it. For a number you hold consent for, the FCC's Reassigned Numbers Database answers whether it was permanently disconnected since the date you got that consent.
Why do phone lists go out of date?
People change numbers, carriers and plans. The FCC estimated in 2018 that about 35 million US numbers were disconnected and made available for reassignment each year, carriers held 72.3 million disconnected numbers in aging at the end of 2024, and about 40.5 million numbers were ported in 2024.
How long can a disconnected number wait before it is assigned to someone else?
Under 47 CFR 52.15, a carrier may age a disconnected residential number for 45 to 90 days and a disconnected business number for 45 to 365 days before it assigns the number again.
Is bulk phone number validation the same as bulk phone number verification and lookup?
The names are used loosely. Validation checks that a number is real, lookup returns details such as the carrier and line type, and verification often means confirming that the person behind the number is reachable. This check does validation and lookup. It does not confirm who answers the phone.
Can I check Do Not Call status in bulk?
Yes, for US numbers. The results file has a DNC Listed column that reads Yes or No. To also flag known TCPA litigators, the phone scrub runs on a list at 10 credits a matched number, and the TCPA litigator check on this site shows how it works.
Can I run the check from my own software instead of a file?
Yes. Send each number to the phone endpoint of the API with your key. Each request costs 1 credit and returns the line type, number status, porting status, Do Not Call flag, routing number and carrier details as JSON.
Does the person know I checked their number?
No. The check reads records only. No call or text goes to the number, so its owner is never told.
These pages answer the question that comes after a bulk phone check.
The first three digits of a US number tell you where it was assigned.
Every area code has its own page with the places it covers, the local time there, and what to do when a call from it looks spoofed. These are the codes people look up most.
- 213Los Angeles
- 646New York City
- 917New York City
- 202Washington
- 404Atlanta
- 702Las Vegas
- 786Miami
- 415San Francisco
- 206Seattle
- 954Fort Lauderdale
- 323Los Angeles
- 929New York City
Area code 213, downtown Los Angeles, also has a page for each of its 786 prefixes, with the company NANPA lists as the holder.
New area codes catch people out, because a number from one looks unfamiliar even when it is local. These are the newest working codes.
- 465New York, since Jun 2026
- 483Alabama, since Feb 2026
- 471Mississippi, since Jan 2026
- 679Michigan, since Nov 2025
- 457Louisiana, since Sep 2025
- 729Tennessee, since Sep 2025