New!Welcome to HumanWrite.io
    Home/Developer Resources/AI Humanizer

    AI Humanizer API Documentation

    BASE URLhttps://api.humanwrite.io

    Introduction

    The Humanize AI Text API gives you programmatic, predictable access to the same engine that powers humanwrite.io. Anything you can do in our web app, you can do via REST. Send raw text and receive a clean, human-style rewrite with optional AI detection scoring — all in a single round trip.
    • One standardized REST endpoint
    • 50+ languages, auto-detected
    • AI-detection aware (returns flag)
    • Predictable word-priced billing
    • Per-account API keys with scope
    • Webhook events & usage analytics

    Quickstart

    1. 1

      Get your API key

      Create an account on humanwrite.io and copy your key from the dashboard.

    2. 2

      Make your first request

      POST /v1/humanize with a Content-Type: application/json body.

      curl https://api.humanwrite.io/v1/humanize \
        -H "Authorization: Bearer $HUMANWRITE_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "input": "AI-generated draft paragraph...",
          "tone": "natural",
          "language": "en-US",
          "detect": true
        }'
    3. 3

      See the response

      The API returns a single formatted JSON response.

      {
        "id": "hum_a1b2c3d4e5f6",
        "created": 1778533901580,
        "result": "Artificial intelligence has changed the game in content creation and communication.",
        "score": 82,
        "input_words": 14,
        "words_remaining": {
          "included": 399986,
          "topup": 0,
          "total": 399986
        }
      }

    Authentication

    Authentication is done by passing your API key in the Authorization header. You can find your key in your account dashboard.

    Authorization header

    GET /v1/humanize HTTP/1.1
    Host: api.humanwrite.io
    Authorization: Bearer hw_live_3f4c5e6a7b8d9e0f
    Content-Type: application/json

    Errors

    Status codes you may receive.

    All errors return an application/json envelope with a machine-readable code and a human-readable message. Below is the full reference.

    402

    No active subscription or insufficient word balance.

    No active subscription

    { "error": "No active subscription" }

    Insufficient balance

    {
      "error": "Insufficient word balance",
      "words_remaining": {
        "included": 12,
        "topup": 0,
        "total": 12
      }
    }
    422

    Invalid input, forbidden parameters, over word limit, or content blocked by moderation.

    Invalid request body

    { "error": "Invalid request: ..." }

    Forbidden parameter

    { "error": "The model parameter is not available" }

    Word limit exceeded

    { "error": "Input exceeds per-request limit of 2000 words for your plan. Received ~2500 words." }

    Content moderation

    { "error": "Content blocked: sexual" }
    429

    Rate limit, queue capacity, or too many failed auth attempts.

    Rate limit

    { "error": "Rate limit exceeded for your plan (api_standard -> 40/min). api_standard: 40/min | api_premium: 120/min" }

    Too many failed auth attempts

    { "error": "Too many failed authentication attempts" }

    Request queue full

    { "error": "Too many queued requests. Please retry shortly." }

    Inference

    Send a block of text and receive a human-style rewrite. Optionally returns an AI score for downstream flagging.

    POST/v1/humanize

    Create a humanize completion

    curl https://api.humanwrite.io/v1/humanize \
      -H "Authorization: Bearer $HUMANWRITE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "input": "AI-generated draft paragraph...",
        "tone": "natural",
        "language": "en-US",
        "detect": true
      }'

    Request body

    Content-Type: application/json

    ParameterTypeRequiredDescription
    inputstringrequiredThe text to humanize. Maximum 3,000 words per request.
    tonestringoptionalThe tone of voice for the rewrite (e.g. `professional`, `sarcastic`, `pirate`, etc.).
    languagestringoptionalISO-639-1 code. If omitted, the API auto-detects the language.
    detectbooleanoptionalIf `true`, the response includes an `ai_score` and `flagged` boolean.
    streambooleanoptionalIf `true`, tokens are streamed back over Server-Sent Events.

    Response

    Status 200 OK · Content-Type application/json

    {
      "id": "hum_a1b2c3d4e5f6",
      "created": 1778533901580,
      "result": "AI has changed how we create content and communicate online.",
      "score": null,
      "input_words": 14,
      "words_remaining": {
        "included": 124986,
        "topup": 0,
        "total": 124986
      }
    }

    Error responses

    StatusNameDescription
    400Bad RequestYour request is malformed or missing required fields. The accompanying error message will explain what went wrong.
    401UnauthorizedYour API key is invalid or missing. Check the `Authorization: Bearer` header.
    402Payment RequiredYour account has run out of words or credits. Top-up or upgrade your plan to continue.
    403ForbiddenYour key does not have access to this resource, or your tenant is blocked.
    404Not FoundThe requested resource could not be found.
    POST/v1/ai-detect

    Detect whether text looks AI-generated

    curl https://api.humanwrite.io/v1/humanize \
      -H "Authorization: Bearer $HUMANWRITE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "input": "AI-generated draft paragraph...",
        "tone": "natural",
        "language": "en-US",
        "detect": true
      }'

    Request body

    Content-Type: application/json

    ParameterTypeRequiredDescription
    inputstringrequiredThe text to analyze. Maximum 5,000 words per request.
    languagestringoptionalISO-639-1 code, used to pick the right scoring model.

    Error responses

    StatusNameDescription
    400Bad RequestYour request is malformed or missing required fields. The accompanying error message will explain what went wrong.
    401UnauthorizedYour API key is invalid or missing. Check the `Authorization: Bearer` header.
    402Payment RequiredYour account has run out of words or credits. Top-up or upgrade your plan to continue.
    403ForbiddenYour key does not have access to this resource, or your tenant is blocked.
    404Not FoundThe requested resource could not be found.

    Usage

    Per-key analytics with time-series breakdowns.

    GET/v1/usage

    List usage events

    curl "https://api.humanwrite.io/v1/usage" \
      -H "Authorization: Bearer $HUMANWRITE_API_KEY"

    Error responses

    StatusNameDescription
    400Bad RequestYour request is malformed or missing required fields. The accompanying error message will explain what went wrong.
    401UnauthorizedYour API key is invalid or missing. Check the `Authorization: Bearer` header.
    402Payment RequiredYour account has run out of words or credits. Top-up or upgrade your plan to continue.

    Supported Languages

    We auto-detect the input language and return natural, fluent output in the same language. Pass an explicit ISO-639-1 code inlanguage for deterministic behavior.

    EnglishEnglish (British)Chinese (Mandarin)Chinese (Taiwanese)FrenchSpanishVietnamesePortugueseJapaneseUkrainianSwedishGermanRussianItalianArabicHindiBengaliKoreanTurkishDutchPolishThaiIndonesianMalayPersianHebrewGreekCzechDanishFinnishNorwegianRomanianHungarianSlovakBulgarianCroatianSerbianSlovenianLithuanianLatvianEstonianUrduSwahiliTagalogAfrikaans

    Common Use Cases

    News & Articles

    Rewrite wire copy into on-brand human-style editorials in seconds.

    Product Descriptions

    Bulk-generate natural, fluent product copy at scale.

    Academic Drafts

    Polish essays and research drafts without changing meaning.

    API Workflows

    Pipe raw text through Humanize + Detect in a single call.

    Localization

    Auto-detect + humanize across 50+ languages in one workflow.

    Marketing

    Rewrite AI-generated landing copy so it scores clean on AI detectors.

    Support

    Need help? We've got you covered.

    Need a hand integrating?

    Premium and Enterprise plans include priority email support.

    Contact support