Walter AI PlatformWalter AI Platform

Humanizer

Transform AI-generated text into natural, human-like content.

POST /api/humanizer/

Transform AI-generated text into natural, human-like content that bypasses AI detection tools.

Authentication: X-API-Key header with humanizer scope

Request Parameters

ParameterTypeRequiredDescription
contentstringYesText content to humanize
callback_urlstringNoURL to receive results asynchronously via webhook
pollbooleanNoSet to true to enable polling mode (default: false)
webhook_secretstringNoSecret sent in X-Webhook-Secret header of webhook POST

Limits

LimitValue
Minimum length50 words
Maximum length2,000 words

Requests outside these bounds are rejected with 400 before any credits are charged. The limits apply to both synchronous and asynchronous requests.

Processing Modes

The endpoint supports synchronous and asynchronous processing:

ParametersModeResponse
(none)Sync200 OK — result in response body
callback_urlAsync + webhook202 Accepted — result POSTed to your URL
poll: trueAsync + polling202 Accepted — result via GET /api/jobs/{task_id}/
callback_url + poll: trueAsync + both202 Accepted — result via webhook AND polling

See Async Jobs for details on asynchronous processing.

Synchronous Example

Request

curl -X POST https://developer-portal.walterwrites.ai/api/humanizer/ \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": "Artificial intelligence has revolutionized numerous industries by automating complex tasks and enhancing decision-making processes."
  }'

Response (200 OK)

{
  "status": "success",
  "task_id": null,
  "result": "AI has transformed many industries, making complex tasks automatic and improving how decisions are made.",
  "service_name": "humanizer_service",
  "execution_time": 2.34,
  "word_count": 18,
  "credits_remaining": 1982,
  "user": {
    "id": 12345
  }
}

Asynchronous Example

Request

curl -X POST https://developer-portal.walterwrites.ai/api/humanizer/ \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": "Your long text here...",
    "poll": true,
    "callback_url": "https://your-server.com/webhook",
    "webhook_secret": "your_secret_123"
  }'

Response (202 Accepted)

{
  "status": "pending",
  "task_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "result": null,
  "service_name": null,
  "execution_time": null,
  "word_count": 256,
  "credits_remaining": 1744,
  "user": {
    "id": 12345
  }
}

Use the returned task_id to poll for results, or wait for the webhook delivery to your callback_url.

Response Fields

FieldTypeDescription
statusstring"success" (sync) or "pending" (async)
task_idstring | nullJob ID for async requests; null for sync
resultstring | nullHumanized text (sync) or null (async)
service_namestring | nullService used for processing
execution_timefloat | nullProcessing time in seconds
word_countintegerWord count of input text
credits_remainingintegerCredit balance after this request
user.idintegerYour user ID

Rate Limits

ModeLimit
Synchronous3 requests per minute per user
AsynchronousNo time-based limit — constrained by credits and pending jobs limit (varies by plan)

Rate limits may vary by plan. Higher-tier plans may have higher limits.

Webhook Delivery

When using callback_url, the result is POSTed to your URL as JSON with the same response structure as the synchronous response. If you provided a webhook_secret, it is sent in the X-Webhook-Secret header so you can verify the request originated from WalterAI.

The callback_url must be a publicly routable URL. Requests to private, internal, or reserved IP addresses are blocked for security reasons.

POST https://your-server.com/webhook
Content-Type: application/json
X-Webhook-Secret: your_secret_123

{
  "status": "success",
  "task_id": "a1b2c3d4-...",
  "result": "Humanized text...",
  ...
}

On this page