API Reference
Authenticate with your client_key in every request body. All requests and responses are JSON over HTTPS.
New to the API? Start with the AI Humanizer API overview.
Base URL
https://api.ultrahumanizer.comUptime
99.9%
Latency
<500ms median
Rate limit
100 req/sec
Quick start
Send a POST request with your text and API key. Your key is available in your account dashboard.
curl -X POST https://api.ultrahumanizer.com/api/humanize \
-H "Content-Type: application/json" \
-d '{
"text": "The findings suggest a correlation between the variables.",
"client_key": "uk_your_api_key",
"style": "academic",
"context": "research paper",
"language": "english",
"depth": "standard"
}'/api/humanizeHumanize AI-generated text. Credits are billed per input word. Enhanced depth costs 2× credits and must be enabled on your account.
Parameters
text*string
Input text. Max 100,000 characters / 5,000 words.
client_key*string
Your API key from the account dashboard.
style*string
Output tone. One of: general, academic, formal, professional, conversational, scholar.
context*string
Use case that guides the rewriting approach, e.g. essay, thesis, report, email. Keep it short.
languagestring
Output language. Default: english. 12+ languages supported.
depthstring
standard (default) or enhanced (2× credits, requires account enablement).
streamboolean
Stream output as newline-delimited JSON. Default: false.
restructureboolean
Apply light sentence restructuring for stronger detection bypass. Default: false.
voice_profilestring
150–250 word plain-English description of a target writing style. When provided, output matches that voice.
preserve_markdownboolean
Retain markdown formatting in the output. Default: false.
ultra_modeboolean
Advanced processing mode for maximum undetectability. Default: false.
settingsobject
Optional fine-tuning object. See fields below.
Settings object
locked_phrasesstring[]
Phrases to leave unchanged: citations, brand names, defined terms. Default: [].
preserve_citationsboolean
Keep quoted and referenced text intact. Default: true.
formalitynumber 0–100
Output register. 0 = very casual, 100 = highly formal. 70–90 suits most academic writing. Default: 50.
variationnumber 0–100
How aggressively alternate phrasing is applied. Higher values diverge more from the source. Default: 50.
length_tolerancenumber 0–100
Maximum allowed percentage change in output length relative to input. Default: 20.
{
"text": "The findings suggest a correlation between variables.",
"client_key": "uk_your_api_key",
"style": "academic",
"context": "research paper",
"language": "english",
"depth": "standard",
"settings": {
"formality": 80,
"variation": 60
}
}{
"result": "The results indicate a relationship between the variables.",
"config": {
"style": "academic",
"context": "research paper",
"language": "english",
"depth": "standard",
"stream": false,
"restructure": false,
"voice_profile": null,
"preserve_markdown": false,
"ultra_mode": false,
"settings": {
"locked_phrases": [],
"preserve_citations": true,
"formality": 80,
"variation": 60,
"length_tolerance": 20
}
}
}For streaming (stream: true), the response is Content-Type: application/x-ndjson. One JSON object per line. Sort by index, then join humanized.
{"index":0,"original":"First sentence.","humanized":"Humanized sentence."}
{"index":1,"original":"Second sentence.","humanized":"Another humanized line."}/api/usageCheck your account credit balance and feature flags.
client_key*string
Your API key.
{ "client_key": "uk_your_api_key" }{
"credits_remaining": 48200,
"credits_used": 1800,
"enhanced_enabled": false
}Errors
All errors return a JSON body with error and code fields.
| Status | Code | Description |
|---|---|---|
| 403 | INVALID_KEY | API key missing or not recognised. |
| 403 | INSUFFICIENT_CREDITS | Account balance too low. Top up to continue. |
| 403 | ENHANCED_NOT_ENABLED | Enhanced depth not enabled for this account. |
| 413 | PAYLOAD_TOO_LARGE | Text exceeds the maximum allowed size. |
| 422 | MISSING_FIELD | A required field is missing or invalid. |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests. Retry after a short delay. |
| 500 | SERVER_ERROR | Unexpected error. Safe to retry with exponential backoff. |
Billing
Credits are consumed per input word at the time of the request.
Standard depth
1 credit / word
Enhanced depth
2 credits / word
Max request size
5,000 words / 100,000 chars
For volume pricing or enterprise plans, contact support@ultrahumanizer.com.