Skip to main content
POST
Writer & Humanizer
The /api/stealthify endpoint is the core of the StealthGPT API, allowing you to generate new content or rephrase existing text to be undetectable by AI detection tools.
model is required. You must explicitly pass "super", "standard", or "lite". Requests that omit model return 400 Bad Request. There is no default, please pick one.
For integrations that cannot keep a request open, use the async POST /api/stealthify/runs flow. rephrase works the same way there. This synchronous endpoint remains unchanged for existing API clients.
Humanization automatically strips invisible AI text watermarks. Claude and Gemini embed a statistical pattern in their word choices, invisible to a reader, but it travels with copy and paste and can survive light editing. The humanizer rewrites at the sentence and structure level rather than swapping synonyms, which is the category of change those marks are not built to survive. Meaning stays intact; Claude, Gemini SynthID, and other invisible text watermarks do not.

Request Parameters

string
required
Your unique API authentication token. You can find this in your StealthGPT dashboard under the API Key tab.
string
required
When rephrase is false, the topic or instructions for content generation. When rephrase is true, the existing text to humanize — send only that source text, with no instruction wrappers. Maximum 3,000 words per request.
boolean
required
Set to true to rephrase the provided prompt text, or false to generate new content based on the prompt
string
required
Selects the humanizer model. Required — you must pass one of "super", "standard", or "lite". Omitting model returns 400. See Models for a full comparison.
Humanize / rephrase input: when rephrase is true, put only the source text in prompt. Do not add instructions such as “Humanize the following text”, “Rewrite this to sound more human”, or “Make this undetectable”. Those prefixes confuse the model and hurt output quality. Choose the model and speed with API parameters (model, qualityMode, outputFormat) instead. Instruction-style prompts, tone and writingMode are for generation (rephrase: false) only.
string
Controls the style and complexity of generated content when writingMode is essay (ignored in default mode and when rephrase is true)
string
default:"default"
Controls how content is generated when rephrase is false. Has no effect when rephrase is true.
string
default:"quality"
Controls rewrite quality vs speed.
boolean
default:"false"
Keeps every marker such as [[T1]] byte-for-byte, in order, while the text around it is humanized. Use it for links, HTML tags, headings or anything else you tokenize before sending. Requires rephrase: true. See Text Preservation.
string
default:"[["
Opening delimiter of a marker, 1-10 characters, no spaces.
string
default:"]]"
Closing delimiter of a marker, 1-10 characters, no spaces. Must differ from preservationOpen.
number
default:"10"
Most characters allowed between the delimiters (1-64). A [[ without a ]] within this many characters is ordinary text.
string
default:"inline"
"inline" rewrites the text in one pass with the markers held in place, and falls back to "split" for any text where a marker moved. "split" rewrites each stretch between two markers on its own.
string
default:"text"
Controls the formatting of the returned content.

Response

string
The generated or rephrased content
number
Human-likeness score from 0 to 100. Higher is better: a higher score means the content reads as more human and is less likely to be flagged as AI; a lower score means it is more likely to be detected as AI-generated. (The field name is historical — treat a higher value as the better result.)
number
Prepaid word balance remaining after this request.
number
Words charged for this request.
string
Whether the request was billed from prepaid words (prepaid) or pay-as-you-go metered billing (payg).
number
If billed via pay-as-you-go, words added to metered usage for this request (0 when billed from prepaid).
object
Only with preservation: true: frozenCount (markers in the input), preservedCount (markers returned unchanged, always equal to frozenCount), mode (the requested inline or split) and fallbackUsed (in inline mode, true when the text fell back to split). See Text Preservation.

Example Request

Super is billed at $0.05 / 100 words (vs $0.20 / 1,000 words for standard and lite). Both rates apply to input words plus output words.

Example Response

Usage Notes

  • Texts over 3,000 words go to POST /api/stealthify/runs in one request; see Long Texts
  • When rephrase is true, send only the source text in prompt — no “humanize / rewrite / make undetectable” wrappers
  • When rephrase is false, the quality and relevance of generated content depends on the phrasing of your prompts
  • To keep links, HTML or other spans unchanged, mark them and send preservation: true; see Text Preservation
  • Humanization automatically strips invisible AI text watermarks (Claude, Gemini SynthID, and similar marks) as part of the sentence-level rewrite, no extra parameter
  • For more advanced usage techniques, see our Advanced Usage Guide