Bulk Phone & Postal Code Cleaner
Paste a messy list — one value per line or a whole CSV column — and get every North American phone number normalized to +1 (XXX) XXX-XXXX, every Canadian postal code checked against the real A1A 1A1 rules, and every US ZIP validated. Each row gets a status and a plain-English reason, and the whole thing exports as CSV.
Collez une liste et cliquez sur Nettoyer la liste
Vous obtiendrez un tableau ligne par ligne montrant ce qui était déjà valide, ce qui a été reformaté, et pourquoi exactement quelque chose a échoué — plus un CSV que vous pouvez remettre directement dans votre CRM.
Ce qui compte comme valide (et pourquoi)Règles de chiffres du NANP, les 18 lettres de district postal canadiennes, formats ZIP
Numéros de téléphone (NANP)
Un numéro nord-américain est de la forme NPA-NXX-XXXX où N vaut 2-9 et X vaut 0-9. L'indicatif régional et le code de central doivent tous deux commencer par 2-9, et aucun ne peut être un code N11 (211, 311 … 911) car ceux-ci sont réservés aux services. 370-379 et 960-969 sont réservés pour une expansion future, et 555-0100 à 555-0199 est le seul bloc réservé aux numéros fictifs. Les postes (x, ext, poste) sont conservés.
Codes postaux canadiens
Le format est A1A 1A1. Huit lettres — D, F, I, O, Q, U, W, Z — ne sont utilisées à aucune position, surtout parce qu'elles sont faciles à confondre avec des chiffres. La première lettre indique un district postal, et seules ces 18 lettres sont attribuées :
Un 0 en deuxième position indique une route rurale, ce que l'outil signale.
Codes ZIP américains
Cinq chiffres, ou neuf pour un ZIP+4 (normalisé en 12345-6789). Les zéros de tête sont conservés — une erreur fréquente quand une liste est passée par un tableur, qui transforme 01234 en 1234.
D'où viennent ces règles
- Statistique Canada — Spécifications techniques du code postalConfirme le format ANA NAN, les huit lettres inutilisées (D, F, I, O, Q, U, W, Z), la carte des districts postaux par première lettre et la règle du « 0 en deuxième position » pour les routes rurales.
- North American Numbering Plan — structure et codes réservésRestrictions de chiffres NPA/NXX, codes de service N11, réserves d'expansion 37X/96X et la plage fictive 555-01XX.
Cet outil valide le format et la structure, pas le fait qu'un numéro ou une adresse soit réellement en service — cela nécessite une vérification en direct auprès d'un opérateur ou de Postes Canada. Tout s'exécute dans votre navigateur par blocs, afin qu'un collage de 10 000 lignes reste réactif et que votre liste de contacts ne soit jamais téléversée nulle part.
Real validation, not just a length check
Most bulk cleaners count digits and stop there. That accepts a lot of junk that will bounce the moment you try to dial it or mail it. This one applies the actual structural rules:
- The exchange code is checked, not just the area code. In the NANP both the 3-digit area code and the 3-digit exchange code must start with 2-9, and neither can be an N11 code (211, 311 … 911). A number like
416-055-1234has ten perfectly good digits and is still impossible — this tool says why. - Reserved ranges are rejected. Area codes 370-379 and 960-969 are held back for future expansion and aren't in service, and 555-0100 to 555-0199 is the block officially reserved for fictional numbers — so a placeholder that slipped into your CRM gets caught rather than exported.
- Postal-code letters are checked against the real alphabet. Canada uses only 18 of the 26 letters: D, F, I, O, Q, U, W and Z appear nowhere in a postal code. The first letter also has to be an assigned postal district, so
D1A 1A1is rejected with a reason rather than passing a naive[A-Z]\d[A-Z]pattern. - Leading zeros survive. ZIP
01234stays five digits instead of becoming 1234 — the classic damage a spreadsheet does to an address list on the way in.
Built for big lists
Rows are processed in chunks with the main thread handed back between each one, so a paste of several thousand contacts shows a live progress bar instead of freezing the tab. Nothing is uploaded: the entire list stays in your browser, which matters when the file is your customer database. Duplicates are flagged after normalization, so 416-555-1234 and (416) 555 1234 are correctly caught as the same number.
Questions fréquentes
How do I bulk clean phone numbers and postal codes from a CSV for free?
Paste the list into the box above - either one value per line, or paste whole CSV rows and pick which column holds the data. Click Clean list and every row is normalized and validated: phone numbers become +1 (XXX) XXX-XXXX, Canadian postal codes become A1A 1A1, and US ZIPs become 12345 or 12345-6789. You get a per-row table showing valid, fixed or invalid with the reason, then download a CSV report or copy just the cleaned values back into your spreadsheet. It's free, needs no account, and there's no row limit.
Which letters are not used in Canadian postal codes?
Eight of them: D, F, I, O, Q, U, W and Z are not used anywhere in a Canadian postal code, largely because they're easily confused with digits or with each other when handwritten or machine-read. That leaves 18 usable letters. The first letter carries extra meaning - it identifies a postal district, running roughly east to west from A (Newfoundland and Labrador) through V (British Columbia), with X for the Northwest Territories and Nunavut and Y for Yukon. This tool checks both rules, so an unassigned district letter is reported as an error rather than quietly accepted. A zero in the second position means a rural route, which the tool notes for you.
What makes a phone number structurally invalid?
Under the North American Numbering Plan a number is NPA-NXX-XXXX, where the first digit of both the area code and the exchange code must be 2-9. So an exchange starting with 0 or 1 is impossible even though the digit count looks right - that's the check most tools skip. N11 codes (211, 311, 411, 511, 611, 711, 811, 911) are reserved for services and can't be an area code or an exchange. Area codes 370-379 and 960-969 are reserved for future expansion. And 555-0100 through 555-0199 is the range set aside for fictional numbers, so those are flagged as placeholders rather than treated as real contacts.
Can it handle a mixed list of phone numbers, postal codes and ZIPs?
Yes - that's the default. Each row is auto-detected on its own: letters plus three digits reads as a Canadian postal code, five or nine digits as a ZIP, ten or eleven digits as a phone number. If a row is ambiguous the tool tries each type in turn and uses whichever validates. If you know your column is all one type, set the 'Expect' dropdown to that type and anything that doesn't match will be reported as invalid instead of being reinterpreted - useful for catching a ZIP that ended up in your phone column.
Will a list of several thousand rows freeze my browser?
No. The list is processed in chunks of 500 rows with control handed back to the browser between chunks, so the page stays responsive and you get a live progress bar. A few thousand rows finish in well under a second. On screen the table shows the first 1,000 rows to keep rendering fast, but the CSV download always contains every row you pasted.
Does this check whether a number or address really exists?
No, and no free client-side tool can. This validates format and structure - that a number obeys the NANP's digit rules and that a postal code uses a real district letter and the correct letter/digit pattern. Confirming that a phone line is actually in service or that a postal code maps to a deliverable address needs a live carrier lookup or a Canada Post address validation service. What this catches is the large share of list problems that are structural: typos, transpositions, placeholder numbers, spreadsheet-mangled ZIPs and inconsistent formatting.