Validation you can actually verify.
Phone, email and IP checks that name every test they ran — and every one they didn't. The public benchmark →
Credits never expire. Cancel is a button, not a support ticket.
Include the country code — try or .
SampleA real response for this input — press Verify to run it live.
Checked
Not claimed — we won't fake it
Works with
The difference
Same number. Two answers.
Only one of them tells you what it actually checked.
A typical bare response
{
"valid": true
}
No way to tell which checks produced it.
Boundstone
{
"valid": true,
"line_type": "fixed_line_or_mobile",
"checks": {
"performed": ["format", "region",
"line_type", "allocation"],
"not_performed": ["carrier_lookup",
"ported_status", "hlr_liveness"]
}
}
Every test named. Both lists, every call.
The left panel is a generic shape, not a quoted vendor response. Dated head-to-heads live on the compare pages.
What a wrong "valid" costs downstream:
Dead numbers still get dialed, by reps on payroll
+1 (415) 555-0000Disconnected
Ported numbers route to last year's network
+1 (415) 555-0107Ported · stale
Disposable addresses dent the whole domain's reputation
x9f2q@mailinator.comDisposable
One call. Every check named.
Four stations. The response tells you which of them ran.
- Format
Allocated, not merely plausible
- Region
Country from the numbering plan
- Line type
Mobile, fixed or VoIP — abstains when unclear
- Livenessopt-in
Real HLR dip — 5 credits, refunded on abstain
The response, annotated
1{ "valid": true,
"line_type": "fixed_line_or_mobile",
"checks": {
2 "performed": ["format", "region",
"line_type", "allocation"],
3 "not_performed": ["carrier_lookup",
"ported_status", "hlr_liveness"] } }
- 1The verdictOne field. Never a confidence score we invented.
- 2
checks.performedThe three that ran, on this call. - 3
checks.not_performedThe one that did not. Named, never faked. - Send
hlr:trueto run the fourthIt moves up into performed. 5 credits, refunded on abstain.
Phone
Region, line type and E.164. Carrier and liveness are a paid opt-in.
Syntax, live MX, disposable and role. Mailbox and catch-all: not_performed.
IP
Validate and classify. Geolocation and proxy detection: not_performed.
Every plan gets the whole API.
No feature gates. No "call us" tier. Paid credits never expire.
Starter is 1Lookup's $99 tier minus $20, and where they offer a 7-day trial this free tier doesn't end (re-checked 9 August 2026). Full pricing, printed early on purpose →
The receipts
Nobody had benchmarked phone validation. So we froze one.
1,000 numbers with known ground truth, four vendors, scoring rules checksummed before a single query. Every vendor sees its results before publication.
Already done — verify it now
Published, tagged and checksummed on 25 July 2026, before a single vendor was queried. It cannot be edited to suit the results.
Read the frozen document on GitHub →sha256
24fb254ed62b0aef493520e6
0d29652234405cb7e77a7dce
dfa1f636ee34969d
tag methodology-v1.0
Promises with clause numbers.
Ours are in the Terms, not the footer — where they're enforceable.
You have no accuracy numbers yet. Why trust you?
Correct — and we won't invent them. They arrive with Benchmark № 001: methodology frozen and checksummed before results, with our own API scored under the identical protocol, win or lose. Until then, judge the response — it tells you exactly what it did and didn't verify.
Is the free tier actually free, or a trial?
Actually free. 250 credits every month, no card, forever. Identity checks apply above the free tier, not on it.
What happens when I run out of credits?
An explicit 402 with a plain message. Nothing is silently billed as overage — topping up is always your decision.
Do you do live carrier and reachability?
Yes, as a paid opt-in: a real HLR network dip at 5 credits (hlr:true, paid plans). A dip the network can't resolve is refunded. The base response marks carrier and liveness not_performed — named, never faked.
The full buyer's checklist — 12 questions to ask any of us →
250 credits a month. No card. Every check named.
The whole API on the free tier — and the promises that make it safe to try are Terms clauses, not marketing.
Start free nowNot ready? One email when Benchmark № 001 publishes — measured accuracy, ours included, win or lose.
The API is live — start free without waiting. This list gets benchmark № 001 the day it publishes. One email. We validate emails for a living — we're not going to spam yours.