# Data Retrieval

After a video identification call is completed, LiveID+ provides APIs to retrieve the call data, including photos, documents, form values, and the full audit trail.

br
## Authentication for Data Retrieval

All data retrieval APIs require authentication. There are two methods:

1. **Token from call closing event**: The `message.token` parameter included in the `close` event payload can be used directly.
2. **API-generated token**: Use the `genAPIToken` endpoint to generate a token for a specific conference.


### Generating an API Token

**Endpoint:** `GET /api/authenticate/genAPIToken`

**Authentication:** API Key (header `apikey`)

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `idConference` | string | Yes | Unique ID of the call |


**Success Response:**


```json
{
  "success": true,
  "token": "jwt_token_string"
}
```

**Note:** The generated token has a limited validity (approximately 2 minutes). Generate it immediately before using it to retrieve data.

br
## Retrieving Call Data

**Endpoint:** `GET /api/v1/conferenceData`

**Authentication:** Bearer token (header `Authorization: Bearer <token>`)

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `idConference` | string | Yes | Conference process ID |
| `module` | string | No | Specific module to retrieve: `"photo"`, `"formfilling"`. If omitted, all data is returned. |


**Success Response:**


```json
{
  "success": true,
  "call_answer_date": "2026-01-15T14:32:00.000Z",
  "call_end_date": "2026-01-15T14:45:00.000Z",
  "call_last_activity": "2026-01-15T14:44:50.000Z",
  "end_pattern": "N",
  "operator": {
    "id": "operator-uuid",
    "name": "Mario Rossi",
    "external_id": "EXT-001"
  },
  "data": {
    "module_1": { ... },
    "module_2": { ... }
  }
}
```

The `end_pattern` values are:

| Value | Description |
|  --- | --- |
| `N` | Successfully completed |
| `A` | Aborted by operator |
| `K` | Call closed by system |
| `S` | Suspended |


For details about the module data structure, see the [Conference Data Module Structure](/it/products/liveidplus/enterprise/get-started/conference-data-structure) reference.

br
## Retrieving Audit Data (ZIP)

The audit data endpoint returns a ZIP file containing the audit log PDF, photos, and optionally video recordings from the identification session.

### getAuditData V2

**Endpoint:** `GET /api/v2/getAuditData`

**Authentication:** Bearer token (header `Authorization: Bearer <token>`)

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `idConference` | string | Yes | Conference process ID |
| `av` | string | No | Set to `"1"` to include audio/video recordings. Default: `"0"` |
| `direct` | string | No | If `"1"`, redirects directly to the ZIP file. If `"0"`, returns a JSON with a presigned download URL. Default: `"0"` |


**Response when `direct=0`:**


```json
{
  "success": true,
  "url": "https://s3-presigned-url-to-zip-file"
}
```

**Response when `direct=1`:** HTTP 302 redirect to the ZIP file.

### ZIP File Contents

The downloaded ZIP archive contains:

- **Audit log PDF**: A structured document with the full trail of the identification session.
- **Photos**: All photos captured during the session (document scans, selfies, etc.).
- **Videos** (if `av=1`): Organized as `/videos/operator/` and `/videos/customer/` subdirectories.


br
## Deleting Audit Data

**Endpoint:** `DELETE /api/v1/deleteAuditData`

**Authentication:** Bearer token (header `Authorization: Bearer <token>`)

| Parameter | Type | Required | Description |
|  --- | --- | --- | --- |
| `idConference` | string | Yes | Conference process ID |
| `eraseAll` | string | No | If `"1"`, also erases database records. Default: `"0"` (only deletes physical files). |


**Success Response:**


```json
{
  "success": true
}
```

**Note:** By default, this endpoint deletes only the physical files (photos, videos, documents) while retaining audit metadata in the database. Set `eraseAll=1` to permanently remove all data including database records.

br
## Rejecting a Call

**Endpoint:** `PATCH /api/v2/rejectCall`

**Authentication:** API Key (header `apikey`)

This endpoint allows an external system to programmatically reject a pending call.

**Request Body:**


```json
{
  "id": "conference-uuid",
  "note": "Rejection reason"
}
```

**Success Response:**


```json
{
  "success": true,
  "callUpdated": true
}
```