Liveness

Analyzes a single photo to determine whether it likely came from a live person (not a screen, printed photo, or mask).

No template enrollment or comparison is performed — this is a standalone liveness check.

Endpoint

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

Request Format

  • Method: POST

  • Content-Type: multipart/form-data

Authentication Headers

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 clear human face

Example Request (cURL)

curl -X POST --location 'https://cloud.ooto-ai.com/api/v1.0/liveness' \
--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": "6cd34e01-d641-4ace-b2c0-3d548df1beae",
    "result": {
        "liveness": {
            "score": 0.8860905766487122,
            "fine": true
        },
        "box": {
            "x": 25,
            "y": 275,
            "w": 606,
            "h": 761
        },
        "landmarks": [
            [
                230,
                574
            ],
            [
                457,
                567
            ],
            [
                369,
                740
            ],
            [
                248,
                802
            ],
            [
                444,
                796
            ]
        ]
    }
}

Field Explanation

Field

Description

score

Liveness score from 0.0 to 1.0 — higher is more likely live

fine

true if score passes internal threshold (usually ≥ 0.75)

quality

Image quality of detected face

box

Bounding box of detected face [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

  • Use in real-time flows to detect screen/photo attacks

  • Input must contain exactly one frontal face

  • Can be used before enrolling or verifying identity

Last updated