Early access
The detector, as an API.
The same engine that scores every scan on this site, returning structured JSON: a calibrated five-way verdict, confidence, and per-segment scores built for moderation pipelines, submission screening, and audit tooling.
Access is early and deliberately conversational — keyed, with real daily quotas and no published pricing yet. Tell us what you're building and we'll set you up, or say honestly that we're not ready for your scale.
Example response
{
"score": 87,
"classification": "AI_POLISHED",
"upstreamClassification": "AI_HUMAN_EDITED",
"confidence": "high",
"model": "best-overall",
"resolvedModel": "v22",
"mode": "standard",
"wordCount": 412,
"breakdown": {
"human": 0.04,
"mixed": 0.07,
"ai": 0.21,
"ai_human_edited": 0.62,
"ai_machine_humanized": 0.06
},
"segments": [
{ "text": "The first passage of the document…", "score": 91 },
{ "text": "A middle passage that reads more human…", "score": 44 }
]
}Segments cover the input end to end — concatenated, they reproduce the scored text exactly.
Design decisions
Built for the pipeline,
not the demo
Four decisions shape the API, all downstream of one belief: a detection score should start a graduated process, not fire a tripwire. The format exists to make the responsible integration the easy one.
Choose the best model for the job
Pin a key to best-overall, best-ai, best-humanized, or best-mixed. Those purpose aliases are selected from protected certification results and can follow a better deployed checkpoint later. Pin v15, v21, v22, or the v21+v22 ensemble when reproducibility matters more than automatic upgrades.
A five-way verdict, not a bare number
The service returns a calibrated classification — HUMAN_ONLY, MIXED, AI_ONLY, AI_POLISHED, or AI_HUMANIZED — with a confidence level, alongside the raw score. Thresholds are calibrated per length band on held-out data, which is why the verdict comes from the service rather than from cutting the percentage at a round number on your side. Re-deriving verdicts client-side is the classic integration mistake in this category; the API is shaped so you never need to.
Per-segment scores, end to end
Segments cover the input completely and in order — concatenating them reproduces the scored text exactly. That means you can render shading over the original, gate review on the worst passage rather than the average, and handle the mixed human-AI documents that dominate real pipelines instead of collapsing them to one number.
Humanizer-aware by training
AI_POLISHED and AI_HUMANIZED are first-class classes, not afterthoughts: the model trains on AI text pushed through commercial paraphrasers and humanizers, mirrored against human originals. Coverage of that arms race is partial for every vendor and changes monthly — but it is an explicit training target here, not a gap.
Nothing stored
Text is scored in memory and never stored. For a moderation or screening pipeline this is the difference between 'we call a scoring service' and 'we ship user content to a third party' in your privacy policy — ask this question of every detection API you evaluate, ours included.
How to call it
A Bearer key, one POST, structured JSON back
POST /api/v1/detect with Authorization: Bearer mh_sk_… and a JSON body that includes the text. The key is the identity — no cookies, no account session, no free-tier device quota on this path. Keys are pinned to a model: purpose aliases such as best-overall follow protected certification results and can move to a better deployed checkpoint later; explicit pins (v15, v21, v22, the v21+v22 ensemble, v24 certified) stay put until that checkpoint is retired.
GET /api/v1/models lists the current choices without a key. Use it in CI or an admin screen rather than hard-coding a list that will drift. One request accepts up to 10,000 words. Below a few hundred words, every detector's output degrades toward noise — build the pipeline to skip or human-route short inputs rather than asking the API to bluff.
The response is the same contract the website uses: an overall score (0–100), a calibrated five-way classification (HUMAN_ONLY, MIXED, AI_ONLY, AI_POLISHED, AI_HUMANIZED) with a confidence level, word count, per-class probability breakdown, and per-segment scores that cover the input end to end in order. Concatenating the segments reproduces the scored text exactly, which is what lets you shade the original rather than a paraphrase of it.
Use the classification as returned. Thresholds are calibrated per length band on held-out data. Re-deriving a verdict by cutting the percentage at a round number on your side throws that calibration away and is the classic integration mistake in this category — it is also how automated false accusations get made at scale.
Text is scored in memory and never stored. The scan log keeps metadata only (key, model, word count, verdict), matching the public promise on the rest of the site. Early-access keys carry per-key daily quotas and a requests-per-minute cap sized to the use case. We will tell you the real numbers — including honest current limits on throughput — when we talk. There is no published SLA, because the service has not earned one yet.
How to use the verdict
Route to review. Do not wire a ban.
The five-way verdict and per-segment scores exist so you can build a graduated process. A detection API that is easy to treat as a tripwire is a liability, not a feature.
Moderation and trust-and-safety queues
Send high-confidence AI_ONLY or AI_HUMANIZED documents to human review. Use segment scores to jump to the worst passage rather than asking a reviewer to re-read the whole thing. Soft actions first.
Submission screening
Schools and publishers already know a single score is not a finding about a person. Surface the report next to the document. Do not auto-reject, auto-fail, or auto-notify a disciplinary process from this API.
Audit and sampling
Periodic checks over a corpus — published pages, a week's tickets, a batch of applications. The API is a better fit here than the browser box. Pin a model if you need the same checkpoint next quarter.
Not: automatic punishment
Every detector has error rates in both directions, concentrated on particular writers — non-native English above all. An automated ban path multiplies those errors by your volume. If that is the integration you want, we are the wrong vendor.
FAQ
Integration questions, answered straight
Is the AI detection API available now?
In early access. The service is live — it powers every scan on this site — and API keys with daily quotas exist today. What doesn't exist yet is self-serve signup and published pricing, so access currently starts with a conversation: tell us your use case and expected volume via the contact page and we'll set you up or tell you honestly that we're not ready for your scale yet.
What does the API return?
Structured JSON: an overall score (0-100, the model’s raw AI probability — uncalibrated, so it can lean against the verdict), a calibrated five-way classification (HUMAN_ONLY, MIXED, AI_ONLY, AI_POLISHED, AI_HUMANIZED) with a confidence level, word count, per-class probability breakdown, and per-segment scores that cover the input end to end in order. The verdict is calibrated per length band server-side — use it as returned rather than thresholding the score yourself.
Which detector model should I use?
Use best-overall unless your workload is specifically pure AI output, humanizer output, or mixed human-and-AI writing; those have best-ai, best-humanized, and best-mixed aliases. The aliases follow protected certification results. If reproducibility matters more than automatic upgrades, pin v15, v21, v22, or the v21+v22 ensemble. GET /api/v1/models lists the current choices without requiring a key.
What's the minimum text length?
The service enforces a word minimum and qualifies low-confidence ranges with an explicit note rather than bluffing — below a few hundred words, every detector's output degrades toward noise, and an API that confidently scores tweet-length text is overclaiming. Build your pipeline to skip or human-route short inputs.
Should scores gate automatic actions?
Route to human review or soft actions — never automatic punishment. Every detector has error rates in both directions, concentrated on particular writers (non-native English above all), and an automated ban path multiplies those errors by your volume. The five-way verdict and per-segment scores exist precisely so you can build graduated responses instead of a single tripwire.
Is there a rate limit or SLA?
Early-access keys carry per-key daily quotas sized to the use case, and we'll tell you the real numbers — including honest current limits on throughput — when we talk. We'd rather set expectations correctly than publish an SLA the service hasn't earned yet. Request a key from the contact page; there is no self-serve signup and no published price list.
Build on evidence, not a tripwire
Five-way verdicts, per-segment scores, nothing stored. Tell us what you're building.