The Humanize AI Text API gives you programmatic, predictable access to the
same engine that powers humanwrite.io . Anything you can do in
our web app, you can do via REST. Send raw text and receive a clean,
human-style rewrite with optional AI detection scoring — all in a single round trip.
One standardized REST endpoint 50+ languages, auto-detected AI-detection aware (returns flag) Predictable word-priced billing Per-account API keys with scope Webhook events & usage analytics1 Get your API key Create an account on humanwrite.io and copy your key from the dashboard.
2 Make your first request POST /v1/humanize with a Content-Type: application/json body.
cURL JavaScript Python
curl https://api.humanwrite.io/v1/ humanize \
-H "Authorization: Bearer $HUMANWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "AI-generated draft paragraph...",
"tone": "natural",
"language": "en-US",
"detect": true
} ' 3 See the response The API returns a single formatted JSON response.
{
"id" : "hum_a1b2c3d4e5f6" ,
"created" : 1778533901580 ,
"result" : "Artificial intelligence has changed the game in content creation and communication." ,
"score" : 82 ,
"input_words" : 14 ,
"words_remaining" : {
"included" : 399986 ,
"topup" : 0 ,
"total" : 399986
}
} Authentication Copy for LLM
Authentication is done by passing your API key in the
Authorization header.
You can find your key in your
account dashboard .
Authorization header GET /v1/humanize HTTP/1 .1
Host: api.humanwrite.io
Authorization : Bearer hw_live_3f4c5e6a7b8d9e0f
Content-Type: application /jsonStatus codes you may receive.
All errors return an application/json envelope with a machine-readable code and a human-readable message. Below is the full reference.
402
No active subscription or insufficient word balance. No active subscription
{ "error": "No active subscription" }Insufficient balance
{
"error": "Insufficient word balance",
"words_remaining": {
"included": 12,
"topup": 0,
"total": 12
}
}422
Invalid input, forbidden parameters, over word limit, or content blocked by moderation. Invalid request body
{ "error": "Invalid request: ..." }Forbidden parameter
{ "error": "The model parameter is not available" }Word limit exceeded
{ "error": "Input exceeds per-request limit of 2000 words for your plan. Received ~2500 words." }Content moderation
{ "error": "Content blocked: sexual" }429
Rate limit, queue capacity, or too many failed auth attempts. Rate limit
{ "error": "Rate limit exceeded for your plan (api_standard -> 40/min). api_standard: 40/min | api_premium: 120/min" }Too many failed auth attempts
{ "error": "Too many failed authentication attempts" }Request queue full
{ "error": "Too many queued requests. Please retry shortly." }Send a block of text and receive a human-style rewrite. Optionally returns an AI score for downstream flagging.
POST /v1/humanize
Create a humanize completion
cURL JavaScript Python
curl https://api.humanwrite.io/v1/ humanize \
-H "Authorization: Bearer $HUMANWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "AI-generated draft paragraph...",
"tone": "natural",
"language": "en-US",
"detect": true
} ' Request body Content-Type: application/json
Parameter Type Required Description inputstring required The text to humanize. Maximum 3,000 words per request. tonestring optional The tone of voice for the rewrite (e.g. `professional`, `sarcastic`, `pirate`, etc.). languagestring optional ISO-639-1 code. If omitted, the API auto-detects the language. detectboolean optional If `true`, the response includes an `ai_score` and `flagged` boolean. streamboolean optional If `true`, tokens are streamed back over Server-Sent Events.
Response Status 200 OK · Content-Type application/json
Standard Premium
{
"id" : "hum_a1b2c3d4e5f6" ,
"created" : 1778533901580 ,
"result" : "AI has changed how we create content and communicate online." ,
"score" : null ,
"input_words" : 14 ,
"words_remaining" : {
"included" : 124986 ,
"topup" : 0 ,
"total" : 124986
}
} Error responses Status Name Description 400 Bad Request Your request is malformed or missing required fields. The accompanying error message will explain what went wrong. 401 Unauthorized Your API key is invalid or missing. Check the `Authorization: Bearer` header. 402 Payment Required Your account has run out of words or credits. Top-up or upgrade your plan to continue. 403 Forbidden Your key does not have access to this resource, or your tenant is blocked. 404 Not Found The requested resource could not be found.
POST /v1/ai-detect
Detect whether text looks AI-generated
cURL JavaScript
curl https://api.humanwrite.io/v1/ humanize \
-H "Authorization: Bearer $HUMANWRITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "AI-generated draft paragraph...",
"tone": "natural",
"language": "en-US",
"detect": true
} ' Request body Content-Type: application/json
Parameter Type Required Description inputstring required The text to analyze. Maximum 5,000 words per request. languagestring optional ISO-639-1 code, used to pick the right scoring model.
Error responses Status Name Description 400 Bad Request Your request is malformed or missing required fields. The accompanying error message will explain what went wrong. 401 Unauthorized Your API key is invalid or missing. Check the `Authorization: Bearer` header. 402 Payment Required Your account has run out of words or credits. Top-up or upgrade your plan to continue. 403 Forbidden Your key does not have access to this resource, or your tenant is blocked. 404 Not Found The requested resource could not be found.
Per-key analytics with time-series breakdowns.
GET /v1/usage
List usage events
curl "https://api.humanwrite.io/v1/usage " \
-H "Authorization: Bearer $HUMANWRITE_API_KEY" Error responses Status Name Description 400 Bad Request Your request is malformed or missing required fields. The accompanying error message will explain what went wrong. 401 Unauthorized Your API key is invalid or missing. Check the `Authorization: Bearer` header. 402 Payment Required Your account has run out of words or credits. Top-up or upgrade your plan to continue.
Supported Languages We auto-detect the input language and return natural, fluent output in the same language. Pass an explicit ISO-639-1 code inlanguage for deterministic behavior.
English English (British) Chinese (Mandarin) Chinese (Taiwanese) French Spanish Vietnamese Portuguese Japanese Ukrainian Swedish German Russian Italian Arabic Hindi Bengali Korean Turkish Dutch Polish Thai Indonesian Malay Persian Hebrew Greek Czech Danish Finnish Norwegian Romanian Hungarian Slovak Bulgarian Croatian Serbian Slovenian Lithuanian Latvian Estonian Urdu Swahili Tagalog Afrikaans
Common Use Cases News & Articles Rewrite wire copy into on-brand human-style editorials in seconds.
Product Descriptions Bulk-generate natural, fluent product copy at scale.
Academic Drafts Polish essays and research drafts without changing meaning.
API Workflows Pipe raw text through Humanize + Detect in a single call.
Localization Auto-detect + humanize across 50+ languages in one workflow.
Marketing Rewrite AI-generated landing copy so it scores clean on AI detectors.
Support Need help? We've got you covered.
Need a hand integrating? Premium and Enterprise plans include priority email support.
Contact support