{"uid":"cap_rJFI9T5zMZzMlPT2_3I9M","slug":"402utils-phone-number-validator-3d0370d1","name":"402utils Phone Number Validator","description":"Validate and normalize a phone number with full Google libphonenumber metadata: strict validity against each national numbering plan, E.164 / international / national formats, country detection (correct across shared codes like +1 and +44) and line type (mobile, fixed_line, toll_free, voip…) where the plan distinguishes it. Pass ?country=FR to parse national formats. Local. ?attest=1 → Ed25519-signed.","url":"https://402utils.com/v1/phone-check","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"The number, E.164 (+33612345678) or national."},"attest":{"type":"string","description":"Set to 1 for an Ed25519-signed attestation of the result (audit trail)."},"country":{"type":"string","description":"ISO alpha-2 default country for national input."}},"description":"Query params. `phone` required; `country` helps parse national formats."}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["valid"],"properties":{"e164":{"type":"string"},"type":{"type":"string","description":"mobile | fixed_line | fixed_line_or_mobile | toll_free | premium_rate | voip | … — absent when the plan does not distinguish."},"valid":{"type":"boolean","description":"Strict validity per the national numbering plan."},"country":{"type":"string","description":"Detected ISO alpha-2; absent when undeterminable."},"national":{"type":"string"},"possible":{"type":"boolean","description":"Length-plausibility (looser than valid)."},"attestation":{"type":"object","properties":{"alg":{"type":"string","const":"Ed25519"},"sig":{"type":"string","description":"base64url Ed25519 signature over the canonical JSON of payload."},"payload":{"type":"object","properties":{"ts":{"type":"string","format":"date-time"},"kid":{"type":"string","description":"Key id — matches a key in the .well-known document."},"endpoint":{"type":"string"},"resultSha256":{"type":"string","description":"SHA-256 of the canonical JSON of the result (attestation excluded)."}}}},"description":"Present only with ?attest=1. Ed25519 signature over the canonical result; verify against /.well-known/402utils-attestation.json."},"international":{"type":"string"}}}}}}},"responseSchema":{"type":"json","example":{"e164":"+442079460958","type":"fixed_line","valid":true,"country":"GB","national":"020 7946 0958","possible":true,"international":"+44 20 7946 0958"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_DBmGP2uFBx1WYRti0Q2Ex","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates and normalizes a phone number using Google libphonenumber, returning E.164/international/national formats, country detection, and line type classification","exampleAgentPrompt":"Can you validate the phone number +33612345678 for me — check if it's a real number, what country it belongs to, and whether it's a mobile or landline?","exampleUseCases":null,"resultDescription":"A JSON object with: valid (strict boolean per national numbering plan), possible (looser length-plausibility boolean), e164 (normalized E.164 string), national (national format string), country (ISO alpha-2), and type (mobile, fixed_line, toll_free, voip, etc. where the plan distinguishes). Optionally, an attestation object with an Ed25519 signature over the canonical result for audit trail purposes.","failureModes":["Phone number is unparseable — returns valid:false with no e164/country fields","Country code provided doesn't match number format — may return valid:false","Shared country codes like +1 may return undetermined country when number is ambiguous","Network or service error returns a non-200 HTTP status","attest=1 requested but key unavailable — attestation object absent or error"],"whenToPreferThis":"Use this endpoint when you need strict national-plan-level phone validation (not just length heuristics), E.164 normalization, country detection across shared codes (+1, +44), or line-type classification. Prefer over regex-based validators when accuracy matters. Use the ?attest=1 option when you need a cryptographically signed audit trail of the validation result.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:52:46.279Z","isFirstParty":false}