What phone number validation APIs cost over x402

Snapshot 2026-10-10

An agent can send a phone number to an endpoint that parses it, checks it against a country's numbering plan and returns a standard form, and pay for the call over x402. We index the x402 Bazaar and PayAI daily, so here is what those listings charge on 2026-10-10. The short version: we found 24 distinct priced phone number parse or validate offers, on 23 hosts. The median is USD 0.005 per call, the lowest is USD 0.001 and the highest USD 0.06. Tanod charges USD 0.001 per call, which is the lowest price listed and below the median: 0 listings are lower, 3 list the same and 21 are higher. The comparison is not like for like. Tanod checks the number against the numbering plan offline and does not look up whether it is in service, who holds it now or how risky it is; three listings add a risk score or a reachability field, and one listing takes batches of up to 50 numbers while Tanod takes one number per call. These are listed prices, matched by keyword and reviewed by name and description; we have not tested the endpoints or checked their accuracy.

Median listed x402 price for phone number validation: USD 0.005 per call across 24 offers on 23 hosts (snapshot 2026-10-10). Tanod: USD 0.001 (at the lowest listed price, below the median).

The numbers

MeasureValue
Distinct offers after review (x402 Bazaar and PayAI)24 on 23 hosts
Lowest listed price per callUSD 0.001
25th percentileUSD 0.00215
MedianUSD 0.005
75th percentileUSD 0.02
Highest listed price per callUSD 0.06
Tanod, one phone number (parse_phone_number)USD 0.001: 0 offers list less, 3 list exactly this, 21 list more

Price histogram

Listed price per call (USD)Offers
under 0.0010
0.001 (Tanod price)3
above 0.001 to under 0.0058
0.005 up to under 0.012
0.01 or more11

Prices are per call as listed, in USD, not a measure of accuracy or uptime. Where listings name a method, eight name Google libphonenumber metadata or its port, the same family of data as Tanod; the rest do not say. Two listings return a risk or fraud score (api.agentstools.dev/phone/intel and api.qonoro.ai) and one reports reachability and a caller name (x402.orthogonal.com).

24 offers

All offers found, ordered by price. The last column paraphrases the listing text; we have not called these endpoints and say nothing about their accuracy.

