{"uid":"cap_n6tpoPjfXL0V1S7Shr3w3","slug":"x402-deployer-x402-deployer-workers-dev-e1d1e6e3","name":"Unicode Text Normalizer with Script Classification & Homoglyph Detection","description":"Text normalize. Unicode NFC / NFD / NFKC / NFKD normalization plus per-codepoint script classification (Latin / Cyrillic / Greek / Hebrew / Arabic / CJK / etc.), homoglyph detection (the Cyrillic 'а' that looks like Latin 'a'), and invisible / RTL / BOM detection. Same backend as unicode-normalize. Pure JS — no upstream API.","url":"https://x402-deployer.x402-deployer.workers.dev/text-normalize","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"required":["text"],"properties":{"form":{"enum":["NFC","NFD","NFKC","NFKD"],"type":"string","description":"Default 'NFC'."},"text":{"type":"string","description":"Input text. Up to 100000 chars."}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"form":{"type":"string"},"normalized":{"type":"string"},"is_mixed_script":{"type":"boolean"},"scripts_detected":{"type":"array","items":{"type":"string"}}}}}}}},"responseSchema":null,"example":{"request":{"input":{"body":{"form":"NFC","text":"Hello world"},"type":"http","method":"POST","bodyType":"json"}},"response":{"form":"NFC","source":"Intl.Segmenter + Unicode 16.0 (built-in)","normalized":"Hello world","hidden_chars":[],"is_mixed_script":false,"scripts_detected":["Latin"],"homoglyph_warnings":[]}},"exampleRequest":{"form":"NFC","text":"Hello world"},"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","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.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Um5CJaIy2oLyb8R4CcyaR","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Normalizes Unicode text to NFC/NFD/NFKC/NFKD forms and classifies each codepoint by script, detecting homoglyphs, invisible characters, RTL markers, and BOMs","exampleAgentPrompt":"Can you normalize this text to NFKC form and check it for homoglyphs or invisible characters: 'pаypal.com' — I suspect that 'а' might be a Cyrillic character pretending to be Latin?","exampleUseCases":null,"resultDescription":"Returns the normalized text in the requested Unicode form (NFC/NFD/NFKC/NFKD), per-codepoint script labels (Latin, Cyrillic, Greek, Hebrew, Arabic, CJK, etc.), flags for detected homoglyphs (e.g. Cyrillic 'а' vs Latin 'a'), and presence of invisible characters, RTL override markers, and byte order marks.","failureModes":["Invalid or missing normalization form parameter returns an error","Malformed request body returns 400","Empty input text may return empty result or validation error","Extremely long strings may time out or be truncated"],"whenToPreferThis":"Choose this endpoint when you need pure client-side Unicode normalization combined with script-level security analysis — especially for detecting homoglyph spoofing, mixed-script attacks, or invisible/directional character injection in usernames, URLs, or untrusted text input. Prefer this over generic text sanitizers when per-codepoint script classification is needed alongside normalization.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-16T06:53:38.503Z","isFirstParty":false}