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

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