Humanizer API v1

In-house content humanizer: rewrites AI-drafted copy so it reads human, preserves every fact, and returns a measured human-likeness score. Drop-in compatible with the WriteHuman API shape.

Endpoint

POST https://hashtag.org/api/humanize/v1
Authorization: Bearer <your key>
Content-Type: application/json

{ "text": "<30 to 100,000 characters>", "tone": "professional" }

tone is optional: professional · academic · blog · casual · creative · scientific · technical.

Response

{
  "id": "b3f1…",            // request id
  "created": 1783650000,     // unix seconds
  "results": ["…rewritten text…"],
  "scores": [0.81],          // human-likeness 0–1 (higher = more human)
  "input_words": 412,
  "words_remaining": { "included": 1000000, "topup": 0, "total": 1000000 }
}

Errors

StatusMeaning
401Missing or invalid Authorization: Bearer key
422Bad body — text under 30 or over 100,000 characters, invalid JSON
429Rate limit — 30 requests/minute per key. Back off and retry.
503Engine unavailable (retry later)

Guarantees

Every number, price, percentage, date, URL, and ZTOK<n>Z sentinel token in your input survives the rewrite verbatim — the engine validates and falls back to a conservative pass rather than let a fact drift. Paragraph count and order are preserved (paragraphs = blank-line separated), so you can batch multiple blocks in one call and split the result on blank lines. Best batch size: up to ~2,800 words per call.

CADE integration note

CADE content flows through this engine automatically when a site's humanize toggle is on — no direct API calls needed. Use this API for ad-hoc or external content (scripts, other properties, QA testing).

Examples

# curl
curl -s https://hashtag.org/api/humanize/v1 \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"text":"In todays digital landscape, businesses must leverage cutting-edge tools..."}'
# Node
const r = await fetch('https://hashtag.org/api/humanize/v1', {
  method: 'POST',
  headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ text }),
});
const { results, scores } = await r.json();
# Python
import requests
r = requests.post('https://hashtag.org/api/humanize/v1',
    headers={'Authorization': f'Bearer {KEY}'},
    json={'text': text})
print(r.json()['results'][0])

Live console

Response appears here.
Humanizer API · runs on hashtag.org infrastructure · API access is a paid add-on: keys are issued with an account and billed from GIGI credits per word — contact us or ask GIGI on any hashtag.org page to get set up. Your key is kept in this browser's localStorage only.