Submit a passage of text and classify it as AI-generated or human-written.
Processing is asynchronous by default: the response returns immediately with `status: processing`,
and you can poll `GET /text_detect/{uuid}` or supply a `callback_url` to be notified. Send the
`Prefer: wait` header to block until the verdict is available and receive the completed item in the
same response. Allow a generous client timeout when waiting, since the first request after a period
of inactivity can take several minutes while the model warms up.
Requests are rejected with a 400 when `text` is missing, exceeds 100,000 characters, or contains
fewer than 25 words. Each successfully scored request bills one Text Detection unit; abstained
(`uncertain`) results are not billed.
Request
This endpoint expects an object.
textstringRequired1-100000 characters
The text to analyze. Must contain at least 25 words (whitespace-delimited) and at most 100,000 characters. Shorter passages are rejected with a 400 because no threshold reliably separates casual human writing from AI-generated text below that length.
thinkingenumOptionalDefaults to low
How much reasoning effort the detector spends on the passage. Higher levels can improve accuracy on ambiguous text at the cost of latency.
thresholddoubleOptional
Probability cutoff used to turn the AI-likelihood score into the ai or human prediction. Scores at or above the threshold are reported as ai.
callback_urlstringOptionalformat: "uri"
POST destination for the result once processing finishes. The body matches the response of GET /text_detect/{uuid} with an additional top-level error field when analysis failed.