AI Content Detector
Estimate whether text, or the text of a web page, was written by an AI assistant. The result is a stylometric score, the signals behind it, and a band around the score. It does not judge images or other media.
Send exactly one of text or url. Under 80 words the verdict is uncertain. Detection is probabilistic and should not be the only evidence.
Step 1 — Text
curl -s -X POST https://x402-micro-pay.com/api/skills/ai-detector \
-H "Content-Type: application/json" \
-d '{"text":"Paste a passage of at least a few sentences."}'
A short snippet still returns signals, and the verdict stays uncertain until there are 80 words.
Step 2 — URL
curl -s -X POST https://x402-micro-pay.com/api/skills/ai-detector \
-H "Content-Type: application/json" \
-d '{"url":"https://www.gutenberg.org/files/1342/1342-h/1342-h.htm"}'
The page is fetched and its text is scored. A page that cannot be fetched, or that has no text, returns uncertain and a reason. No sample paragraph is substituted.
Step 3 — Agent
python -m agent.humanless_client ai_detector --text "Paste a passage of at least a few sentences."
Output fields
verdict—likely_ai,likely_human, oruncertain.likely_humanneeds a low score and positive human evidence (contractions, uneven sentence lengths, or verse). A low score without that evidence isuncertain, because plain model output without stock phrases can also score low.ai_likelihood— stylometric score from 0 to 1, or null when nothing could be scoredband— low and high around that score, or null when nothing could be scoredsignals— sentence length and variance, burstiness, type-token ratio, hapax ratio, punctuation diversity, repeated n-grams, stock phrases per 100 words, contraction rate, average word length, and line-length uniformitymethod—stylometry, orstylometry+llmwhenOPENROUTER_API_KEYis set and a second opinion comes backword_countcaveats— always includes a note that detection is probabilisticreason— present when a URL could not be scored
ai_likelihood is not a calibrated probability. The optional model check, when configured, is blended at a weight of 0.25 and reported under llm.
The 4-section rubric
The verdict comes from a fixed, deterministic rubric. Each section returns
human_sign, ai_sign or no_signal with evidence.
| Section | Weight | Looks at |
|---|---|---|
| rhythm | 10% | sentence-length variance and burstiness |
| vocabulary | 40% | a weighted list of LLM tell phrases (secondary signal) |
| voice_structure | 30% | hedging, distancing, over-tidy transitions, uniform paragraphs, missing specifics vs. first person, dialogue, names, asides |
| resolution | 20% | each section re-checks its neighbour |
likely_ai or likely_human needs at least two sections agreeing with
positive evidence and none pointing the other way. Tell phrases alone never
decide: unconfirmed tells give possible_ai_influence. Disagreement gives
uncertain. content_type (story, opinion, factual_claims) is a label only;
nothing is fact-checked. ai_likelihood is still the stylometric score.