Runs on our own GPU · no third-party API

Humanizer API

Send AI-drafted text, get back a human-sounding rewrite with a measured human-likeness score. The rewrite runs on our own GPU compute node, not a paid API, and every number, price, and link in your input is validated to survive. The request and response match WriteHuman, so an existing integration migrates by changing the base URL and key.

Quickstart

curl -X POST https://hashtag.org/api/humanize/v1 \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Your AI-drafted copy goes here, at least 30 characters.","tone":"professional"}'

Authentication

Pass your key as a bearer token: Authorization: Bearer YOUR_KEY. Create a self-serve key on the AI Humanizer page (billed to your GIGI credits per word), or contact us for an unmetered partner key.

Endpoint

POST https://hashtag.org/api/humanize/v1
Content-Type: application/json
Authorization: Bearer YOUR_KEY

Request body

FieldTypeNotes
textstring, requiredThe text to humanize. 30 to 100,000 characters.
tonestring, optionalOne of: professional, academic, blog, casual, creative, scientific, technical. Omit for the default voice.
languagestring, optionalAccepted for contract parity. The engine is tuned for English.

Response (200)

{
  "id": "b1a2c3d4-...",
  "created": 1727540000,
  "results": ["<your humanized text>"],
  "scores": [0.86],
  "input_words": 52,
  "words_remaining": { "included": 1000000, "topup": 0, "total": 1000000 },
  "engine": { "backend": "gpu-node", "model": "gemma3:12b", "ms": 4200 }
}
idUnique id for this humanize call.
createdUnix timestamp (seconds).
resultsArray with the humanized text as the first element.
scoresArray with a 0 to 1 human-likeness score (0.86 = 86% human), or null.
input_wordsWord count we measured on your input.
words_remainingQuota object kept for WriteHuman parity ({ included, topup, total }).
engineWhere it ran: { backend: "gpu-node", model, ms }.

Errors

401 invalid API keyMissing or unrecognised Bearer key.
422Body failed validation (text too short/long, or an unknown tone).
429 rate limit exceededToo many calls for a metered key in the window. Partner keys are unmetered.
503 humanizer node offlineNo GPU node is available right now, or the rewrite failed a safety gate. Retry shortly.

Errors use the shape { "error": "message" } with the status code above.

Code examples

JavaScript

const res = await fetch("https://hashtag.org/api/humanize/v1", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ text: myText, tone: "professional" }),
});
const data = await res.json();
console.log(data.results[0]); // humanized text
console.log(data.scores[0]);  // 0..1 human-likeness

Python

import requests

r = requests.post(
    "https://hashtag.org/api/humanize/v1",
    headers={"Authorization": "Bearer YOUR_KEY"},
    json={"text": my_text, "tone": "professional"},
    timeout=180,
)
data = r.json()
print(data["results"][0])  # humanized text
print(data["scores"][0])   # 0..1 human-likeness

Live console

Paste your key and some text and run a real request against the endpoint. You get back the exact JSON your integration will see.

Questions

What runs the rewrite?
Our own GPU compute node running a local model. Nothing is sent to a third-party API. If the node is briefly offline the API returns a 503 and you retry — it never silently falls back to a paid service.
Is it WriteHuman-compatible?
Yes. The request body and response shape match WriteHuman, so if you already call api.writehuman.ai you migrate by changing only the base URL to hashtag.org/api/humanize/v1 and swapping the key.
Do my facts and links survive?
Every number, price, percentage, and URL in your input is validated to survive the rewrite, and the paragraph count is preserved. If a rewrite would drop or change one of those, the call fails safe rather than return altered facts.
How am I billed?
Self-serve hz_live_ keys bill your GIGI credits per input word at the same rate as the on-site humanizer. Partner and internal keys are unmetered.

Prefer a paste-and-go tool?

The AI Humanizer page runs the same engine in your browser — paste a draft, pick a tone, copy the result.