Check an image
Content type multipart/form-data
Tells you whether an image is AI-generated, manipulated or a real photograph, and checks any face in it for deepfake signs. The call is synchronous: you get back the finished run, already charged.
Request
curl -X POST "https://studioapi.kriyam.ai/models/defake/v2" \ -H "X-API-Key: $KRIYAM_API_KEY" \ -F "image=@photo.jpg"
Response
Authentication
Send your key in the X-API-Key header. See Authentication.
Request
Body
| Name | Type | Required | Description |
|---|---|---|---|
image | file | Required | The image to check. PNG or JPEG, up to 2 MB. |
Response
200 OK
Returns the run envelope. The fields below are what this tool puts inside it.
| Field | Type | Description |
|---|---|---|
result.aigc_analysis.classification | string | null | How the whole image was judged to have been produced. |
result.aigc_analysis.confidence_score | number | null | How sure that classification is, 0-100. |
result.aigc_analysis.watermark_detected | boolean | null | A generator's watermark was found — strong evidence, independent of the classifier's own judgement. |
result.aigc_analysis.watermark_details | object |
|
result.aigc_analysis.face_deepfake.face_detected | boolean | Whether the face model had anything to judge. False means not applicable, not clean — every field below is null then. |
result.aigc_analysis.face_deepfake.verdict | string | null |
|
result.aigc_analysis.face_deepfake.fake_probability | number | null | How likely the face is swapped or synthetic, 0-1. |
result.aigc_analysis.face_deepfake.real_probability | number | null | The converse, 0-1. |
Errors
| Status | Code | When |
|---|---|---|
| 400 | — | The image is empty, over 2 MB, or can't be decoded. |
Every keyed call can also get401402403404429— see Errors.
