---
title: "Set or clear this camera's operator instructions"
method: PUT
path: "/cameras/{camera_id}/operator-instructions"
tags: ["cameras"]
---

# Set or clear this camera's operator instructions

`PUT /cameras/{camera_id}/operator-instructions`

## 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/cameras/{camera_id}/operator-instructions`
- Auth: HTTP bearer

Free-text instructions shown to the HUMAN monitoring operator on every alarm from this camera, and again at the escalation step. NEVER enters an AI prompt — that is what `rag_context` on the agent-config route is for, and it is never sent to the ingestor either. Requires the owner, monitoring_manager or site_manager role (a site_manager only within its own client and granted sites). A camera id outside the caller's scope, or a retired one, answers 404 rather than 403: the status code must not tell a caller which of another client's camera ids exist.

## Path parameters

- `camera_id` string, required

## Request body

- UpdateSiteCameraOperatorInstructionsRequest: Site and camera writes also take the headline. The ACCOUNT write uses the base model, which has no such field, so a `headline` sent there is ignored.
  - `operator_instructions` string, nullable: Free-text instructions shown to the HUMAN monitoring operator on every alarm at this level, and again at the escalation step. NEVER enters an AI prompt — that is what the agent context fields are for. Leading and trailing whitespace is trimmed BEFORE the length check, so the 2000-character limit measures the value that will actually be stored and matches the editor's character counter exactly. Empty or whitespace-only is stored as null (= no instruction), as is an explicit null or an omitted field; there is no patch semantic.
  - `headline` string, nullable: One line shown to the operator under the alarm video. Trimmed before the 140-character check; empty or null CLEARS it. UNLIKE the text, OMITTING the key leaves the stored headline unchanged.

## Response `200`

Successful Response

- SiteCameraOperatorInstructionsResponse: Site and camera writes also answer the stored headline.
  - `id` string, uuid, required: Id of the account, site or camera that was written.
  - `operator_instructions` string, nullable: The stored instructions after the write, trimmed. Null means no instruction is set at this level.
  - `headline` string, nullable: The stored headline after the write; null when unset.

## 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)
