---
title: "Complete passkey registration"
method: POST
path: "/api/v1/subjects/{subject_id}/passkeys/register/complete"
tags: ["canonical"]
---

# Complete passkey registration

`POST /api/v1/subjects/{subject_id}/passkeys/register/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}/passkeys/register/complete`
- Auth: HTTP bearer

Verify the WebAuthn registration result and register the resulting credential for the subject.

## Path parameters

- `subject_id` string, required

## Request body

- object

## Response `200`

Registered passkey id and creation time.

- PasskeyRegistered: Identifier and creation time of the registered subject passkey.
  - `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.

## 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)
