Authentication
Authorization: Bearer <your-api-key>All requests and responses are JSON.
Alternative: X-API-Key: th_live_…
TonoHumano
Developer 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
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 } }Authorization: Bearer <your-api-key>All requests and responses are JSON.
Alternative: X-API-Key: th_live_…
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
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Required | Text to humanize (50–3000 characters). |
style | string | Optional | original | simple | academic | formal. Defaults to original. |
intensity | string | Optional | moderate | 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.
Authorization: Bearer <your-api-key>All requests and responses are JSON.
Alternative: X-API-Key: th_live_…
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
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Required | Input text (max 10,000 characters). |
mode | string | Optional | paraphrase | correct | translate. Defaults to paraphrase. |
style | string | Optional | simple | academic | formal | persuasive | narrative | analytical. |
sourceLang | string | Optional | Source language (e.g. auto, es, en). Defaults to auto. |
targetLang | string | Optional | Target language. Required when mode=translate. |
Returns id, output, and usage. 401 / 402 / 400 for invalid body.
Authorization: Bearer <your-api-key>All requests and responses are JSON.
Alternative: X-API-Key: th_live_…
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
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Required | Text to analyze (max 10,000 characters). |
Returns fakePercentage, verdict, classification, models, analysis[], and usage. 401 / 402 / 504 DETECTOR_TIMEOUT.
Sign up, create a key, and send your first request. Credit packs are purchased from your account.