---
title: "Update Site Summary Settings"
method: PUT
path: "/sites/{site_id}/summary-settings"
tags: ["site summaries"]
---

# Update Site Summary Settings

`PUT /sites/{site_id}/summary-settings`

## 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}/summary-settings`
- Auth: HTTP bearer

Upsert this site's summary settings (owner or site manager only).

The activity log is recorded AFTER the commit and records field names
only — the same rule every other write in this repo follows.

## Path parameters

- `site_id` string, uuid, required

## Request body

- UpdateSiteSummarySettingsRequest
  - `email_enabled` boolean, required: Send the daily e-mail for this site at all.
  - `send_local_time` string, required: 24h HH:MM wall clock in the SITE's timezone, no seconds and no offset. Before noon closes last night's window; noon or later closes today's.
  - `send_on_quiet_days` boolean, required: Send even when nothing happened.
  - `min_outage_minutes` integer, required: Shortest camera outage worth reporting, in minutes (1..1440).
  - `sections` object: Which e-mail sections render, by the four keys narrative/stats/escalations/outages. A missing key means ON; an unknown key is ignored.

## Response `200`

Successful Response

- GetSiteSummarySettingsResponse
  - `site_id` string, required: Site UUID these settings belong to.
  - `email_enabled` boolean, required: Whether the daily e-mail is sent for this site at all. Defaults to false — a site opts in.
  - `send_local_time` string, required: 24h HH:MM wall clock in the site's timezone. The noon pivot reads off it: a morning send closes last night, an evening send closes today.
  - `send_on_quiet_days` boolean, required: Send even when nothing happened. False skips the mail and records a skipped_quiet send row.
  - `min_outage_minutes` integer, required: Shortest camera outage worth reporting, in minutes. Quantised to 5-minute telemetry buckets downstream, so the rendered value reads 'about N min'.
  - `sections` object, required: Which of the four e-mail sections render: narrative, stats, escalations, outages. Always all four keys.
  - `is_default` boolean, required: True when NO settings row exists and these are the defaults. A row that happens to equal the defaults reads false.

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