Everything you need to integrate AI text humanization into your application.
The Humanize AI API lets you convert AI-generated text into natural, human-sounding content with a single POST request. Here is how to get started in 3 steps:
Generate an API Key
Go to your API Dashboard and click Generate Key. You get 500 free credits on your first key.
Make Your First Request
Send a POST request to the humanize endpoint with your text and API key.
Use the Humanized Text
The response includes the humanized text, word count, and your updated credit balance.
curl -X POST https://thehumanizeai.pro/api/v1/humanize \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "AI-generated text here", "model": "fast"}'All API requests require a valid API key sent in the Authorization header as a Bearer token.
Authorization: Bearer hmai_ak_your_key_hereAll API keys start with the hmai_ak_ prefix followed by 64 hex characters.
hmai_ak_2bba8fd5233829de7d4e00882a5a37e5.../v1/humanizeSend text and receive a humanized version. Supports two models and five tones for the HumanoidX model.
| Parameter | Type | Description |
|---|---|---|
textREQUIRED | string | The text to humanize. Max 50,000 characters. |
model | string | "fast" (default) or "humanoidx" |
tone | string | Only for humanoidx model. One of: academic, formal, casual, concise, expand |
curl -X POST https://thehumanizeai.pro/api/v1/humanize \
-H "Authorization: Bearer hmai_ak_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"text": "Machine learning algorithms utilize statistical methods to identify patterns.",
"model": "humanoidx",
"tone": "academic"
}'{
"humanized_text": "Machine learning models use statistical techniques to find patterns in data.",
"original_words": 9,
"credits_used": 9,
"credits_remaining": 4991,
"model": "humanoidx",
"tone": "academic"
}| Field | Type | Description |
|---|---|---|
humanized_text | string | The humanized output text |
original_words | integer | Word count of the input text |
credits_used | integer | Credits deducted for this request |
credits_remaining | integer | Your remaining credit balance |
model | string | Model used: "fast" or "humanoidx" |
tone | string|null | Tone used, or null for fast model |
/v1/usageCheck your current credit balance, lifetime usage, tier, and rate limits.
curl https://thehumanizeai.pro/api/v1/usage \
-H "Authorization: Bearer hmai_ak_your_key_here"{
"credits_remaining": 4991,
"credits_used_total": 9,
"tier": "Explorer",
"rate_limit": 1,
"max_keys": 1
}| Field | Type | Description |
|---|---|---|
credits_remaining | integer | Available credits |
credits_used_total | integer | Lifetime credits consumed |
tier | string | Current tier: Explorer, Builder, Scale, or Enterprise |
rate_limit | integer | Requests per second allowed |
max_keys | integer | Maximum API keys allowed for your tier |
model: "fast"Default model. Returns results in under 3 seconds. Best for high-volume workloads where speed matters more than tone control. Does not accept a tone parameter.
{"text": "Your text here", "model": "fast"}model: "humanoidx"PROPremium engine with tone control. Takes 3 to 5 seconds. Best for content that needs specific writing style. If no tone is provided, defaults to "academic".
| Tone | Best For |
|---|---|
academic | Research papers, essays, scholarly writing |
formal | Business reports, proposals, professional emails |
casual | Blog posts, social media, casual writing |
concise | Summaries, abstracts, shortened versions |
expand | Adding detail, elaborating, lengthening text |
The API uses standard HTTP status codes. Errors return a JSON body with error and message fields.
{
"error": "insufficient_credits",
"credits_remaining": 3,
"words_required": 50,
"message": "Purchase credits at https://thehumanizeai.pro/dashboard/api"
}Rate limits scale automatically based on your lifetime credit usage. No manual upgrades needed. Use more credits and your limits increase.
| Tier | Threshold | Rate Limit | Max Keys |
|---|---|---|---|
| Explorer | 0 credits used | 1 req/s | 1 key |
| Builder | 50,000 credits used | 5 req/s | 3 keys |
| Scale | 200,000 credits used | 15 req/s | 10 keys |
| Enterprise | 1,000,000 credits used | 30 req/s | 25 keys |
If you hit a rate limit, wait 1 second and retry. The API returns a 429 status when you exceed your tier limit.
import requests
API_KEY = "hmai_ak_your_key_here"
BASE_URL = "https://thehumanizeai.pro/api"
# Humanize with fast model
response = requests.post(f"{BASE_URL}/v1/humanize", json={
"text": "AI-generated text goes here",
"model": "fast"
}, headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
})
data = response.json()
print(data["humanized_text"])
print(f"Credits remaining: {data['credits_remaining']}")const API_KEY = "hmai_ak_your_key_here";
const BASE_URL = "https://thehumanizeai.pro/api";
async function humanize(text, model = "fast", tone = null) {
const body = { text, model };
if (tone) body.tone = tone;
const res = await fetch(`${BASE_URL}/v1/humanize`, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(body),
});
if (!res.ok) {
const err = await res.json();
throw new Error(err.message || "API error");
}
return res.json();
}
// Usage
const result = await humanize("Your AI text here");
console.log(result.humanized_text);<?php
$apiKey = "hmai_ak_your_key_here";
$url = "https://thehumanizeai.pro/api/v1/humanize";
$data = json_encode([
"text" => "AI-generated text goes here",
"model" => "humanoidx",
"tone" => "formal"
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $apiKey",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo $result["humanized_text"];Generate your API key and test with 500 free credits. No credit card required.