AI Humanizer API
Humanize AI text inside your own product with a single REST call. The AI humanizer API exposes the engine that powers TextPulse to your backend: JSON goes in, rewritten prose comes back, across more than 60 languages.
Making your first request
Authenticate with an Authorization: Bearer header and post your text. The rewritten version returns as outputText alongside the metering figures for that call.
curl https://textpulse.ai/api/v1/humanize \ -H "Authorization: Bearer tp_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "text": "Our analysis indicates the intervention produced gains...", "writingMode": "Academic", "intensityScalar": 0.5 }'{ "outputText": "Our analysis points to measurable gains from the...", "metrics": { "inputWords": 128, "outputWords": 134, "wordsCharged": 128, "balanceRemaining": 99872, "modelLatencyMs": 4310, "route": "v1/humanize" }}What is an AI humanizer API?
An AI humanizer API is a REST endpoint that rewrites machine-generated text into natural, human-sounding prose from inside another product. Instead of pasting text into a web app, your backend sends it as JSON and receives the rewritten version in the response, so humanization becomes a feature of your own software: a button in an editor, a stage in a document pipeline, a batch job over a content library.
The TextPulse humanizer API exposes the same engine that runs the TextPulse dashboard. It works across more than 20 linguistic signals at once, varying sentence length and structure and replacing the vocabulary language models over-select, while in-text citations, reference entries, statistics and frozen terminology pass through verbatim. On a 2,000-document academic corpus, humanized output passed Turnitin AI 92.33% of the time, Originality.ai 89.12% and GPTZero 87.91%. That academic-grade behaviour is what separates it from generic paraphrase endpoints: the text your users get back is publishable, not just different.
What the AI humanizer API handles for you
Language routing, register control, metering and retry safety are part of the endpoint, so your integration stays a single function.
One route covers 60+ languages
English runs on the fine-tuned humanizer engine. Pass a language value and the request is routed to the multilingual path instead, so a non-English product page reaches the same endpoint without a second integration.
Register and strength are parameters
Five writing modes cover the Academic, Corporate, Creative, Blog/SEO and General registers. The intensityScalar value sets how different the rewrite is from the source and takes one of 0, 0.25, 0.5, 0.75 or 1, running from Mild through the Balanced default at 0.5 up to Aggressive.
One POST per document
There is no job queue to poll and no webhook to register. The humanize call holds the connection until the model returns and answers with the rewritten text, so a single request completes the work.
Retries do not charge twice
Send a requestId and the result is cached against it for about ten minutes. A repeat of the same identifier inside that window replays the stored response rather than running the model again, and any request the engine fails to complete returns its words to your balance automatically.
Endpoint reference
Authorization: Bearer header. Keys begin tp_live_ and are issued per project./api/v1/humanize/api/v1/balanceA single humanize call accepts up to 1,000 words within a 10,000 character ceiling, and each key may issue 60 requests per minute. Longer documents are sent as a sequence of calls.
Request parameters
Only text is required. Everything else has a sensible default, so the minimal integration is one field.
| Parameter | Type | Presence | Notes |
|---|---|---|---|
text | string | Required | The text to humanize. Up to 1,000 words within a 10,000 character ceiling per request. |
writingMode | string | Default: Academic | One of Academic, Corporate, Creative, Blog/SEO or General. Sets the register the rewrite holds. |
intensityScalar | number | Default: 0.5 | One of 0, 0.25, 0.5, 0.75 or 1. How far the rewrite moves from the source, from Mild through Balanced to Aggressive. |
language | string | Optional | Routes non-English text to the multilingual path. Omit it, or send English, for the fine-tuned English engine. |
englishVariant | string | Optional | American or British. Holds spelling and vocabulary to one side of the Atlantic. |
freezeTerms | string[] | Optional | Up to 10 terms or phrases that pass through the rewrite verbatim: construct names, instruments, product names. |
removeEmDashes | boolean | Optional | Rewrites em dash constructions into conventional punctuation. |
requestId | string | Recommended | Your idempotency token. Repeating it inside roughly ten minutes replays the stored response instead of charging again. |
Response fields
outputTextThe humanized text.metrics.inputWords / outputWordsWords received and words returned. Rewrites often run slightly longer than the source.metrics.wordsChargedWhat the call cost. Always equals the input count, never the output count.metrics.balanceRemainingWord credits left on the key after this call, so you can meter without a second request.metrics.modelLatencyMs / routeEngine time for the rewrite and the path that served it.Errors and retries
Every error returns JSON with a stable error.code and a human-readable message. The rule worth designing around: you are only ever charged for a rewrite that was delivered, and retrying with the same requestId is always safe.
UNAUTHORIZEDMissing or unrecognized API key. Check the Authorization: Bearer header.INSUFFICIENT_BALANCENot enough word credits on the key. The response includes the available balance.REQUEST_IN_PROGRESSA request with this requestId is still being processed. Wait for it rather than racing it.TOO_LONG / VALIDATION_FAILEDThe input breaks the 1,000-word cap or a parameter is malformed. The response lists the exact issues.ENGINE_ERRORThe engine failed or timed out. The words are already back on your balance; retry with the same requestId.The engine behind the endpoint
Every call runs the published TextPulse engine, measured on a 2,000-document academic corpus and re-run as detection models update. Pass rates by detector:
Vendor-measured figures, published with their corpus. No humanizer can promise a detector outcome on a specific document, so build your product's messaging on the measurement, not on a guarantee.
What teams build on the humanizer API
EdTech and writing platforms
Add a humanize action next to your existing grammar or paraphrase features. The Academic mode keeps citations intact, so student-facing tools do not have to strip references before sending text.
Document and proofreading tools
Pipe whole documents through in 1,000-word chunks and reassemble. Freeze terms hold names and terminology stable across chunks, and idempotent retries make batch pipelines safe to re-run.
Content and SEO products
Blog/SEO mode rewrites drafts into publishable prose while freeze terms lock the target keywords, so the copy keeps its search intent and loses the machine cadence.
White-label partners
The endpoint runs invisibly inside your product: your interface, your billing, our engine. Partner arrangements are quoted against monthly volume through the access form.
AI humanizer API pricing
Credits are prepaid and drawn down by the word. Billing counts what you send rather than what the engine returns, and any call that fails to produce a rewrite is credited back to the key.
Credits are valid for 12 months from purchase, and cover every language, writing mode and English variant the endpoint supports. For sustained volume or a white-label arrangement inside your own product, request access and we will quote against your monthly figure.
AI humanizer API questions
Get your API key
Keys are issued per project. Describe what you are building and we will reply within 24 hours.