Deepfake

Analyzes a photo to assess whether the input is likely real or synthetically generated (e.g. deepfake). This is a standalone image authenticity check.

The higher the score, the more likely the image is genuine.

Endpoint

POST https://cloud.ooto-ai.com/api/v1.0/deepfake

Request Format

  • Method: POST

  • Content-Type: multipart/form-data

Authentication Headres

To access the API, you need to include the following headers in your request:

  • APP-ID: Your application's unique identifier.

  • APP-KEY: Your application's authentication key.

Form Data

Field

Type

Required

Description

photo

File

Yes

JPEG or PNG image with one visible face

Example Request (cURL)

curl -X POST --location 'https://cloud.ooto-ai.com/api/v1.0/deepfake' \
--header 'APP-ID: put_app_id_here' \
--header 'APP-KEY: put_app_key_here' \
--form 'photo=@"/path/to/photo"'

Replace «app_id», «app_key» with your actual credentials and the path to your selfie image.

Successful Response (HTTP 200)

{
  "transactionId": "2f679199-aafe-4b05-a722-728615b6aca2",
  "result": {
    "deepfake": {
      "score": 0.9491408169269562,
      "fine": true
    },
    "quality": {
      "pitch": 5.798101723194122,
      "yaw": -2.267319895327091,
      "roll": -0.3308084886521101,
      "uniformity": {
        "value": 0.7976967765996249,
        "fine": true
      },
      "exposure": {
        "value": 0.6352452907096943,
        "fine": true
      },
      "contrast": {
        "value": 0.780912373462111,
        "fine": true
      },
      "flare": {
        "score": 0.026086460798978806,
        "fine": true
      },
      "blur": {
        "score": 0.000007942797310533933,
        "fine": true
      },
      "macroblocks": {
        "score": 8.378465921055067e-9,
        "fine": true
      },
      "distortion": {
        "score": 0.907139241695404,
        "fine": false
      },
      "occlusion": {
        "score": 0.0005318471812643111,
        "fine": true
      },
      "emotion": {
        "score": 0.020526384934782982,
        "fine": true
      },
      "leftEyeClosed": {
        "score": 0.004296362400054932,
        "fine": true
      },
      "rightEyeClosed": {
        "score": 0.000009238719940185547,
        "fine": true
      },
      "crfiqa": {
        "score": 0.5999192595481873,
        "fine": true
      }
    },
    "demography": {
      "age": 59,
      "gender": "male",
      "race": "latino hispanic"
    },
    "box": {
      "x": 655,
      "y": 1083,
      "w": 937,
      "h": 1210
    },
    "landmarks": [
      [
        912,
        1580
      ],
      [
        1344,
        1583
      ],
      [
        1125,
        1835
      ],
      [
        946,
        1996
      ],
      [
        1297,
        1999
      ]
    ]
  }
}

Field Explanation

Field

Description

score

Deepfake confidence score (range: 0.0–1.0) — higher is better

fine

true if score ≥ threshold (e.g. ≥ 0.9)

quality

Image quality of the detected face

box

Face bounding box [x1, y1, x2, y2]

landmarks

Facial keypoints (68-point format)

Error response (HTTP 400)

{
  "transactionId": "efb66e50-4c87-493d-b026-543dacdbe314",
  "result": {
    "status": "error",
    "code": 5,
    "info": "can not detect face"
  }
}

Engine Errors

Code

Info

1

photo should not be empty

2

wrong mime-type in input data

3

photo size is 0 bytes

4

can not decode image, check it is valid jpeg or png file

5

can not detect face

6

more than one face detected on photo

9

can not extract features from sample, probably it is too small

Notes

  • Score close to 1.0 → highly confident that image is real

  • Use with liveness check for enhanced spoof detection

  • Ensure good lighting, resolution, and frontal face for best results

Last updated