# Tanod utilpeek Unicode Inspection

> Tanod utilpeek Unicode Inspection is a paid API for AI agents from tanod.dev, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-11).

Inspects text for invisible, bidirectional, and look-alike (confusable) Unicode characters, optionally stripping dangerous characters or normalizing the text.

## Facts

- Endpoint: POST https://tanod.dev/v1/text/unicode?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-utilpeek-unicode-inspection-ae3cf9d9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_eLGJt866HIdq-wxaQE4_K

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 tanod-utilpeek-unicode-inspection-ae3cf9d9 -d '<json body>'
```

Example prompt: Can you inspect this string for invisible characters, bidi controls, or any confusables — also strip out any invisible characters and show me the first 20 code points with their names: 'Ρaypal.com pаyment'?

## When to prefer this

Choose this endpoint when you need to detect Unicode-based security threats such as invisible characters, bidirectional text spoofing, or homoglyph/confusable character attacks in a string. It is ideal for security auditing of user input, identifiers, domain names, or smart contract code where hidden Unicode can cause exploits. It also handles Unicode normalization and code point enumeration in one call, making it more efficient than combining separate tools.

## Known failure modes

- Text exceeds 200,000 character limit — request rejected with validation error
- Invalid normalization form value — returns schema validation error
- Empty text input — rejected due to minLength:1 constraint
- Malformed JSON body — returns HTTP 400 error
- Payment not completed via x402 protocol — returns HTTP 402 Payment Required

## How this service works

One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.

## Output

Returns a JSON object containing analysis results for the submitted text: detected invisible/bidi/zero-width characters, a UTS #39 confusable skeleton if requested, the text normalized to the specified form (NFC/NFD/NFKC/NFKD) if requested, a list of the first N code points with Unicode names and categories if requested, and/or the text with all invisible/control characters stripped if requested.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "text": {
   "type": "string",
   "maxLength": 200000,
   "minLength": 1,
   "description": "The text (at most 200,000 characters)."
  },
  "skeleton": {
   "type": "boolean",
   "default": false,
   "description": "UTS #39 confusable skeleton of the whole text."
  },
  "normalize": {
   "anyOf": [
    {
     "enum": [
      "NFC",
      "NFD",
      "NFKC",
      "NFKD"
     ],
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Also return the text in this normalization form: NFC, NFD, NFKC or NFKD (default none)."
  },
  "list_chars": {
   "type": "integer",
   "default": 0,
   "maximum": 1000,
   "minimum": 0,
   "description": "List the first N code points with name / category."
  },
  "strip_invisible": {
   "type": "boolean",
   "default": false,
   "description": "Return the text without bidi / zero-width / tag / control characters."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "bidi": {
   "controls": [
    "PDF",
    "RLO"
   ],
   "trojan_source_risk": true,
   "unterminated_lines": []
  },
  "risk": "high",
  "length": 17,
  "source": {
   "data": "Unicode 14.0.0 confusables.txt + Scripts.txt (UTS #39 / UCD), bundled unmodified",
   "library": "own implementation + Python unicodedata",
   "license": "Unicode License V3"
  },
  "reasons": [
   "bidirectional embedding / override / isolate controls (Trojan Source, CVE-2021-42574)",
   "words mixing scripts (possible homoglyph spoofing)"
  ],
  "scripts": [
   {
    "count": 12,
    "script": "Latin"
   },
   {
    "count": 4,
    "script": "Common"
   },
   {
    "count": 1,
    "script": "Cyrillic"
   }
  ],
  "combining": {
   "flood": false,
   "max_run": 0,
   "first_flood_offset": null
  },
  "invisible": [
   {
    "abbr": "RLO",
    "kind": "bidi_control",
    "name": "RIGHT-TO-LEFT OVERRIDE",
    "count": 1,
    "codepoint": "U+202E",
    "positions": [
     11
    ]
   },
   {
    "abbr": "PDF",
    "kind": "bidi_control",
    "name": "POP DIRECTIONAL FORMATTING",
    "count": 1,
    "codepoint": "U+202C",
    "positions": [
     16
    ]
   }
  ],
  "categories": [
   {
    "name": "lowercase letter",
    "count": 13,
    "category": "Ll"
   },
   {
    "name": "format",
    "count": 2,
    "category": "Cf"
   },
   {
    "name": "other punctuation",
    "count": 1,
    "category": "Po"
   },
   {
    "name": "space separator",
    "count": 1,
    "category": "Zs"
   }
  ],
  "utf8_bytes": 22,
  "confusables": [
   {
    "char": "а",
    "name": "CYRILLIC SMALL LETTER A",
    "script": "Cyrillic",
    "codepoint": "U+0430",
    "looks_like": "a",
    "looks_like_codepoints": [
     "U+0061"
    ]
   }
  ],
  "utf16_units": 17,
  "normalization": {
   "NFC": true,
   "NFD": true,
   "NFKC": true,
   "NFKD": true
  },
  "unicode_version": "14.0.0",
  "mixed_script_text": true,
  "mixed_script_words": [
   {
    "word": "pаypal",
    "offset": 0,
    "scripts": [
     "Cyrillic",
     "Latin"
    ],
    "skeleton": "paypal"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-utilpeek-unicode-inspection-ae3cf9d9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tanod.dev](https://www.zero.xyz/host/tanod.dev/llms.txt)
