API reference
Every GPTZero API endpoint, with Try It.
Detect AI in text
POST /v2/predict/text
Detects AI in a single text input and returns probabilities for the document, each paragraph and each sentence. Text longer than your plan's character limit is rejected with a `400`. On API plans, the limit is 150,000 characters. The language is detected automatically, and non-English text is scanned with the multilingual model. If you're evaluating the detector for research, read [how to interpret the multi-class output](https://gptzero.me/news/chicago-booth-2026/). For research questions about the API, [contact our research team](https://gptzero.me/resources/researchers). For anything else, [contact us](https://gptzero.me/contact-us).
Detect AI in files
POST /v2/predict/files
Detects AI in uploaded files and returns one result per file. You can upload up to 250 files per request, each up to 50 MB. Text extracted from each file is truncated to your plan's character limit (150,000 characters on API plans). If you're evaluating the detector for research, read [how to interpret the multi-class output](https://gptzero.me/news/chicago-booth-2026/). For research questions about the API, [contact our research team](https://gptzero.me/resources/researchers). For anything else, [contact us](https://gptzero.me/contact-us).
Stream AI patterns
POST /v3/ai/patterns/stream
Finds AI writing patterns in a document, such as the rule of three, and explains each match in plain language. Results stream back as [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events). Each event is a `data: <json>` line, where `<json>` is an `AiPatternStreamEvent` for one sentence and the patterns it matched. Sentences with no matches are skipped. The stream ends when the connection closes. The server sends a `:keepalive` comment every 30 seconds, which SSE clients ignore. If processing fails after the stream has started, the status is already `200`, so the error arrives as a final `data: {"error": "Error in streaming AI patterns"}` event. Check each event for an `error` field. AI Patterns isn't on by default. Your API key has to be allow-listed for it.
Bibliography scan (text)
POST /v2/bibliography-scan/text
Scans the text of one document for citations and claims, checks whether each citation exists, and returns the sources it matched. Text longer than your plan's character limit is rejected with a `400`. On API plans, the limit is 150,000 characters.
Bibliography scan (files)
POST /v2/bibliography-scan/files
Runs a bibliography scan on each uploaded file and returns one result per file.
Get usage stats
GET /v3/usage-stats
Returns how many words you have used and have left in the current billing cycle, and your plan.
List model versions
GET /v2/model-versions/ai-scan
Returns the model versions you can pass as `modelVersion`. The list can include versions that aren't released yet, so check the [release notes](https://docs.superhuman.com/d/Project-engineering-import_doYGpUuF477/GPTZero-Release-Notes-Model-and-API_suN_Kut5#_luA8d53F) for which ones are approved for use and what each one improves.