AI Image Detection
Determine whether an image was generated by AI or captured by a human. Returns a confidence score across a multi-model ensemble.
POST
/ai/detectAuthentication
Bearer token in the Authorization header.
Request
Content-Type:
multipart/form-data| Field | Type | Required | Description |
|---|---|---|---|
| file | File | Required | Image file to analyse. Accepts PNG, JPEG, and WebP. |
Response
| Field | Type | Description |
|---|---|---|
| score | number | Probability the image is AI-generated (0.0 – 1.0). |
| verdict | string | Pixel-score verdict: "likely_ai" (>0.7), "possibly_ai" (>0.5), "probably_real" (>0.3), or "likely_real". |
| pixel_score | number | Same as score. The pixel ensemble only; not mutated by credentials. |
| provenance | object | Pass-1 credentials: C2PA, optional SynthID, and generator metadata (A1111/ComfyUI/EXIF). Absence is not evidence of a real photo. |
| combined_verdict | string | "ai_credentialed" or "real_credentialed" when Pass 1 finds evidence; otherwise equals verdict. |
Example
Request
curl -X POST https://api.cacuda.com/ai/detect \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "file=@photo.jpg"
Response 200 OK
{
"score": 0.92,
"verdict": "likely_ai",
"pixel_score": 0.92,
"combined_verdict": "ai_credentialed",
"provenance": {
"c2pa": {
"present": true,
"valid": true,
"ai_generated": true,
"generator": "OpenAI"
},
"synthid": {
"checked": false,
"detected": false
},
"metadata": {
"present": false
},
"verdict": "ai_credentialed"
}
}Error Codes
| Code | Description |
|---|---|
| 400 | No file provided or unsupported format. |
| 401 | Missing or invalid API key. |
| 402 | Insufficient credits. |
| 503 | Detection service unavailable. |
Try it in the scanner
Test this endpoint interactively with real data. No code required.
Open Scanner