---
title: "Register Begin"
method: POST
path: "/auth/passkey/register/begin"
tags: ["passkey"]
---

# Register Begin

`POST /auth/passkey/register/begin`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/auth/passkey/register/begin`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Starts the WebAuthn registration ceremony for the authenticated account: returns creation options plus an opaque handle that MUST be echoed back unchanged to finishPasskeyRegistration — it is how the server matches the attestation to this specific challenge. 409 webauthn_not_configured if the tenant has no relying party set up; 503 passkeys_disabled if ceremonies are turned off tenant-wide.

## Response `200`

OK

- InternalDeliveryHttpHandlerPasskeyChallengeResponse
  - `handle` string
  - `options` object
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `409`: Conflict
- `503`: Service Unavailable

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
