---
title: "Generate Site Disarm Passcode"
method: POST
path: "/sites/{site_id}/disarm-passcode"
tags: ["sites"]
---

# Generate Site Disarm Passcode

`POST /sites/{site_id}/disarm-passcode`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/sites/{site_id}/disarm-passcode`
- Auth: HTTP bearer

## Path parameters

- `site_id` string, required

## Request body

- SetDisarmPasscodeRequest: POST /sites/{id}/disarm-passcode's optional body. No body, or `passcode` null, mints six random digits exactly as before. A string is a code the customer CHOSE (owner decision 2026-10-07); the rules live in `disarm_passcode.validate_custom_code` and a refusal is a 422 whose detail is a sentence the console shows as-is.
  - `passcode` string, password, nullable: The code to set, e.g. 'Blue Tiger 7'. Letters, numbers and spaces; case, spaces and dashes are ignored when it is texted or spoken. Omit for six random digits.

## Response `200`

Successful Response

- DisarmPasscodeResponse: POST /sites/{id}/disarm-passcode: the newly minted code. Since 0125 the code is also kept sealed and can be read back by any in-scope viewer through GET (`SiteDisarmPasscodeResponse`), so this is no longer the only sight of it. It is still never in a site payload, a log line or the activity journal.
  - `passcode` string, required: The site's new passcode: six random digits, or the chosen code as typed. Readable again later through GET /sites/{id}/disarm-passcode. The example is redacted on purpose.
  - `has_disarm_passcode` boolean, required: Always true on this response; mirrors the site payload's field.
  - `disarm_passcode_hint` string, required: Last two characters, for rendering the stored code as '••••92'.
  - `disarm_max_minutes` integer, required: The site's current cap, echoed so the instructions panel can name it.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verdun/apis/verdun-api.md) - [All operations](https://skmtc.dev/verdun/apis/verdun-api/llms.txt) - [OpenAPI document](https://skmtc.dev/verdun/apis/verdun-api/revisions/35a2a6ebedda?raw)
