Skip to content

API v1 endpoint reference (deprecated)

Every path below is relative to your gateway host, e.g. https://api.biometrysolutions.com/api-gateway/process-video.

Two authorization models

v1 endpoints are split between two kinds of caller, and the split is not obvious from the paths.

MarkedCredentialWho calls it
API tokenAuthorization: Bearer <your API token>your application, server-side
Console sessiondashboard session cookie/JWTthe Biometry Console, or a script acting as a signed-in user

Console-session endpoints are management operations. They are documented here for completeness, but they are not part of an application integration and several additionally require the Owner or Admin project role.

v1 also carries business parameters as X-* request headers where v2 puts them in a JSON request part. See step 3 of the migration guide for the full header → field mapping.

Verification and enrolment

MethodPathAuthWhat it doesv2
POST/api-gateway/process-videoAPI tokenRuns every service enabled on the token in one call — liveness and identity — and returns one blended verdict. Consent-gated services are dropped from the call rather than failing it; the dropped list comes back in X-Removed-Services. Also enrols the user as a side effect when both consents are on record — see the enrolment model./v2/liveness, /v2/face-verify, /v2/voice-verify
POST/api-gateway/enroll/faceAPI tokenEnrols a face template. Requires authorization and storage consent./v2/enrollments/face
POST/api-gateway/enroll/voiceAPI tokenEnrols a voiceprint. Requires authorization and storage consent./v2/enrollments/voice
POST/api-gateway/match-facesAPI tokenCompares a face in a video against a supplied reference image./v2/face-match

Documents and deepfake

MethodPathAuthWhat it doesv2
POST/api-gateway/docauth/checkAPI tokenChecks an identity document’s authenticity. Provider selected with X-Inhouse-Docauth / X-Inhouse-MRZ./v2/documents/check
POST/api-gateway/avf/inferAPI tokenSubmits a video for Anti-Video Forgery (deepfake) inference.POST /v2/deepfake/checks
GET/api-gateway/avf/status/{request_id}API tokenReads inference status. The v1 route streams; the v2 route is a plain JSON read.GET /v2/deepfake/checks/{request_id}

Reference images

MethodPathAuthWhat it doesv2
POST/api-gateway/imagesAPI tokenStores a user’s reference image. Requires authorization consent.PUT /v2/users/{user_id}/reference-image
GET/api-gateway/images/{email}API tokenReads the stored reference image. Keyed by email, where v2 is keyed by user_id.GET /v2/users/{user_id}/reference-image

Sessions

MethodPathAuthWhat it doesv2
POST/api-gateway/sessions/startAPI tokenOpens a session so several calls group into one Console entry.POST /v2/sessions
POST/api-gateway/sessions/end/{id}API tokenCloses a session.POST /v2/sessions/{id}/end — which additionally returns a combined decision across the session’s steps, something the v1 route does not do
GET/api-gateway/sessions/{id}Console sessionReads one session.GET /v2/sessions/{id}
POST/api-gateway/sessions/listConsole sessionLists sessions.GET /v2/sessions

Users

MethodPathAuthWhat it doesv2
GET/api-gateway/internal/users/{unique_id}/face-enrollmentConsole sessionReads whether a user holds a face template.GET /v2/users/{user_id}, which reports enrolment state for both modalities
POST/api-gateway/users/delete/cascadingConsole session, Owner or AdminDeletes a user and everything attached to them.DELETE /v2/users/{user_id}
POST/api-gateway/admin/users/delete/cascadingConsole session, AdminSame, for cross-project administration.—
POST/api-gateway/apikeys/infoConsole sessionBatch-reads API key metadata.—

v1 has no equivalent of DELETE /v2/users/{user_id}/enrollments, which drops a user’s templates without deleting the user.

Consents

v1 calls these “custom consents”. The semantics are unchanged in v2 — only the path and the update verb.

