> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-en/sdks/backend-sdk/ine/technical_documentation/technical_specifications.md).

# Technical specifications

## 1. Introduction

**Facephi INE Service** is a REST API service in C++ to which image files can be sent for processing and the result of the Facial Recognition process obtained. The service offers an Endpoint to authenticate two face photos.

## 2. Hardware requirements

|         | Minimum requirement                                         | Recommended requirement         |
| ------- | ----------------------------------------------------------- | ------------------------------- |
| CPU     | 2 cores with support for the SSE4.2 instruction set, >=2GHz | 16 cores, with AVX2 ISA support |
| RAM     | 4 Gb                                                        | 8 Gb                            |
| Disk    | 4 Gb                                                        | 4 Gb SSD                        |
| Network | 100 Mbps                                                    | 1 Gbps                          |

## 3. Software requirements

* Linux x86\_64 (Ubuntu 24.04 or higher) with Docker 24.0 or higher.
* Runtime container image based on Ubuntu 26.04.

## 4. SDK Version

The current SDK Version is **SelphID SDK 6.20.0**.

## 5. REST Endpoints

The service exposes the following endpoints:

* `POST /api/v1/facial/authentication`
* `GET /api/v1/health`
* `GET /api/v1/version`

The service does not expose endpoints `GET/POST /config` at runtime.

## 6. JWT Authentication

JWT Authentication is optional and disabled by default. When enabled, the service validates HS256 tokens with a claim `exp` not expired.

Startup keys:

* `auth_enabled`
* `auth_jwt_secret`
* `auth_accept_authorization_header`
* `auth_accept_api_key_header`
* `auth_api_key_header_name`

Override environment variables:

* `FACEPHI_INE_REST_AUTH_ENABLED`
* `FACEPHI_INE_REST_AUTH_JWT_SECRET`
* `FACEPHI_INE_REST_AUTH_ACCEPT_AUTHORIZATION_HEADER`
* `FACEPHI_INE_REST_AUTH_ACCEPT_API_KEY_HEADER`
* `FACEPHI_INE_REST_AUTH_API_KEY_HEADER_NAME`

Public endpoints accessible without authentication:

* `GET /api/v1/health`
* `GET /api/v1/version`
* Preflight requests `OPTIONS`

Protected Endpoint:

* `POST /api/v1/facial/authentication`

JWT Authentication configuration can only be set at startup, since the service does not expose configuration endpoints at runtime.
