Text hygiene API

The same engines behind NoAtMark's tools, exposed as a simple JSON API. Clean, scan, extract, format, watermark, and inspect — for your own products and pipelines.

🛑 free tier — rate-limited ⚙️ POST JSON → JSON

Try it live

📄
Response appears here Pick an endpoint, edit the JSON body, and hit Send request.

Endpoints

All endpoints: POST https://noatmark.com/api/<name> with a JSON body. Responses are JSON. Rate limit: 60 req/min per IP on the free tier.

POST /api/clean

Strip invisible characters + clean LLM formatting. Request: {"text": "..."}Response: {"ok":true, "cleaned":"...", "changed":bool, "stats":{...}}

POST /api/scan

Detect hidden characters, prompt-injection patterns, and hidden-text HTML. Request: {"text": "..."}{"ok":true, "hiddenCount":n, "hidden":[...], "injections":[...], "htmlFlags":[...], "flagged":bool}

POST /api/plaintext

HTML / rich text to clean plain text. Request: {"html": "<div>...</div>"}{"ok":true, "plain":"...", "chars":n}

POST /api/format

LLM formatting hygiene only (meaning untouched). Request: {"text": "..."}{"ok":true, "cleaned":"...", "stats":{...}}

POST /api/watermark

Invisible keyed watermark. Actions: {"action":"embed","text","payload","key"} · {"action":"extract","text","key"} · {"action":"verify","text","key","payload"}

POST /api/inspect

Pre-publish inspection: GEO score + sub-scores + recommendations + cleaned text. Request: {"text": "..."}{"geoScore":n, "scores":{...}, "recommendations":[...], "cleanedText":"..."}

Quick start

curl -X POST https://noatmark.com/api/clean \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello ​world.\n\n\n  Clean this.  "}'

Paid tier with API keys & higher quotas is on the roadmap.