AIPaperFix Pro
Detection API
Check English and Chinese text for AI-generated writing from your own scripts and apps. The API is included with AIPaperFix Pro and uses the same model as the website.
Get started
- Get AIPaperFix Pro. Pro & Pricing
- Create an API key on your account page and keep it secret. Account
- Send a POST request with your key in the Authorization header and the text as JSON.
Request
POST https://aipaperfix.com/api/v1/detect
curl https://aipaperfix.com/api/v1/detect \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Paste the English or Chinese text you want to check here."}'const response = await fetch("https://aipaperfix.com/api/v1/detect", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AIPAPERFIX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ text }),
});
const result = await response.json();
console.log(result.ai_probability, result.label);import os, requests
response = requests.post(
"https://aipaperfix.com/api/v1/detect",
headers={"Authorization": f"Bearer {os.environ['AIPAPERFIX_API_KEY']}"},
json={"text": text},
timeout=30,
)
result = response.json()
print(result["ai_probability"], result.get("label"))Response
{
"ai_probability": 0.82,
"label": "ai",
"sentences": [
{ "text": "First sentence of your text.", "ai_probability": 0.77 },
{ "text": "Second sentence.", "ai_probability": 0.88 }
],
"engine": "model",
"model_version": "aipf-2026.10-…"
}ai_probability- Overall AI signal from 0 to 1.
label- "human", "mixed" or "ai" — the same three bands as the website (below 0.4, 0.4–0.7, above 0.7).
sentences- Each sentence with its own AI signal, in the original order.
engine- "model" normally. "rules" with "fallback": true means the detection model was briefly unavailable and a basic rule-based estimate was returned.
confidence- "low" when the text is too short for a reliable result.
Limits
- Up to 20,000 characters per request.
- Up to 60 requests a minute per key.
- English and Chinese text only.
- Up to 5 keys per account.
Errors
Errors return JSON like {"error": "…", "code": "…"} with these status codes:
| HTTP | code | Meaning |
|---|---|---|
| 401 | invalid_api_key | The key is missing, wrong or deleted. |
| 402 | pro_required | The key belongs to an account without an active Pro subscription. |
| 400 | text_required | The text field is missing or empty. |
| 413 | text_too_long | The text is longer than 20,000 characters. |
| 422 | unsupported_language | The text is not English or Chinese. |
| 429 | rate_limited | Too many requests. Wait for the number of seconds in the Retry-After header. |
About accuracy
Scores are estimates, not proof of who wrote a text. Rewritten or “humanized” AI text is often missed, and non-native and student writing can land in the mixed range. Don’t use a score as the only basis for academic, hiring or other important decisions. How it works