Humanizations
Humanizations are the core resource of the ToHuman API. Each humanization takes AI-generated text and transforms it into natural, human-sounding writing that bypasses AI detectors.
The humanization model
The humanization model contains all the information about a humanization job, including the input content, output result, status, and processing metadata.
Properties
id
string
Unique identifier for the humanization.
status
string
One of pending, processing, completed, or failed.
intensity
string
Humanization intensity. One of minimal, subtle, medium (default), or heavy.
output_content
string or null
The humanized text. null until the job completes.
processing_time
float or null
Time taken to process in seconds.
error_message
string or null
Error details if the job failed.
created_at
timestamp
When the humanization was created.
completed_at
timestamp or null
When the humanization completed.
Create a humanization (sync) POST /v1/humanizations/sync
Create a humanization and receive the result immediately. Best for short content (under 2,000 words) when you need real-time results.
Required attributes
content
string
The AI-generated text to humanize. Must be at least 50 characters and under 2,000 words.
Optional attributes
title
string
A title for the document (for your reference).
intensity
string
Humanization intensity. Defaults to medium. Options: minimal, subtle, medium, heavy.
curl -X POST https://tohuman.ai/api/v1/humanizations/sync \ -H "Authorization: Bearer $TOHUMAN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "The utilization of artificial intelligence...", "intensity": "medium" }'
{
"id": 42,
"document_id": 15,
"status": "completed",
"intensity": "medium",
"output_content": "Using AI in everyday work...",
"processing_time": 1.42,
"error_message": null,
"created_at": "2026-03-21T12:00:00Z",
"completed_at": "2026-03-21T12:00:01Z"
}
Create a humanization (async) POST /v1/humanizations
Create a humanization job that processes in the background. Use this for longer documents or when you don't need immediate results. Optionally provide a webhook_url to be notified when processing completes.
Additional attributes
webhook_url
string (optional)
URL to receive a POST request when the humanization completes or fails.
curl -X POST https://tohuman.ai/api/v1/humanizations \ -H "Authorization: Bearer $TOHUMAN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Your long-form AI-generated content...", "intensity": "heavy", "webhook_url": "https://yourapp.com/webhooks/tohuman" }'
{
"id": 43,
"document_id": 16,
"status": "pending",
"intensity": "heavy",
"output_content": null,
"processing_time": null,
"error_message": null,
"created_at": "2026-03-21T12:00:00Z",
"completed_at": null
}
Retrieve a humanization GET /v1/humanizations/:id
Retrieve the current state of a humanization by its ID. Use this to poll for the result of an async humanization job.
curl https://tohuman.ai/api/v1/humanizations/43 \ -H "Authorization: Bearer $TOHUMAN_API_KEY"
{
"id": 43,
"document_id": 16,
"status": "completed",
"intensity": "heavy",
"output_content": "The fully humanized content...",
"processing_time": 3.87,
"error_message": null,
"created_at": "2026-03-21T12:00:00Z",
"completed_at": "2026-03-21T12:00:04Z"
}