Detect API
Detection that shows its work.
Sentence-by-sentence AI-likelihood with the pattern behind every flag, a confidence that follows the evidence, and calibration to the writer you actually care about.
- Per-sentence scores
- Named signals, not black boxes
- 1 word of allowance per 5 scanned
POST /v1/detect · granularity: sentence
In today's fast-paced business landscape, onboarding has never been more important.
In this post, we'll explore three strategies to help your team get new hires productive faster.
First, set up accounts before day one so nobody spends a morning waiting on IT.
Second, pair every new hire with a buddy for their first two weeks.
Third, write down the ten questions everyone asks, and answer them once.
By implementing these strategies, you can create an onboarding experience that drives engagement and retention.
In conclusion, great onboarding isn't just a process, it's an investment in your people.
Hover a sentence to inspect it. Example text and scores.
0%
Document
likely_ai
verdict
medium
96 words
Sentence 1
0.96
A scene-setter that could open any post on any topic. Says nothing the reader can use.
Principles
Signals, not verdicts.
Detection is useful when it helps an editor look in the right place. It's harmful when it's treated as proof. The API is designed around that difference.
{
"verdict": "mixed",
"ai_likelihood": 0.58,
"confidence": "medium",
"signals": ["stock_opener",
"restated_close"]
}
Signals, not verdicts
You get a likelihood, a confidence and the evidence behind them. Nothing in the response claims to prove who wrote a text, and you shouldn't use it that way.
Every flag names the pattern that tripped it.
Calibrated to the writer
Some people simply write in ways generic detectors mistake for AI. Pass calibrate_to and we score against that person's own samples instead.
Perplexity-based detectors flagged 61% of essays by non-native English writers as AI. Liang et al., 2023.
Confidence follows length
A tweet doesn't carry enough evidence for a strong call, and the response says so. Confidence rises with word count, and short texts come back marked low.
Current thresholds: low below 150 words, medium to 600, high above.
How it works
Four passes, one readable answer.
- 1
Segment
The text is split into sentences and paragraphs, keeping headings and lists intact.
granularity
- 2
Score each sentence
Each sentence gets its own likelihood from phrase habits and rhythm, in context.
sentences[].ai_likelihood
- 3
Read the structure
Document-level patterns (announced thesis, restated close, summary sections) are checked.
structure[]
- 4
Calibrate & explain
Optionally measured against a known writer, then returned with the evidence for each flag.
calibrate_to
Interactive example
See how the score is built.
Switch samples, calibrate to a known writer, turn sentence scores off, or shorten the text and watch confidence drop.
An onboarding post drafted with an AI assistant, with three human-written steps in the middle.
In today's fast-paced business landscape, onboarding has never been more important.Stock opener
In this post, we'll explore three strategies to help your team get new hires productive faster.Announced thesis
First, set up accounts before day one so nobody spends a morning waiting on IT.
Second, pair every new hire with a buddy for their first two weeks.
Third, write down the ten questions everyone asks, and answer them once.
By implementing these strategies, you can create an onboarding experience that drives engagement and retention.Uniform rhythm
In conclusion, great onboarding isn't just a process, it's an investment in your people.Restated close
Drag left to see confidence fall as the evidence gets shorter.
91%
AI-likelihood
likely_ai
verdict
medium
confidence
Signals
Structure
- Thesis announced up front
- Summary section
- Close restates the thesis
What we look for
The patterns are measurable.
Published research shows AI writing gives itself away in structure more than in vocabulary. These are the signals Detect names in its response, with the data behind them.
Structure
AI postsHuman posts
- Thesis announced up front93%51%
- Summary section88%27%
- Close restates the thesis77%12%
- Old-vs-new framing76%26%
- No way for the reader to act97%38%
Share of B2B posts showing each pattern. Source: Sitefire / SlopShape v3, arXiv 2609.15369 (Sept 2026). Structure alone reaches 97.0 macro-F1, and 96.1 after the AI rewords its own posts.
Trailing “-ing” clauses
5.3×
GPT-4o's rate of sentence-final analysis clauses (“…, highlighting the need for…”) vs human writers.
Reinhart et al., PNAS 2025
Tell-tale vocabulary
28×
How often “delves” appeared in 2024 PubMed abstracts vs its expected rate.
Kobak et al., Science Advances 2025
Metronome rhythm
sd
Sentence lengths that barely vary. Measured as spread, then compared with the writer's own baseline when you calibrate.
Measured per request
Tech specs
- Endpoint
POST /v1/detect· modeldetect-2026-10Base URL
https://api.intactvoice.com/v1- Input
40 to 25,000 words of plain text per request
- Granularity
documentone score ·sentenceadds per-sentence scores and signals- Response
verdictlikely_human | mixed | likely_aiai_likelihood0–1 ·confidencelow | medium | highsentences[]andstructure[]with named signals- Calibration
calibrate_toany voice_id; scores are relative to that writer's baselineCounts the same as an uncalibrated request
Available on Pro API and Ultra API
- Confidence
Low below 150 words, medium to 600, high above
- Sync or async
Synchronous by default: the call waits up to 120 s
Long texts: pass
async: truefor a job and a webhook- Availability
Async jobs wait for worker capacity
- Rate limits
Basic API 60 req/min, Pro API 180 req/min and Ultra API 600 req/min
Enterprise: by agreement
- Billing
1 word of allowance per 5 words scanned
Calibrated requests count the same
- Your text
Deleted when the scan finishes
Request logs keep metadata only, never the text
API
The contract.
One POST, a readable JSON answer. Here's the request, its parameters and the endpoints you'll use with it.
curl -X POST https://api.intactvoice.com/v1/detect \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "In today'\''s fast-paced world, side hustles are more than just extra cash. In this post, we'\''ll explore…",
"granularity": "sentence",
"explain": true
}'{
"id": "dt_01JD4QB2M9",
"object": "detection",
"model": "detect-2026-10",
"verdict": "likely_ai",
"ai_likelihood": 0.94,
"confidence": "medium",
"sentences": [
{
"text": "In today's fast-paced world, side hustles are more than just extra cash.",
"ai_likelihood": 0.97,
"signals": [
"stock_opener",
"inflation_frame"
]
}
],
"structure": [
{
"feature": "announced_thesis",
"present": true
},
{
"feature": "restated_close",
"present": false
}
],
"usage": {
"words_billed": 19
}
}/detectapi.intactvoice.com/v1Scores how likely a text is to be AI-generated, sentence by sentence, and returns the reasons: structural patterns, phrase habits and rhythm. Optionally calibrated against a known writer's own samples.
| Parameter | Type | Description |
|---|---|---|
| textrequired | string | Text to analyse, 40–25,000 words. Short texts return confidence: low. |
| granularity | document | sentence | sentence adds per-sentence scores.Default sentence. |
| explain | boolean | Return the signals behind the score.Default true. |
| calibrate_to | string | A voice_id. Scores are reported relative to that writer's own baseline. |
Billed per input word at the Detect rate. Calibrated requests cost the same.
FAQ
Questions, answered.
Something missing? Email support@intactvoice.com.
Know what to look at.
Score your own content sentence by sentence. Detect uses 1 word of allowance per 5 scanned, so 200,000 words on Basic API cover 1,000,000 words of detection.
- Annual: 2 months free
- Failed fidelity checks use no words
- Cancel anytime