{"uid":"cap_CsIlVyY1QcaS47b221Ps-","slug":"textkit-unicode-normalize-0c98cebb","name":"TextKit Unicode Normalize","description":"General-purpose text, Unicode and date utilities for AI agents: homoglyph folding and spoofed-domain detection, Unicode script detection, NFC/NFD normalization, grapheme counting, date description (weekday, ISO week, quarter, leap year), business-day counting, slugify, FNV-1a hashing, Shannon entropy, string format detection (uuid, email, url, ipv4, jwt, iban), byte-encoding detection and human-readable byte sizes. Pay per request in USDC on Base via x402 - no signup, no API key, no KYC.","url":"https://textkit.johnaio281.workers.dev/api/tk/unicode-normalize?utm_source=zero.xyz","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":["text"],"properties":{"form":{"enum":["NFC","NFD","NFKC","NFKD"],"type":"string","description":"default NFC"},"text":{"type":"string"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":{"type":"json","example":{"form":"NFC","output":"é","changed":true,"firstDifferenceIndex":0}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","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.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_iUNGlJVOMvCY8u9zZEdDJ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Normalizes a Unicode string to NFC, NFD, NFKC, or NFKD form and reports whether the text changed and where the first difference occurred.","exampleAgentPrompt":"Can you normalize this string to NFC form so I can safely compare it: 'café' — it might have mixed composed and decomposed characters?","exampleUseCases":[{"title":"Normalize user input before database storage","prompt":"I'm storing user-submitted names in my database and want them all in NFC form so comparisons are consistent — can you normalize this string: 'Ångström'?"},{"title":"Detect hidden unicode differences in text","prompt":"These two strings look identical but behave differently in my code — can you normalize both to NFC and tell me where the first difference shows up? Here's the suspicious one: 'naïve'"},{"title":"Prepare text for consistent hashing","prompt":"Before I hash this filename for deduplication I want to make sure it's in NFKC form so visually equivalent variants produce the same hash — can you normalize 'ﬁle＿naｍe.txt' using NFKC?"}],"resultDescription":"A JSON object with: 'form' (the normalization form applied, e.g. 'NFC'), 'output' (the normalized string), 'changed' (boolean indicating whether the input differed from the output), and 'firstDifferenceIndex' (integer index of the first character position that changed, or null if unchanged).","failureModes":["Missing required 'text' query parameter returns an error","Invalid 'form' value (not NFC/NFD/NFKC/NFKD) returns a validation error","Payment failure via x402 if insufficient USDC balance on Base","Very long strings may hit Cloudflare Worker request size limits","Non-UTF-8 encoded inputs may cause unexpected results"],"whenToPreferThis":"Choose this endpoint when you need a lightweight, pay-per-use Unicode normalization call without signing up for an API key or managing credentials. It is ideal for AI agents that occasionally need to normalize strings as part of a larger pipeline (e.g., before comparison, hashing, or storage) and want a simple REST interface with a predictable $0.003/call cost in USDC. Prefer standard language library functions if you need high-volume bulk normalization or are already running server-side code.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-22T12:40:34.154Z","isFirstParty":false,"canonicalSlug":"textkit-unicode-normalize-0c98cebb"}