---
title: "Register"
method: POST
path: "/users/me/passkeys"
tags: ["Users"]
---

# Register

`POST /users/me/passkeys`

Registers a passkey for the authenticated user from the attestation a browser produced for a `registration` challenge. Mint that challenge first with `POST /users/me/passkeys/challenge`; it is single-use and expires 5 minutes after it is issued. Requires a user session.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `attestation_object` string, required — The `attestationObject` from the WebAuthn attestation response, base64url-encoded.
  - `client_data_json` string, required — The `clientDataJSON` from the WebAuthn attestation response, base64url-encoded.
  - `credential_id` string, required — The WebAuthn credential ID the authenticator returned, base64url-encoded.
  - `nickname` string, required — A name for this passkey, usually the device it lives on. 255 characters or fewer.

## Response `201`

passkey registered

- Passkey
  - `created_at` string, required — When the user registered this passkey, as an ISO 8601 timestamp.
  - `credential_id` string, required — The WebAuthn credential ID as a base64url string. Pass it in `allowCredentials` when you run a ceremony against this specific passkey.
  - `id` string, required — Passkey ID, prefixed `wcred_`. Use it to delete the passkey.
  - `last_used_at` string, nullable, required — When this passkey last completed a WebAuthn ceremony, as an ISO 8601 timestamp, or `null` if it never has.
  - `nickname` string, required — The name the user gave this passkey, usually the device it lives on.

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/866821546d67/schema)
