Upload the file. Get it back checked.
CSV or Excel in, the same file out, with the phone, email and IP results added to every row. From the dashboard without a line of code, or through the API.
Upload and analysis are free. You see the price before anything runs.
- Held on your balance
- $187.61
- Charged so far
- $121.96
- Duplicates, free
- 1,308
Four steps, and the first two are free.
- 1
Upload
CSV, TSV, a plain list or an Excel file, up to 1 GB. Upload and analysis are free.
- 2
Confirm the columns
We find the phone, email and IP columns and show you a sample. You choose which signals to run.
- 3
See the price, then run
The cost of every unique row is held on your balance before the first one runs. Stop whenever you like.
- 4
Download
Your rows, in your order, with our columns added. As CSV, and as Excel when you uploaded Excel. A partial CSV is there while the file runs.
Built for lists that are not clean yet.
The pipeline carries over what years of running Veriphone’s and Verimail’s bulk jobs in production taught us.
Duplicates run once
A value that appears twice is checked once and charged once. The repeats point to the first row.
You pay for results only
Rows a source could not judge are free, and whatever was held but not used returns to your balance when the file ends.
Slow mail servers get a second visit
When a mail server asks us to come back later, we do, before the file is finished, instead of writing “unknown”.
Partial results, any time
Download what is done while the rest runs. Rows not reached yet are marked pending.
An email when it is done
Whoever uploaded the file from the dashboard gets an email when it completes, stops or fails. No need to watch a progress bar.
Deleted after 30 days
The upload, the working data and the result are removed 30 days after upload, with a reminder 7 days before. Delete sooner whenever you want.
Your columns, then ours.
Every row you sent comes back in the order you sent it. Our columns start with pt_, so they never collide with yours, and only the signals you ran are added.
Values that a spreadsheet would mistake for a formula are neutralized, so the file is safe to open in Excel.
| Column | What it holds |
|---|---|
| pt_phone_status · pt_email_status | Whether the row got a result, is still pending, was not run, or its source was unavailable. |
| pt_phone_valid | Whether the number is valid. |
| pt_phone_e164 | The number in E.164 format. |
| pt_phone_type | Line type: mobile, fixed_line, voip… |
| pt_phone_carrier | The carrier the number was issued to. |
| pt_phone_country | Two-letter country code of the number. |
| pt_email_verdict | deliverable, undeliverable, risky or unknown. |
| pt_email_result | The detailed result, such as catch_all or disposable. |
| pt_email_reason | Why, in one code, such as mailbox_rejected. |
| pt_ip_country | Country of the IP address. |
| pt_ip_city | City, where known. |
| pt_ip_asn · pt_ip_as_org | The network and the organization behind it. |
| pt_ip_tor · pt_ip_vpn · pt_ip_datacenter | The three anonymity flags. |
| pt_duplicate_of | The row this one repeats, when it is a duplicate. |
The same pipeline, from your own code.
/v1/files does everything the dashboard does. Small files go up in one request; larger ones use a signed upload URL that takes the bytes straight to storage.
Files need a pt_live_ key.
# 1. Upload. Direct for files up to 32 MB; larger ones use a signed upload URL. curl https://api.prooftell.com/v1/files \ -H "Authorization: Bearer $PROOFTELL_KEY" \ -F "file=@leads.csv" # 2. Choose the signals and run. The cost of every unique row is held on your balance. curl https://api.prooftell.com/v1/files/$FILE_ID/verify \ -H "Authorization: Bearer $PROOFTELL_KEY" \ -H "Content-Type: application/json" \ -d '{ "signals": ["phone_static", "email"] }' # 3. Follow progress, then ask for the 15-minute link to the result. curl https://api.prooftell.com/v1/files/$FILE_ID \ -H "Authorization: Bearer $PROOFTELL_KEY" curl https://api.prooftell.com/v1/files/$FILE_ID/download \ -H "Authorization: Bearer $PROOFTELL_KEY"
The API’s rates, row by row.
A file costs its unique rows times the signals you run, at the public rate card. No file fee, no minimum volume, and nothing for the rows that got no result.
See the rate card| Signal | Per 1,000 rows | Per 100,000 rows |
|---|---|---|
| Phone intelligence | $1.00 | $100.00 |
| Email verification | $3.00 | $300.00 |
| IP intelligence | $0.50 | $50.00 |
About files.
Which file formats can I upload?
How large can a file be?
How is a file charged?
Does a file give each row a risk score?
What happens to the other columns in my file?
Can I run files without the dashboard?
/v1/files does everything the dashboard does: create, upload, start, follow progress, stop, download, delete. Files need a live key; the sandbox does not run them.Bring the list you already have.
Create an account, take a sandbox key, make your first call in minutes.