Skip to content

Enroll Face Image

POST /api/v1/face-identities/{identityId}/image-enrollments

Enroll an ordinary JPEG or PNG photo (maximum 4 MiB) containing exactly one detectable face. The GPU worker detects and aligns the face and stores an encrypted normalized crop. Reuse the Idempotency-Key when retrying the same photo.

Authentication options declared in the contract include user cookie session or bearer service token.

The shared authentication policy requires identities:manage. Resource access also depends on the caller’s role, organization, camera grants, and the operation’s validation.

User-session writes require recent authentication.

Authentication and permissions explains tokens, cookies, CSRF, and workspace context.

Name Location Required Type Description and constraints
identityId path Yes string (uuid)
Idempotency-Key header Yes string minimum length 1. maximum length 128. pattern ^[A-Za-z0-9][A-Za-z0-9._:-]*$
X-EyesOnIt-Session-Id header No string (uuid) The sessionId the caller expects. Required when switching workspaces and for cookie requests after workspace rotation. A mismatched value returns 409 with X-EyesOnIt-Workspace-Changed: 1. Bootstrap with getCurrentPrincipal; never replay a mutation automatically after changing context. Bearer clients do not use this header.
X-CSRF-Token header No string Required for unsafe requests authenticated by CookieSession; ignored for bearer clients. minimum length 32. maximum length 256

Required.

application/octet-stream — string (binary).

{
"type": "string",
"format": "binary",
"maxLength": 4194304
}

Set the connection variables described in Get started. Replace each additional EOI_… variable with the parameter value for this request. Prepare the body file using the request schema above. This template sends the request when run.

Terminal window
curl --fail-with-body --silent --show-error \
--request POST \
--header "Authorization: Bearer ${EOI_SERVICE_TOKEN}" \
--header "Idempotency-Key: ${EOI_IDEMPOTENCY_KEY}" \
--header "Content-Type: application/octet-stream" \
--data-binary @request-body.bin \
"${EOI_API_BASE_URL}/face-identities/${EOI_IDENTITYID}/image-enrollments"

The table records responses declared by the OpenAPI contract. See Errors and status codes for the runtime error envelope and shared failures.

Status Description Media type Body
201 Successful Response application/json FaceIdentityResponse
422 Validation Error application/json HTTPValidationError

Operation identifier enrollFaceImage. Browse Identities and samples.

Image preview