Host and pathListed price (USD)What the listing says
agentshelf.syntexa.ch/v1/check-phone-e1640.001whether a phone number matches the E.164 shape, no carrier lookup; a free sandbox route is mentioned. Four more templated phone routes on the same host (NANP rules, minimum 7 and 10 digits, E.164 normalisation, USD 0.002 to 0.004) are counted once
keyronne.com/api/phone0.001parses to E.164 with country calling code, region and national number; a single number or a batch of up to 50; format validation, not a line-in-service check
tools.halowerk.com/v1/phone/parse0.001German listing: any notation, country code from 150 dialling prefixes, E.164, international and national forms and a tel URI; fixed, mobile and special-rate types with a cost note for Germany
402.com.tr/api/x402/phone-check0.002normalises a typed number to E.164 and checks the length against the country's numbering plan; line type only where ranges are unambiguous, otherwise null with a reason; offline
402utils.com/v1/phone-check0.002Google libphonenumber metadata: strict validity per national plan, E.164, international and national forms, country and line type; optional Ed25519-signed answer
phone.openverbs.com/v1/parse0.002parse, validate and format (E.164, national, international, RFC 3966), region and line type; syntactic validation, no carrier lookup
api.x402node.dev/validate/phone0.0022E.164 format check, country code and mobile or line-type hints (GET with a query string); the same route is on PayAI
2s.io/api/phone/normalize0.0025libphonenumber metadata: valid, possible, E.164, national, international and RFC 3966 forms, country and type; a country is required for national numbers
api.vextorium.com/v1/phone-validate0.003E.164, national and international forms, type (mobile, landline, toll-free, VoIP), country, region, original carrier and time zones; nothing is called or stored; a Spanish route on the same host is the same service, counted once
factline.dev/v1/phone/verify0.003valid and possible checks against allocated number ranges, formats, country, and line type with an SMS-capable hint; national numbers need a country
agentsvc.io/api/v1/proxy/phone-validate0.0045libphonenumber: is_valid, E.164, national format, country and line type
api.agentstools.dev/phone/intel0.005validity, E.164, line type, country, carrier hint, time zones and a 0 to 100 fraud and KYC risk score from offline libphonenumber metadata; no live status; the same route is on PayAI
flat-rate-llm.kikoribera03.workers.dev/v1/util/phone0.005offline: E.164, country (including shared calling codes such as +1) and national length against the country's plan, tel URI and dialling form
api.aventtech.com/validate/phone0.01libphonenumber: validity, country, E.164, national and international forms and line type
archtools.dev/v1/tools/phone-validate0.01E.164 format, type and country code (short listing)
api.qonoro.ai/v1/phone/validate0.01E.164 format, country detection, line type and a risk score; deterministic
intel.rallylive.ca/data/phone-parse0.01E.164 normalisation, country from the calling code, national number, a length plausibility check and a display format; handles 50 country codes; the same route is on PayAI
hubvibe-io.com/work/phone/parse0.02libphonenumber plans: valid or not, country and area, carrier the range was issued to, line type, time zones and formats; nothing is dialled
numberintel.dev/v1/number0.02E.164, validity and plausibility, geography, time zone, and for US numbers the carrier of record, line type and in-service possibility; a bulk route for up to 100 US numbers (USD 0.5) is a separate listing, not counted
api.strale.io/x402/phone-validate0.0216validates a phone number and classifies its type: E.164, country, carrier name, mobile, landline or VOIP; 200+ countries
mimirapi.com/v1/phone/intel0.03validity as E.164, country, the carrier that holds the number and line type; a syntactically bad number is rejected before any charge
api.strale.io/x402/phone-normalize0.0324parses and normalises to E.164 with libphonenumber; detects country and carrier type and validates the format
netintel.dev/phone-intel/analyze0.05parse and validate any format, country, all format variants; line type only for NANP and UK numbers (other countries return unknown); catches unassigned NANP ranges such as 555-01XX
x402.orthogonal.com/fiber/v1/validate-phone/single0.06valid, reachable, carrier info and caller name (the listing says reachable, which suggests a live lookup)

Data file: x402-category-prices.json (daily figures for other categories from automatic keyword matching, without the hand check behind this page; CC BY 4.0).

Method

Where Tanod fits

POST /v1/phone takes a number of 1 to 64 printable characters, in international form (+CC ...) or in national form with a region (ISO 3166-1 alpha-2, such as US). It runs python-phonenumbers 9.0.40 (Apache-2.0, a port of Google's libphonenumber) offline and returns valid (fits the country's numbering plan) and possible (plausible length), the E.164, international, national and RFC 3966 forms, the country calling code, region, type (mobile, fixed_line, toll_free and others), the carrier that originally held the number range, location, time zones and any extension. Valid does not mean assigned, in service or reachable; ported numbers are not detected; type can be fixed_line_or_mobile where the plan does not tell them apart. A string that is not a phone number, or a national form without a region, is a 422 that is not charged. There is no batch route, no risk score and no live lookup. It typically answers in under 0.1 s. The number is processed in memory and not logged or stored. It costs USD 0.001 per call, paid in USDC on Base or Polygon with x402. 10 free calls per IP per UTC day are shared with the other utilpeek tools. The MCP tool is parse_phone_number at https://tanod.dev/mcp. Details are in the phone number validation API guide.

When a priced listing above is the better choice

When Tanod fits

curl (an x402 client pays the 402; shown without the payment header)
curl -s -X POST https://tanod.dev/v1/phone \
  -H 'content-type: application/json' -d '{"number": "+1 202 555 0100"}'

Price and free allowance

/v1/phone USD 0.001 per call. Free: 10 utilpeek calls per IP per UTC day, shared with the other utility endpoints (use the header X-Tanod-Free: 1). Paid in USDC on Base or Polygon with x402. MCP tool: parse_phone_number at https://tanod.dev/mcp, where the free tier is automatic.

Phone number validation API guide →

Data as of 2026-10-10. Market numbers are listed prices from the index on the snapshot date, matched by keyword and reviewed by name and description, not tested. Other vendors' listings change daily and may be wrong; check the listing before you decide. Related guides: phone number validation API, email verification API prices, IBAN and VAT validation API prices, what agents pay for over x402. Back to guides or tanod.dev. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.