# Deepfake

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

#### Endpoint

```bash
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)

```bash
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)

```json
{
  "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)

```json
{
  "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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ooto-ai.com/services/deepfake.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
