# TextKit Unicode Normalize

> TextKit Unicode Normalize is a paid API for AI agents from textkit.johnaio281.workers.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-22).

Normalizes a Unicode string to NFC, NFD, NFKC, or NFKD form and reports whether the text changed and where the first difference occurred.

## Facts

- Endpoint: GET https://textkit.johnaio281.workers.dev/api/tk/unicode-normalize?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/textkit-unicode-normalize-0c98cebb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CsIlVyY1QcaS47b221Ps-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability textkit-unicode-normalize-0c98cebb
```

Example prompt: Can you normalize this string to NFC form so I can safely compare it: 'café' — it might have mixed composed and decomposed characters?

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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.

## Output

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).

## Request schema (JSON Schema)

```json
{
 "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"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "form": "NFC",
  "output": "é",
  "changed": true,
  "firstDifferenceIndex": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/textkit-unicode-normalize-0c98cebb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from textkit.johnaio281.workers.dev](https://www.zero.xyz/host/textkit.johnaio281.workers.dev/llms.txt)
