BUILD IT.
MAKE IT HUMAN.
Connect Unbot Humanizer and Sniff to your assistants, agents and workflows.
API v1 · JSON over HTTPS · Bearer keysAccess and balances
API access comes with the planned $9 Pro subscription: 10,000 Humanizer API words and 20,000 Detector API words per billing cycle, separate from the website’s 50,000 words. Humanizer packs cost $10 per 10,000 words; Detector packs cost $3 per 10,000 words. Purchased words never expire. Included API words are used first. Purchased balances carry over and remain usable with a valid key. Pro checkout and top-ups are coming soon; free accounts cannot create API keys yet.
Create a scoped key
In Settings, name a key and choose humanize, detect, or both permissions. The secret appears once. Store it server-side, send it only in the Authorization header, and revoke it if exposed. Never put a key in a URL, browser bundle, public repository, or shared prompt.
Rewrite text
POST https://unbotlab.com/api/v1/humanize accepts 30–650 words. The JSON body contains text.
curl https://unbotlab.com/api/v1/humanize \
-H "Authorization: Bearer $UNBOT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: my-unique-request-id" \
-d '{"text":"Our neighborhood library opens early on Saturday so students can find a quiet place to read. Visitors can borrow books, use the computers, or ask a librarian for help finding reliable information."}'The result includes rewritten text, factual-check fields, usage.input_words, usage.billed_words, and your separate API balances.
Scan text
POST /api/v1/detect accepts 20–1,500 words with the same authorization and JSON body. The response includes ai, an AI-likelihood estimate from 0 to 1, plus usage and balances. Both API endpoints spend API input words; website scan limits and website words are separate.
Read your balance
GET /api/v1/balance returns included monthly words left, monthly words used, the included reset time, and purchased words left. It does not expose account email or profile details.
Safe retries and limits
Send a unique Idempotency-Key for each intended operation. Repeating it with identical input replays the completed response within the 24-hour retention window without charging twice. Using the same key with different input returns 409. A still-processing request also returns 409 and Retry-After. Keep the same request content while retrying.
Rate limits are 12 requests per minute per key and 20 per minute per account, with additional model-capacity limits. Honor 429 and Retry-After. Processing can take up to 90 seconds; allow an appropriate client timeout. Failed processing refunds reserved API words. If interrupted, stale reservations are reconciled on subsequent API activity.
Status codes
400 invalid input; 401 missing or revoked key; 402 insufficient API words; 403 missing access or scope; 409 idempotency conflict or pending request; 429 rate limit; 503 model unavailable. Responses include a request ID when processing has started.
Schema and policies
Download the OpenAPI schema. See Terms, Privacy, and Support. This API rewrites and detects text; it is not an OpenAI chat-completions endpoint.