Phone normalization API
Format and normalize phone numbers
Send phone numbers in whatever shape they arrived and get a single, consistent format back — so lookups, deduplication, and dialing stop failing on formatting.
The problem
The same phone number shows up as "(704) 555-1234", "704.555.1234", and "+17045551234". Stored inconsistently, it breaks equality checks, splits duplicates, and makes any integration that dials or matches on the field unreliable.
What you get
- Normalizes varied input into one consistent, canonical format
- Makes phone-based dedupe and lookups actually match
- Runs inline at ingestion so bad formatting never lands
- Deterministic output you can store and compare directly
Call it in one request
Plain HTTPS and JSON against /api/v1/normalize-phone. Use the SDK for typed calls, or hit the endpoint directly — same contract either way.
cURL
curl https://zapinner.com/api/v1/normalize-phone \
-H "Authorization: Bearer zap_live_••••••" \
-H "Content-Type: application/json" \
-d '{"data":[{"phone":"(555) 123-4567"}],"options":{"field":"phone","default_country_code":"1"}}'JavaScript (fetch)
const res = await fetch("https://zapinner.com/api/v1/normalize-phone", {
method: "POST",
headers: {
Authorization: "Bearer zap_live_••••••",
"Content-Type": "application/json",
},
body: JSON.stringify({
"data": [
{
"phone": "(555) 123-4567"
}
],
"options": {
"field": "phone",
"default_country_code": "1"
}
}),
})
const data = await res.json()@zapinner/sdk
import { Zapinner } from "@zapinner/sdk"
const zap = new Zapinner({ apiKey: process.env.ZAPINNER_API_KEY })
const result = await zap.normalizePhone({
"data": [
{
"phone": "(555) 123-4567"
}
],
"options": {
"field": "phone",
"default_country_code": "1"
}
})Frequently asked
- What format does it return?
- A single canonical representation, so every stored number looks the same and equality checks and joins work reliably.
- Why not just strip non-digits myself?
- Stripping characters loses country context and still leaves ambiguous values. Normalization handles those consistently so downstream matching and dialing don't break.
- Can I pair it with deduplication?
- Yes — normalize first, then dedupe. Consistent phone formatting is often what makes phone-based duplicate detection work at all.
Related solutions
Ship it today with Zapinner
One API key, one consistent interface, 79 data capabilities. Start on the free plan — no credit card required.
Canonical: https://zapinner.com/solutions/format-phone-numbers
