Detection API
The same analysis that runs in the browser is available over HTTP. Open now, no key required, subject to the same fair-use limit as the web tool.
Early access. This endpoint is stable enough to build against, but rate limits and response fields may still change. If you need higher limits, an SLA, or batch processing, get in touch before you depend on it.
POST/api/detect
Accepts multipart/form-data with a single field named image. Returns JSON.
Example
curl -X POST https://image-detector.net/api/detect \
-H "Accept: application/json" \
-F "[email protected]"Success — 200
{
"ok": true,
"result": {
"score": 87.4, // 0-100, AI-generated likelihood
"verdict": "likely-ai", // likely-ai | possibly-ai | uncertain
// | possibly-real | likely-real
"confidence": "high", // high | medium | low
"engines": ["classifier", "forensics"],
"degraded": false, // true = forensics only, advisory
"signals": [
{
"id": "model-classifier",
"label": "Neural classifier verdict",
"detail": "A trained image classifier scored ...",
"weight": 1,
"engine": "classifier"
}
],
"warnings": [],
"image": {
"format": "jpeg",
"width": 1024,
"height": 1024,
"bytes": 184320,
"hasExif": false
},
"analyzedAt": "2026-01-01T00:00:00.000Z",
"durationMs": 1240
}
}Failure — 4xx / 5xx
{
"ok": false,
"code": "too_large", // no_file | bad_type | too_large | too_small
// | rate_limited | internal
"message": "That file is 20.4 MB. The limit is 12 MB.",
"retryAfter": 1800 // seconds, only for rate_limited
}Limits
- Payload
- 12 MB per image
- Minimum
- 64 × 64 pixels
- Formats
- JPEG, PNG, WebP, AVIF, GIF, TIFF, BMP
- Rate limit
- Per IP per hour, HTTP 429
Send the original file rather than a re-encoded copy. Resizing or re-compressing an image before upload strips its metadata and flattens its compression structure — the two things the forensics pass reads — so a pre-processed upload scores lower confidence than the same image sent untouched. Submitted images are held in memory for the request only and never written to disk; see the privacy notice.
Notes for integration
Check degraded before acting on a score. When it is true the classifier was unreachable and the result came from file forensics alone — accurate enough for a hint, not for an automated moderation decision. The same applies to a confidence of low. Please read the accuracy notes before wiring this into anything that affects people.