# Begin passkey registration

Generates and returns WebAuthn creation options for the current user. The server will set cookies to maintain the registration challenge context.

Endpoint: GET /api/v1/passkeys/begin-register
Version: 1.0
Security: header

## Response 200 fields (application/json):

  - `challenge` (string, required)
    Base64url-encoded server challenge

  - `rp` (object,null, required)
    Relying Party entity (name and id)

  - `rp.id` (string,null, required)

  - `rp.name` (string,null, required)

  - `user` (object,null, required)
    User entity; id is base64url-encoded

  - `user.id` (string,null, required)

  - `user.name` (string,null, required)

  - `user.displayName` (string,null, required)

  - `pubKeyCredParams` (array,null, required)
    List of acceptable credential parameters (type and COSE alg)

  - `pubKeyCredParams.type` (string,null, required)

  - `pubKeyCredParams.alg` (integer,null, required)

  - `timeout` (integer,null, required)
    Timeout in milliseconds

  - `attestation` (string,null, required)
    Attestation conveyance preference

  - `authenticatorSelection` (object,null, required)
    Authenticator selection constraints

  - `authenticatorSelection.authenticatorAttachment` (string,null, required)

  - `authenticatorSelection.requireResidentKey` (boolean,null, required)

  - `authenticatorSelection.residentKey` (string,null, required)

  - `authenticatorSelection.userVerification` (string,null, required)

  - `excludeCredentials` (array,null, required)
    Credentials to exclude from creation (by descriptor)

  - `excludeCredentials.type` (string,null, required)

  - `excludeCredentials.id` (string,null, required)

  - `excludeCredentials.transports` (array,null, required)

  - `extensions` (object,null, required)
    Extension inputs keyed by extension name

## Response 400 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 401 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation


