---
title: "Save a new passkey."
method: POST
path: "/auth/passkeys/registration/verify"
tags: ["Account"]
---

# Save a new passkey.

`POST /auth/passkeys/registration/verify`

## Request

- Base URL: `https://animalchecklist.com/api/v1`
- URL: `https://animalchecklist.com/api/v1/auth/passkeys/registration/verify`
- Auth: API key in cookie `ac_session`

Verifies the signed registration, origin, RP ID and user verification. Consumes the challenge once before saving the public credential.

## Headers

- `X-Account-Id` string, uuid, required

## Request body

- object
  - `response` object, required

## Response `204`

Completed without a response body.

## Other responses

- `400`: Invalid input.
- `401`: Sign-in required.
- `403`: A same-origin request is required.
- `404`: Not found.
- `409`: Account changed in another tab.
- `429`: Rate limited.
- `500`: Unexpected error.

---

[API](https://skmtc.dev/animalchecklist/apis/animal-checklist-api.md) · [All operations](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/llms.txt) · [OpenAPI document](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/revisions/0910760ad25b?raw)
