Bulk phone validation

Bulk phone number validation: upload a CSV, download the results

CheckThatPhone validates a whole list of US and Canadian phone numbers from a CSV upload in your dashboard, with no code: up to 1,000,000 rows or 50 MB per file. We deduplicate the list, look up each unique number once, and hand back a results CSV with the same fields as the API.

Pricing matches the API: one credit per unique number, plus any add-ons you switch on. The uploader lives in the dashboard, so the first step is a free account.

How it works

  1. Sign up and choose a plan. The Free plan works for small lists once a card is on file; we verify it without charging it.
  2. Open Bulk CSV in the dashboard and choose a .csv file.
  3. Check the preview. We detect the header row and the phone column. You confirm them, optionally pick an IP column, and choose whether to keep your original columns in the results.
  4. Pick add-ons: the TCPA litigator scrub, the landline SMS lookup, and the free state DNC and complainer checks.
  5. Start the job. We email you when the results file is ready, and you download it from the dashboard.

File requirements

WhatRequirement
Format .csv only. Export Excel files (.xlsx, .xls) to CSV first.
Size Up to 1,000,000 rows or 50 MB per file.
Delimiter Comma, semicolon or tab, detected automatically.
Phone numbers Any common format. Spaces, dashes, parentheses and + are stripped; each number has to come out as 10 digits, or 11 starting with 1. Rows without a valid US or Canadian number aren't looked up or billed.
Header row Optional. Detected automatically; you can change it in the preview.
IP column Optional. Map one to add IP-based location and ipResult per row.

Deduplication

Every row with a valid number gets a row in the results file, duplicates included, so the output lines up with your input. Behind the scenes each unique number is looked up and billed once. If you map an IP column, the same number with a different IP counts as a separate lookup, because each pair is its own location check.

What's in the results file

The results CSV uses the same field names as the API response, one column per field, plus credits_used. Add-on columns only appear when you switch the add-on on. If you keep your original columns, they come first.

ColumnsIncluded
Validation and deliverability: subscriber, optDate, action, deliverable, error, reason, deactivationDate, blackList, smsEligible, doNotSms Always
Line type and carrier: nanpType, nanpCarrier, dip, dipLrn, dipPorted, dipOcn, dipCarrier, dipCarrierType, dipCarrierSubType Always
Location: ipResult, geoCountry, geoState, geoCity, geoMetro, geoSource, timezone, tzOffset Always (ipResult is filled when you map an IP column)
Litigator: litigator, litigator_type, litigator_name With the TCPA litigator scrub
Landline SMS: the five dipMessaging* fields With the landline SMS lookup
State DNC and complainers: dncStateChecked, dncStateResult, dncComplainerChecked, dncComplainerResult (plus the legacy dncOtherChecked and dncStateCovered) With the state DNC and complainer checks

Example: what goes in and what comes out

An input file with a duplicate number (fictional 555 numbers):

name,phone
Jane Example,(212) 555-0147
Sam Sample,312-555-0142
Jane Example,(212) 555-0147

The results with "keep my original columns" on. Selected columns shown; the real file has every column listed above:

name,phone,subscriber,action,deliverable,nanpType,dipPorted,dipCarrier,dipCarrierType,timezone
Jane Example,(212) 555-0147,2125550147,send,true,mobile,false,AT&T,mobile,America/New_York
Jane Example,(212) 555-0147,2125550147,send,true,mobile,false,AT&T,mobile,America/New_York
Sam Sample,312-555-0142,3125550142,send,true,mobile,true,AT&T,mobile,America/Chicago

Three rows come back and two lookups are billed. Duplicate rows sit together, in the order each number first appears in your file.

Pricing

Credits come from your plan, the same as API calls. For example, a 20,000-row file with 16,000 unique numbers uses 16,000 credits, or 32,000 with the litigator scrub on. The Free plan includes 500 credits a month; paid plans start at $5 a month, with overage down to $0.0009 per lookup. See pricing.

Data retention

We don't keep your list. The uploaded file is deleted once we've read it. The results file is deleted 1 hour after you download it, or 24 hours after the job finishes if you never do. See also our privacy policy.

CSV upload or the live API?

Use the CSV upload for lists you already have: a CRM export, a lead file, a list to scrub before a campaign. Use the live API (POST /v1/lookup) when the answer has to come back while a user is on your form or a lead is arriving. Both return the same fields at the same price.

Bulk validation: common questions

How many phone numbers can I validate at once?

Up to 1,000,000 rows or 50 MB per CSV file. For more, split the list into several files.

Are duplicate numbers billed twice?

No. Each unique number is looked up and billed once, and every duplicate still gets its own row in the results file. If you map an IP column, each number and IP pair counts once.

Can I upload an Excel file?

Not directly. Export it as CSV from Excel, Numbers or Google Sheets first. Comma, semicolon and tab delimiters are all detected.

Do you keep my list?

No. The uploaded file is deleted once we have read it. The results file is deleted 1 hour after you download it, or 24 hours after the job finishes if you never do.

Can I run a bulk job on the Free plan?

Yes, once a card is on file (we verify it with your bank without charging it). The job has to fit in the free credits you have left that month, so larger files need a paid plan.

What if part of a job fails?

If a batch of numbers cannot be processed, its rows still appear in the results file with error set to "true" and the reason "batch failed", and they are not billed.

Related