Cloak API · v1

POST /api/humanize

Score and rewrite text programmatically. Same algorithm as the Chrome extension, callable from any environment that can make an HTTPS request. Authenticated by your Cloak Pro license.

Endpoint

POSThttps://www.genintelsys.com/api/humanize

Authentication

Send your Cloak Pro license JWT as a Bearer token in the Authorization header. The token is the same string the Chrome extension uses; you can find it on the success page after subscribing or in your most recent renewal email.

Authorization: Bearer eyJhbGciOiJFZERTQSI...

Tokens are valid for 30 days. Each successful monthly renewal issues a new token; subscribe at /cloak.

Request body

JSON. text is required, max 50,000 characters. categories is optional — if omitted, all four categories are enabled.

{
  "text": "In conclusion, we must leverage our robust platform.",
  "categories": {
    "overwrought": true,
    "buzzword": true,
    "transition": true,
    "meta": true
  }
}
FieldTypeNotes
textstringThe text to score and humanize. Required. Max 50,000 chars.
categories.overwroughtbooleandelve, tapestry, realm, intricate, paramount…
categories.buzzwordbooleanleverage, robust, seamless, cutting-edge…
categories.transitionbooleanmoreover, furthermore, additionally…
categories.metabooleanit's worth noting, in conclusion, in essence…

Response

{
  "score": {
    "before": { "total": 49, "banned": 40, "emDash": 0, "tricolon": 5, "negation": 0, "uniformity": 0 },
    "after":  { "total": 7,  "banned": 0,  "emDash": 0, "tricolon": 0, "negation": 0, "uniformity": 7 }
  },
  "humanized": "So, we must use our strong platform.",
  "changes": [
    { "from": "In conclusion", "to": "So", "category": "meta" },
    { "from": "leverage",     "to": "use", "category": "buzzword" },
    { "from": "robust",       "to": "strong", "category": "buzzword" }
  ]
}

Errors

StatusCodeMeaning
400missing_textRequest body missing text.
400bad_jsonRequest body was not valid JSON.
401missing_bearer_tokenNo Authorization header.
401invalid_or_expired_licenseBearer token failed Ed25519 verification or is past exp.
413text_too_longInput exceeded 50,000 chars.

Examples

cURL

curl -X POST https://www.genintelsys.com/api/humanize \
  -H "authorization: Bearer $CLOAK_LICENSE" \
  -H "content-type: application/json" \
  -d '{"text":"In conclusion, we must leverage our robust platform."}'

JavaScript (fetch)

const res = await fetch("https://www.genintelsys.com/api/humanize", {
  method: "POST",
  headers: {
    "authorization": `Bearer ${process.env.CLOAK_LICENSE}`,
    "content-type": "application/json"
  },
  body: JSON.stringify({ text: draft })
});
const { humanized, score, changes } = await res.json();

Python

import requests, os

resp = requests.post(
  "https://www.genintelsys.com/api/humanize",
  headers={
    "authorization": f"Bearer {os.environ['CLOAK_LICENSE']}",
    "content-type": "application/json"
  },
  json={"text": draft},
  timeout=30,
)
data = resp.json()

Limits & fair use

No published per-call quota at launch. We reserve the right to add one if abuse becomes a problem and will publish thresholds before changing anything. "Reasonable for one human's workflow" will always be free under Pro.

Stability

The endpoint shape above is the v1 contract. Breaking changes (renaming a field, removing a category, changing response structure) will only happen at a versioned URL — your existing integration will keep working at /api/humanize.