# Liveness

The Liveness detection algorithm is intended to detect a real living person in a media.

### Requirements

1. You're [authorized](/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication.md).
2. You have already [created a folder and added your media](/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/uploading-media.md) marked by correct tags into this folder. \
   For API 4.0.8 and below, please note: the Liveness analysis works with videos and shotsets, images are ignored. If you want to analyze an image, upload it as a shotset (archive) with a single image and mark with the  `video_selfie_blank` tag.

### Processing Steps

1\. Initiate the analysis for the folder: `POST /api/folders/{{folder_id}}/analyses/`

If you want to use a webhook for response, add it to the payload at this step, as described [here](/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/using-a-webhook-to-get-results.md).

{% code title="request body" %}

```json
{  
  "analyses": [
    {
      "type": "quality",
      "source_media": ["1111aaaa-11aa-11aa-11aa-111111aaaaaa"], // optional; omit to include all media from the folder
      ...
    }
  ]
}
```

{% endcode %}

You'll need`analysis_id` or `folder_id` from response.

2\. If you use a webhook, just wait for it to return the information needed. Otherwise, initiate polling:

* `GET /api/analyses/{{analysis_id}}` – for the `analysis_id` you have from the previous step.
* `GET api/folders/{{folder_id}}/analyses/` – for all analyses performed on media in the folder with the `folder_id` you have from the previous step.

Repeat the check until the`resolution_status` and `resolution` fields change status to any other except `PROCESSING` and treat this as a result.

For the Liveness Analysis, seek the `confidence_spoofing` value related to the video you need. It indicates a chance that a person is not a real one.

<pre class="language-json"><code class="lang-json"><strong>[
</strong><strong>  {
</strong><strong>    // you may have multiple analyses in the list
</strong><strong>    // pick the one you need by analyse_id or type
</strong>    "analysis_id": "1111aaaa-11aa-11aa-11aa-111111aaaaaa",
    "type": "QUALITY",
    "results_media": [
      {
        // if you have multiple media in one analysis, match score with media by source_video_id/source_shots_set_id 
        "source_video_id": "1111aaaa-11aa-11aa-11aa-111111aaaaab", // for shots_set media, the key would be source_shots_set_id 
        "results_data": 
        {
          "confidence_spoofing": 0.05790174 // quantitative score for this media
        }
      "resolution_status": "SUCCESS", // qualitative resolution (based on all media)
      ...
    ]
    ...
  }
  ...
]
</code></pre>


---

# 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://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness.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.
