Skip to main content

Face Enrollment

In FACIA, face enrollment goes beyond a mere process – it's a personalized journey of capturing and preserving distinctive facial features to craft a unique biometric template. This template serves as the key to seamless identity verification through our advanced facial recognition algorithms, providing a secure and user-friendly authentication method.

Create Face Enrollment Transaction​

This endpoint enables users to enroll one or more faces using the POST method:

Endpoint

POSThttps://api.facia.ai/enroll-face

Authorization:​

Token Type: Bearer
Description:

This API utilizes Access token or Client-Secret key in header for authentication.

You can use your client_id and client_secret key when using the "/request-access-token" endpoint to obtain a Bearer token for authorization while connecting to this API. For additional details on Authorization, click Here

Run in Postman

Request Body Samples:​

//POST /enroll-face  HTTP/1.1
//HOST : https://api.facia.ai/
//Content-Type: application/json
//Authorization: Bearer <access-token-here>

{
"file_list": [
"file",
"file"
],
"client_reference": "your_client_reference_here",
"allow_override": 0
}

Request Parameter​

ParametersDescription
file_list[0]Required: Yes
Type: file or string
multipart/form-data: send each image file (.jpg, .jpeg, .png) as file_list[0], file_list[1].
application/json: send file_list as an array of Base64 data URIs including the prefix, e.g. "file_list": ["data:image/jpeg;base64,/9j/4AAQ..."]. Plain Base64 without the data:image/...;base64, prefix is rejected.
file_list[1]Required: No
Type: file or string
Optional second image, sent the same way as file_list[0].
client_reference Required: No
Type: string
Minimum: 5 characters
Maximum: 255 characters
Example: client_reference="your_client_reference_here"
Required if allow_override field set to 1.
allow_override Required: No
Type: boolean
Default value: 0
Accepted values: 0,1
The client reference is mandatory if the value of the override key is set as 1. The override key allow the system to replace the latest previous image with the new one against the specified reference number of the client’s reference.

Response Sample​


{
"status": true,
"message": "Success",
"result": {
"data": {
"client_reference": "your_client_reference_here"
"reference_id": [
"your_reference_id_1_here",
"your_reference_id_2_here"
]
}
}
}


Response Parameter​

ParametersDescription
client_reference Type: string
Example: client_reference:your_client_reference_here
Contains the unique ID defined for the end user.
reference_id Type: array
Example: reference_id:["your_reference_id_1_here","your_reference_id_2_here"]
These are the references of provided proofs that were to be enrolled.

Get Enrolled Faces​

This endpoint facilitates the retrieval of all enrolled faces using the POST method. The pagination parameter (records per page) is required in every request; page and is_pagination are optional. See Request Parameter for details.

Endpoint

POSThttps://api.facia.ai/enrolled-faces

Authorization:​

Token Type: Bearer
Description:

This API utilizes Access token or Client-Secret key in header for authentication.

You can use your client_id and client_secret key when using the "/request-access-token" endpoint to obtain a Bearer token for authorization while connecting to this API. For additional details on Authorization, click Here

Run in Postman

Request Body Samples:​

//POST /enrolled-faces  HTTP/1.1
//Host: https://api.facia.ai/
//Content-Type: application/json
//client-secret: <your client_secret key>

{
"pagination": 10,
"page": 1,
"is_pagination": 1
}

Request Parameter​

ParametersDescription
pagination Required: Yes
Type: integer
Example: pagination=10
Min: 1
Max: 100
Number of records to return per page. Requests sent without this parameter are rejected with a validation error.
page Required: No
Type: integer
Default: 1
Min: 1
Example: page=1
The page number to return.
is_pagination Required: No
Type: boolean / integer
Example: is_pagination=1
If set to a truthy value (e.g. 1 or true), result.data is returned as a paginated object with page details (current_page, last_page, total, etc.) and the records inside result.data.data. If omitted, result.data is returned as a plain list of records, still limited to pagination records.
info
pagination is mandatory for this endpoint. Always send it in the request body, even if you only need the first page of results.

Response Sample​

With is_pagination set to 1​


