Phonelint
Cost

What phone validation actually costs

Published 2026-09-10 · Updated 2026-09-12 · Phonelint

Phone validation is priced per lookup almost everywhere, which makes it cheap to try and surprisingly expensive to operate. The unit price looks trivial. The bill is a function of list size times how often you re-run, and the second term is the one people forget.

How per-lookup pricing actually bills

The unit price is the part everyone compares. It is rarely the part that decides the invoice. Four things sit underneath it, and none of them appear on a pricing page in a form you can compare.

None of that is sharp practice. It is what per-row pricing looks like when you actually operate it, and it is why the useful question is not "what is the rate" but "how many rows will I send, how often, and how many of them did I already know were dead".

Published rates

Checked September 2026. Providers change pricing, verify current rates before you rely on these.

ProviderProductRate
TwilioLookup: Line Type Intelligence$0.008 / request
TelnyxNumber Lookupfrom $0.0015 / query ($0.0025 with MCC/MNC)
NumverifyEnterprise plan$129.99 / month, capped at 250,000 requests

Worked example: 100,000 numbers

ProviderOne runWeekly, one month
Twilio Lookup$800$3,200
Telnyx$150 – $250$600 – $1,000
Numverify Enterprise$129.99/mo, but 400,000 requests exceeds the 250,000 cap

The re-run column is the point. Validation is not a one-time event: the list grows, contacts get re-exported, and a list validated in January is materially stale by June. Whatever your first run costs, budget for it repeatedly.

The same arithmetic at 1,000,000 rows

Scale changes which term dominates. At 100,000 rows the unit price is the story. At a million, the re-run frequency is.

ScenarioRows sent to a metered lookupAt $0.008
One unfiltered pass1,000,000$8,000
Monthly, unfiltered, one year12,000,000$96,000
Monthly, after a local pre-pass removing 40%7,200,000$57,600

The 40% figure is illustrative and varies enormously by list, which is the point of measuring your own rather than trusting a number in an article. A double-opted-in list from your own signup form will barely move. A merged or purchased list can lose more than half before any API is involved.

For reference on the time cost of that pre-pass: Phonelint processes 1,000,000 numbers in 21.2 seconds, roughly 47,000 per second, measured on a mid-range Windows laptop. The reason that matters here is not speed for its own sake. It is that a pre-pass which takes twenty seconds gets run every time, and one that takes four hours gets skipped.

Where the money actually goes

Here is the part that changes the arithmetic. On a typical messy list — bought, scraped, form-filled, or merged across systems, a large share of rows can be ruled out without any API call at all:

All four are answerable from published numbering-plan data — deterministic, instant, no per-row cost. Paying $0.008 to be told that +1 999 999 9999 is not a real number is paying for arithmetic you could have done locally.

The two-pass approach

Filter locally first, then spend on what survives:

100,000 raw rows
  -  8,000  duplicates            free
  -  6,000  malformed             free
  - 14,000  unallocated blocks    free
  - 12,000  landlines             free
  ------------------------------------
    60,000  to live lookup        $480 at Twilio rates
                                  (vs $800 unfiltered)

The proportions vary enormously by list, a double-opted-in list from your own signup form will barely move, a scraped list can lose more than half. The principle holds either way: never pay per lookup for a number that a free check already ruled out.

The cost that is not on any pricing page

Every metered provider works the same way at the point of use: your list goes to their servers. For a list of your own subscribers that may be a decision you are comfortable making. For a client's customer data held under a DPA, or any list with EU residents in it, it is a processor relationship with paperwork attached.

Under Article 28 of the GDPR a controller may only appoint a processor that offers sufficient guarantees, and the arrangement has to be governed by a contract setting out the subject matter, duration, nature and purpose of the processing. That is a procurement conversation, a data-processing agreement, and a record you have to maintain, per vendor.

Agencies feel this more sharply than in-house teams, because the data is not theirs to upload in the first place. Validation that runs locally removes the question rather than answering it: there is no transfer, so there is no processor to appoint. That is not a privacy nicety, it is a line item made of legal time.

Measure your own list before you buy anything

Every figure in this article is someone else's list. Yours will differ, often by a lot, and the difference decides whether a metered API is a sensible purchase or an expensive way to discover you had 30,000 duplicates.

