Messaging

Bulk phone number validator

Paste or upload a CSV of phone numbers and check every row's validity, country and type at once.

Free, no accountIn your browser

One per line, or the first column of a CSV. Nothing is uploaded anywhere - up to 600,000 characters, roughly 44,000 rows depending on formatting, which this page can still check in a few seconds on every change. A header row with no digits in it is skipped automatically.

Two letters, for a number written without its +country code. Ignored when the number starts with +.

Try

Result

Nothing to validate yet

Paste a list, or upload a CSV, and every row is checked as you type.

What this is

This bulk phone number validator checks a whole list of numbers at once - pasted one per line or uploaded as a CSV - against each number's own numbering plan, and gives back one row per input with its E.164 form, country, type and whether it is a real, assigned range, ready to copy or download as a CSV.

Each row is checked exactly the way the single-number phone number validator checks one: a number is valid when its shape matches a real, assigned range in its country's numbering plan, not merely a length that could belong to it. This tool only adds the row handling - a header line, blank lines and duplicates - that a real exported list actually contains.

How to read the result

Paste a list, one number per line, or the first column of a CSV; or upload a .csv or .txt file and its text is read straight into the field - the file itself is never sent anywhere. A header row with no digits in it is dropped automatically, and a national number written without its own country code uses the country hint field below as its default.

The facts row gives the totals - rows, valid, invalid, duplicates - and the table below lists every row in the order it was given, with its E.164 form, country, type and a yes-or-no for valid. The table can be downloaded as the same CSV it shows on screen, and the findings above it call out how many rows could not be read at all, how many were the right length but not assigned, and how many repeat a number already seen earlier in the list.

A malformed number breaks every one of the checks in sending an SMS that arrives before any of them get a chance to matter - running a list through here first is the natural step before porting it in or loading it into a campaign.

Common mistakes

What goes wrong most often, and how to tell.

  • Reading "valid" as "this line is in service"Valid means the shape matches a real assigned range, not that the line answers today. Only a live carrier check - out of scope here - can say that, for one row or a thousand.
  • Leaving off the country hint for a list of national numbersA number written without its +country code is ambiguous on its own. The country hint field is used as the default for every row that has no + of its own - without it, those rows cannot be read at all.

Questions

What people ask about this tool.

  • No. Each row is checked the same way the single-number validator checks one number: whether its shape matches a real, assigned range in a numbering plan - never whether the line answers today or who carries it.
  • A blank line is dropped. A leading line with no digits in it at all - the usual shape of a header like "Phone Number" - is read as a header and dropped too; every other line is checked.
  • No. Your browser reads the file's text straight into the same field a pasted list would fill - nothing is uploaded to a server, and the result is built the same way either way.
  • By comparing each row's E.164 form against every row before it - two numbers written differently but equal once formatted (say, with and without spaces) still count as the same duplicate.

Sources

Every fixed value here comes from the provider’s own documentation. These pages change, so each says the day it was last read.

Use it from the API

The same check, as one request.

Request
curl -X POST https://resellerhq.com/api/tools/bulk-phone-number-validator \
  -H "Content-Type: application/json" \
  -d '{"numbers":"","country":""}'
Response
{
  "tool": "bulk-phone-number-validator",
  "input": {
    "numbers": "",
    "country": ""
  },
  "result": {
    "verdict": {
      "tone": "neutral",
      "headline": "Nothing to validate yet",
      "summary": "Paste a list, or upload a CSV, and every row is checked as you type."
    },
    "findings": [],
    "parts": []
  }
}

Resell phone numbers that receive this kind of message, under your own brand.

Get started

Company names and logos are trademarks of their owners, shown only to identify each service.