MethodPathAuthv2
POST/api-gateway/custom-consentsConsole session, Owner or AdminPOST /v2/consents
GET/api-gateway/custom-consents/{id}Console sessionGET /v2/consents/{id}
PATCH/api-gateway/custom-consents/append/{id}Console session, Owner or AdminPATCH /v2/consents/{id}
POST/api-gateway/custom-consents/{id}/approve/{user_id}API tokenPOST /v2/consents/{id}/approve/{user_id}
GET/api-gateway/custom-consents/my-approvals/{user_id}API tokenGET /v2/consents/my-approvals/{user_id}

The two consents a verification checks — authorization and storage — are separate from these and are recorded through the unversioned /api-consent/* service. See Consent.

Scoring systems

All console-session, all additionally requiring accepted terms. Owner or Admin role where noted.

MethodPathRolev2
POST/api-gateway/scoresOwner or AdminPOST /v2/scoring-systems
GET/api-gateway/scoresanyGET /v2/scoring-systems
GET/api-gateway/scores/allanyGET /v2/scoring-systems/all
POST/api-gateway/scores/infoanyPOST /v2/scoring-systems/info
GET/api-gateway/scores/{scores_id}anyGET /v2/scoring-systems/{id}
GET/api-gateway/scores/{scores_id}/{version}anyGET /v2/scoring-systems/{id}/versions/{version}
PATCH/api-gateway/scores/{scores_id}Owner or AdminPATCH /v2/scoring-systems/{id}
DELETE/api-gateway/scores/{scores_id}Owner or AdminDELETE /v2/scoring-systems/{id}
POST/api-gateway/scores/test/{scores_id}anyPOST /v2/scoring-systems/{id}/test
GET/api-gateway/scores/default—GET /v2/scoring-systems/default

GET /scores/default returns the built-in preset and is the one scoring route that takes no session.

Scoring systems are normally managed from the Console rather than over the API. See Scoring systems.

Webhooks

All console-session, all requiring accepted terms.

MethodPathRolev2
POST/api-gateway/webhooksOwner or AdminPOST /v2/webhooks
GET/api-gateway/webhooksanyGET /v2/webhooks
GET/api-gateway/webhooks/{id}anyGET /v2/webhooks/{id}
PATCH/api-gateway/webhooks/{id}Owner or AdminPATCH /v2/webhooks/{id}
DELETE/api-gateway/webhooks/{id}Owner or AdminDELETE /v2/webhooks/{id}
POST/api-gateway/webhooks/{id}/rotate-secretOwner or AdminPOST /v2/webhooks/{id}/rotate-secret
GET/api-gateway/webhooks/{id}/deliveriesanyGET /v2/webhooks/{id}/deliveries
POST/api-gateway/webhooks/{id}/deliveries/{delivery_id}/retryOwner or Admin—

Operational endpoints

Unversioned, and identical whichever API version you call.

MethodPathAuthWhat it does
GET/api-gateway/health/livenoneLiveness probe.
GET/api-gateway/health/readynoneReadiness probe, including dependency checks.
GET/api-gateway/health/metricsnoneMetrics snapshot.
POST/api-gateway/warmupnonePre-warms the ML services. See Warmup.
GET/api-gateway/warmup/statusnoneReads warmup progress.

Response shape

v1 returns a flat envelope with human-readable service names as keys:

{
"data": {
"Face Liveness Detection": { "code": 0, "description": "…", "result": "…", "score": 98 },
"Face Recognition": { "code": 0, "description": "…", "result": "…", "score": 95 }
},
"scoring_result": "accept",
"score": 96,
"decision_reasons": [],
"message": "…"
}

Errors are a bare string: {"error": "text"}.

Both changed in v2 — snake_case service keys, a decision object, and a structured error envelope with a machine-readable code. See step 6 of the migration guide and the Error catalog.

Response headers

HeaderVersionsMeaning
X-Removed-Servicesv1 and v2Services dropped from this call because a required consent was missing.
X-Auto-Enrollv1 onlyThe call also enrolled the user. Never set on v2, which does not enrol as a side effect.