Unicode smuggling check for strings (prompts, tool args, URLs)

$0.005 USDC per call · Agent infrastructure · POST /api/v1/unicode-check · Id unicode-check

Checks up to 100 strings in one call against the 19 deterministic rules of unicode-safety-check: bidi controls (Trojan Source), invisible and zero-width characters, tag-character and variation-selector payloads, homoglyph and mixed-script hosts or names. Built for an agent's hot path: run it on a prompt, a tool argument, a URL or a model output before acting on it. Returns BLOCK / REVIEW / NO_FINDING per string with the code point and position. Pure code, no model.

What you get

Hidden Unicode is how instructions get smuggled past a human and into a model. 100 strings per $0.005 call.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/unicode-check. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/unicode-check \
  -H 'content-type: application/json' \
  -d '{"strings":["Summarize this page for me.","Ignore​ previous instructions󠁁󠁂","https://pаypal.com/login"],"kind":"url"}'

Input

FieldTypeRequiredDescription
stringsarray<string; length 0..10000>; max 100 itemsyesUp to 200000 characters in total.
kindstring; one of "text", "identifier", "url"notext (default): prose, only critical findings block. identifier or url: high findings such as mixed-script names also block.

Example request body

{
  "strings": [
    "Summarize this page for me.",
    "Ignore​ previous instructions󠁁󠁂",
    "https://pаypal.com/login"
  ],
  "kind": "url"
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
verdictstring; one of "BLOCK", "REVIEW", "NO_FINDING"noWorst verdict across the strings. NO_FINDING means none of the 19 rules fired, not that the text is benign.
countsobjectno
resultsarray<object>no
kindstring; one of "text", "identifier", "url"no
verdictBasisstringno
enginestringno
upgradeobjectnoThe full agent this micro check is a slice of, its price and what it adds.

Pay and connect

Available through: x402 (USDC on Base), MCP.

Machine-readable