TonoHumano

Developer API

Do more with the TonoHumano API

Humanize, paraphrase, and detect text with REST endpoints, API keys, and prepaid EUR credits.

Prepaid in EUR · €1 → 100 credits · bonus when you create your first key

View credits
const res = await fetch("https://tonohumano.com/api/v1/humanizer", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    text: "Your AI-generated text here…",
    style: "original",
    intensity: "moderate"
  })
});

const data = await res.json();
// => { id, output, usage: { tokens, creditsCharged, balance } }

POST/v1/humanizerhttps://tonohumano.com/api

Humanizer API

Rewrite AI-generated text so it reads naturally. Same quality as the web app, authenticated with an API key.

Authentication

Authorization: Bearer <your-api-key>

All requests and responses are JSON.

Alternative: X-API-Key: th_live_…

Credits

Charged only on 200 responses. usage.creditsCharged and usage.balance are included in the response.

const res = await fetch("https://tonohumano.com/api/v1/humanizer", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    text: "Your AI-generated text here…",
    style: "original",
    intensity: "moderate"
  })
});

const data = await res.json();
// => { id, output, usage: { tokens, creditsCharged, balance } }

200 OK · REST API v1

Parameters

FieldTypeRequiredDescription
textstringRequiredText to humanize (50–3000 characters).
stylestringOptionaloriginal | simple | academic | formal. Defaults to original.
intensitystringOptionalmoderate | fast | aggressive | maximum. fast = like moderate without the detector self-check. Defaults to moderate.

Returns id, output (humanized text), and usage { tokens, creditsCharged, balance }. 401 invalid key · 402 no credits · 400 TEXT_TOO_SHORT / TEXT_TOO_LONG.

POST/v1/paraphrasehttps://tonohumano.com/api

Paraphrase / translate / correct API

Paraphrase, correct, or translate text with the same engine as the web tools.

Authentication

Authorization: Bearer <your-api-key>

All requests and responses are JSON.

Alternative: X-API-Key: th_live_…

Credits

Charged on 200. Cost depends on length and mode (translate often uses more tokens).

const res = await fetch("https://tonohumano.com/api/v1/paraphrase", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    text: "Rewrite this paragraph…",
    mode: "paraphrase",
    style: "simple",
    sourceLang: "auto"
  })
});

const data = await res.json();
// => { id, output, usage }

200 OK · REST API v1

Parameters

FieldTypeRequiredDescription
textstringRequiredInput text (max 10,000 characters).
modestringOptionalparaphrase | correct | translate. Defaults to paraphrase.
stylestringOptionalsimple | academic | formal | persuasive | narrative | analytical.
sourceLangstringOptionalSource language (e.g. auto, es, en). Defaults to auto.
targetLangstringOptionalTarget language. Required when mode=translate.

Returns id, output, and usage. 401 / 402 / 400 for invalid body.

POST/v1/detecthttps://tonohumano.com/api

Detector API

Estimate whether text looks AI-written. Uses detector v2 and returns a verdict plus breakdown.

Authentication

Authorization: Bearer <your-api-key>

All requests and responses are JSON.

Alternative: X-API-Key: th_live_…

Credits

Charged on 200. Includes usage with tokens and remaining balance.

const res = await fetch("https://tonohumano.com/api/v1/detect", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    text: "Paste text to score for AI signals…"
  })
});

const data = await res.json();
// => { id, fakePercentage, verdict, classification, analysis, usage }

200 OK · REST API v1

Parameters

FieldTypeRequiredDescription
textstringRequiredText to analyze (max 10,000 characters).

Returns fakePercentage, verdict, classification, models, analysis[], and usage. 401 / 402 / 504 DETECTOR_TIMEOUT.

Billing

Credits

Programmatic usage spends prepaid credits. It is not included in the monthly web subscription.

  • Charge: credits = ceil(tokens / 100), minimum 1 when the request has tokens. No billable tokens → minimum 1 credit on success.
  • One-time packs: 5,000 · 10,000 · 25,000 · 50,000 · 100,000. Creating your first key unlocks an initial grant.
  • LITE / STANDARD / UNLIMITED cover the web app; the API requires a credit balance.
  • 402 INSUFFICIENT_CREDITS if balance is below 1 before the request or when charging.

Start in minutes

Sign up, create a key, and send your first request. Credit packs are purchased from your account.

View web plans