---
title: "Update Deepalert Default Threshold"
method: PUT
path: "/settings/deepalert-default-confidence-threshold"
tags: ["settings"]
---

# Update Deepalert Default Threshold

`PUT /settings/deepalert-default-confidence-threshold`

## 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/settings/deepalert-default-confidence-threshold`
- Auth: HTTP bearer

The DeepAlert fleet default confidence floor: OWNER-ONLY, the sole
writer. One transaction writes the value, the revision and the durable
deepalert_threshold_changes row; a stale expected_revision is a 409 carrying
the current value and revision. This is an ACTIVATION capability: shipping
it authorizes nothing, and it is used only per the recorded flip
procedure. The audit-log line below is best-effort and written after the
commit; the change table is the record.

## Request body

- UpdateDeepAlertDefaultThresholdRequest: Body for PUT /settings/deepalert-default-confidence-threshold (owner only), the SOLE write path for the DeepAlert fleet default. Validated on the RAW JSON types, before any coercion can erase them: the value must be a real JSON number (StrictInt | StrictFloat rejects a bool, a numeric string and null) that is finite and 0 < v <= 100, and expected_revision a real integer >= 0 (a bool, string, float or negative is refused). A stale revision is a 409 from the service, not a 422 here.
  - `value` union, required: The new fleet default DeepAlert confidence floor, 0 < value <= 100 (lower = more sensitive). Applies to every ii_gated camera with no valid per-camera override. A real JSON number: a boolean, a string or null is rejected.
    - integer
    - number
  - `expected_revision` integer, required: The fleet revision the caller last read. A different current revision answers 409 with the current value and revision, even when the requested value equals the current one.
  - `reason` string, nullable: Free text recorded with the change; optional.

## Response `200`

Successful Response

- UpdateDeepAlertDefaultThresholdResponse
  - `value` number, required: The fleet default DeepAlert confidence floor now in force.
  - `revision` integer, required: The fleet revision now in force. Moves by exactly one per change; an equal-value PUT at the current revision is a no-op and returns the existing one.
  - `changed_at` string, date-time, nullable: When the CURRENT revision was recorded (the DB clock inside the change's transaction). Descriptive only: rows and events are assigned to an epoch by revision, never by this time. Null only if no change row exists for the revision.

## Other responses

- `409`: Conflict
- `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)
