---
title: "Complete ready enrollment"
method: POST
path: "/api/v1/subjects/{subject_id}/enrollments/complete"
tags: ["canonical"]
---

# Complete ready enrollment

`POST /api/v1/subjects/{subject_id}/enrollments/complete`

## Request

- Base URL: `https://app.graypass.org` (the document declares no server; this is the origin it was published from)
- URL: `https://app.graypass.org/api/v1/subjects/{subject_id}/enrollments/complete`
- Auth: HTTP bearer

Create a Brainprint enrollment from the subject’s accepted enrollment-session evidence.

## Path parameters

- `subject_id` string, required

## Request body

- EnrollmentComplete: Ask the server to complete a subject’s enrollment from its ready enrollment session.
  - `force` boolean: Whether to replace an existing template after accepted-window, duration and modality readiness checks pass.
  - `session` string, required: Enrollment-purpose session owned by the subject in the path.

## Response `200`

Enrollment attempt status, accepted-window count and completion time.

- Enrollment: Enrollment attempt and completion state for a subject’s behavioral reference.
  - `anchor` string, required: Account anchor established by the customer identity process and recorded by GrayPass.
  - `completed_at` string, nullable: Completion time as an ISO 8601 timestamp, or null before completion.
  - `created_at` string, required: Creation time as an ISO 8601 timestamp.
  - `id` string, required: Identifier of this record. Treat it as opaque and retain it for subsequent operations.
  - `limitations` string[]: Applicable limitations that must accompany interpretation of the result.
  - `status` 'pending' | 'completed' | 'failed', required: Lifecycle state of this record; use the operation-specific values listed in the schema.
  - `subject` string, required: Pseudonymous subject identifier in the authenticated tenant and environment.
  - `windows_accepted` integer, required: Count of accepted evidence windows recorded for this enrollment.

## Other responses

- `422`: The canonical handler returns a Problem for invalid input; correct the request before retrying.

---

[API](https://skmtc.dev/graypass/apis/graypass-api.md) - [All operations](https://skmtc.dev/graypass/apis/graypass-api/llms.txt) - [OpenAPI document](https://skmtc.dev/graypass/apis/graypass-api/revisions/5f9ab64fdfdb?raw)
