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

# Begin passkey registration

`POST /api/v1/subjects/{subject_id}/passkeys/register/options`

## 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/options`
- Auth: HTTP bearer

Consume a server-issued registration grant and return WebAuthn creation options for that subject.

## Path parameters

- `subject_id` string, required

## Request body

- PasskeyRegistrationOptionsRequest: Exchange a subject-bound one-time grant for WebAuthn registration options.
  - `registration_grant` string, required: One-time server-issued grant scoped to this subject’s passkey registration.

## Response `200`

WebAuthn creation options with graypass_registration_id for the completion call.

- object

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