---
title: "Remove one of the Bearer actor's passkeys"
method: POST
path: "/auth/v1/account/passkeys/remove"
tags: ["Auth"]
---

# Remove one of the Bearer actor's passkeys

`POST /auth/v1/account/passkeys/remove`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/auth/v1/account/passkeys/remove`
- Auth: API key in header `apikey` and HTTP bearer

Machine route (apikey + user Bearer). Requires auth_time within 5 minutes, soft-deletes one actor-owned passkey, and warns rather than refuses when no Run402 password or passkey remains.

## Request body

- object
  - `passkey_id` string, required

## Response `200`

Passkey removal result.

- object
  - `ok` true, required
  - `removed` boolean, required
  - `warning` 'no_run402_password_or_passkey_remaining', nullable, required

## Other responses

- `400`: Invalid request body.
- `401`: Missing or invalid authentication. Run402-originated JSON bodies use the canonical ErrorEnvelope.

---

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