You can establish the shape of it without spending anything:

  1. Count the rows you have, then count the distinct rows after normalising to E.164. The gap is your duplicate rate. Do it in that order: deduplicating raw strings misses the same number written three ways, which is the common case in any list merged from more than one system.
  2. Count what fails a format check. Wrong length for the country, stray trunk prefix, letters in the field, a column that turned out to be extensions. These cost full price at a metered provider and resolve to nothing.
  3. Count what sits in unallocated blocks. This is the number that usually surprises people, because those rows look perfectly well-formed and pass every syntax check.
  4. Count the landlines, in the countries whose plan separates them by range.

Add those four together and you have the proportion of your file that a local pass removes before any money is spent. Whatever remains is the real size of the job you are pricing. Running that count on a sample of a few thousand rows is enough to estimate the whole file, and it converts a purchasing decision that is currently a guess into arithmetic.

It is also the honest way to find out that you do not need a paid tool. A clean, double-opted-in list from your own form will lose very little at every one of those four steps, and for that list a metered lookup on the small ambiguous remainder is a perfectly good answer.

When a live lookup is still worth it

Local data has a real boundary, and being straight about it matters more than the sales pitch:

So the answer is not "APIs are a rip-off". It is that they are priced for resolving genuine ambiguity, and most of a raw list is not ambiguous. it is plainly, checkably dead.

What the same job looks like without a meter

A one-time purchase changes the shape of the decision rather than only the size of the number. With a meter, every re-run is a fresh approval: someone has to decide the clean is worth $800 this month. Without one, re-running is free, so the list gets cleaned before every send instead of quarterly when someone remembers.

Phonelint is $29, one device, unlimited local validation, with a 14-day refund on the retail tier. The honest framing is not that it replaces a lookup API. It replaces the first pass, which is the pass containing almost all of the rows and almost none of the ambiguity.

One practical caveat before the maths tempts anyone: it is Windows only, and it is not code-signed, so SmartScreen shows "Windows protected your PC" the first time you run it. Better said here than discovered after paying.

The other cost

Beyond the lookup bill: sending to a dead list costs you the messages, and it costs you carrier reputation. Delivery-failure rates feed into how carriers treat your traffic, and a throttled or filtered sender is a much larger problem than a validation invoice. That cost does not appear on any provider's pricing page, which is precisely why it gets left out of the calculation.

Common questions

Is there a free phone number validator available?

Yes. Our free cleaner handles E.164 normalisation, deduplication, country detection and malformed rows for up to 50,000 numbers, in your browser, with nothing uploaded. What free tools generally cannot do is line type, carrier or block allocation, because those require a numbering-plan database rather than a page of script. Free tiers on paid APIs exist too, and are usually sized as a trial rather than a workflow.

Can a phone validator detect fake numbers?

It can reliably detect numbers that cannot exist. A number outside any allocated block, or with the wrong length for its country, is deterministically invalid and no live lookup will disagree. What no validator can tell you is whether a real, allocated number belongs to the person who typed it. Detecting an unreachable number and detecting a dishonest one are different problems, and only the first is solvable from data.

How do I validate my phone number list?

In order: normalise every row to E.164, deduplicate after normalising rather than before, drop numbers in unallocated blocks, separate landlines from mobiles, then send only what survives to a metered lookup if you still need live carrier data. Doing it in that order is what keeps the paid step small.

Is phone validation worth paying for?

It depends which part. Paying per row to be told a malformed number is malformed is paying for arithmetic. Paying to resolve a genuinely ambiguous number, such as one that may have been ported to a different carrier, buys you something local data cannot produce. The cost-effective pattern is to make the free step do all the work it can before the paid step starts.

Is the Twilio Lookup API free?

Basic format validation is free; the fields most people actually want are not. Line Type Intelligence was $0.008 per request when checked in September 2026, billed per lookup. That split is common across providers: the free tier covers the check you could do yourself, and the paid tier covers the carrier-derived data you cannot.

Try it on a number right now

The free checker on the homepage runs the same engine the desktop app uses: validity, country, line type and carrier, one number at a time.

Check a number free