{
"status": true,
"message": "Success",
"result": {
"data": {
"current_page": 1,
"data": [
{
"reference_id": "your_reference_id_here",
"created_at": "2026-09-25T11:42:04.000000Z",
"client_reference": "your_client_reference_here",
"url": "https://api.facia.ai/get-proof/d2p4Z04wTWxUN3Q0WjhPYmJhc283bWVWOUh2clpHTnQ6NjVhNTBjNWM1MDEwMmI5NDdlMGEwMGI7",
"thumbnail_url": "https://api.facia.ai/get-proof/TFhaYThwdzdVNldFOGlERm80QWtNaVgzMUVzVUZsV1Q6NjVhNTBjNWM1MDEwMmI5NDdlMGEwMGJ2"
}
],
"first_page_url": "https://api.facia.ai/enrolled-faces?page=1",
"from": 1,
"last_page": 3,
"last_page_url": "https://api.facia.ai/enrolled-faces?page=47",
"links": [
{
"url": null,
"label": "&laquo; Previous",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=1",
"label": "1",
"active": true
},
{
"url": "https://api.facia.ai/enrolled-faces?page=2",
"label": "2",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=3",
"label": "3",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=4",
"label": "4",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=5",
"label": "5",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=6",
"label": "6",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=7",
"label": "7",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=8",
"label": "8",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=9",
"label": "9",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=10",
"label": "10",
"active": false
},
{
"url": null,
"label": "...",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=46",
"label": "46",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=47",
"label": "47",
"active": false
},
{
"url": "https://api.facia.ai/enrolled-faces?page=2",
"label": "Next &raquo;",
"active": false
}
],
"next_page_url": "https://api.facia.ai/enrolled-faces?page=2",
"path": "https://api.facia.ai/enrolled-faces",
"per_page": 10,
"prev_page_url": null,
"to": 10,
"total": 468
}
}
}


Without is_pagination​

The records are returned directly in result.data, without page details. The list is still limited to pagination records.


{
"status": true,
"message": "Success",
"result": {
"data": [
{
"reference_id": "your_reference_id_here",
"created_at": "2026-09-25T11:42:04.000000Z",
"client_reference": "your_client_reference_here",
"url": "https://api.facia.ai/get-proof/d2p4Z04wTWxUN3Q0WjhPYmJhc283bWVWOUh2clpHTnQ6NjVhNTBjNWM1MDEwMmI5NDdlMGEwMGI7",
"thumbnail_url": "https://api.facia.ai/get-proof/TFhaYThwdzdVNldFOGlERm80QWtNaVgzMUVzVUZsV1Q6NjVhNTBjNWM1MDEwMmI5NDdlMGEwMGJ2"
}
]
}
}


Response Parameter​

ParametersDescription
data Type: array
This includes the enrolled images. When is_pagination is set, the records are in result.data.data; otherwise result.data is the list itself.
reference_id Type: string
Example: reference_id="your_reference_id_here"
The unique identifier of the enrollment transaction.
created_at Type: string
Example: created_at="2026-09-25T11:42:04.000000Z"
Date and time (UTC) when the face was enrolled.
client_reference Type: string or null
Example: client_reference="your_client_reference_here"
Contains the unique ID defined for the end user. null if no client reference was provided at enrollment.
url Type: string
URL of the proof with the expiry of 15 minutes.
thumbnail_url Type: string
URL of the thumbnail of the proof with the expiry of 15 minutes.
current_page Type: integer
The page number returned. Only present when is_pagination is set.
from / to Type: integer or null
Position of the first and last record on this page within the full result set. Only present when is_pagination is set.
per_page Type: integer
Number of records per page, as sent in pagination. Only present when is_pagination is set.
total Type: integer
Total number of enrolled faces. Only present when is_pagination is set.
last_page Type: integer
The last available page number. Only present when is_pagination is set.
first_page_url / last_page_url Type: string
URLs of the first and last pages. Only present when is_pagination is set.
next_page_url / prev_page_url Type: string or null
URLs of the next and previous pages, or null if there is none. Only present when is_pagination is set.
path Type: string
Base URL of the endpoint. Only present when is_pagination is set.
links Type: array
Page navigation links, each with url, label and active. Only present when is_pagination is set.
note
  • url and thumbnail_url are signed on every request, so the same record returns a different URL each time. Each URL expires after 15 minutes.
  • For video (detail liveness) enrollments, url and thumbnail_url point to the same frame.