site summaries

Regenerate Site Summary

Re-run the narrative for one stored summary. NEVER re-sends.

Site managers may regenerate summaries within their assigned sites. The service applies the same tenant scope as the other summary writes.

post/site-summaries/{summary_id}/regenerate

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/site-summaries/{summary_id}/regenerate
  • Auth
    HTTP bearer

Path parameters

summary_idstring uuid required

Query parameters

rebuild_factsboolean

Also rebuild the fact sheet from the database. Refused with 409 past 30 days, when camera telemetry has been pruned and the rebuild would silently report no outages.

Response

Successful Response

idstring required

Summary UUID.

site_idstring required

Site UUID.

site_namestring required

Site name as it is today (live), for the drawer header.

parent_idstring required

Parent UUID SNAPSHOTTED on the summary row, not the site's parent today.

account_idstring nullable

Account UUID snapshotted on the summary row; null when the site was held directly under the parent at generation.

local_datestring required

YYYY-MM-DD, site-local, the date this summary is filed under.

timezonestring required

IANA zone snapshotted at generation; every wall clock in facts is rendered in it.

window_startstring date-time required

First instant the summary covers (UTC, inclusive).

window_endstring date-time required

Instant the window closed (UTC, exclusive).

narrativestring required

The prose the e-mail carries.

narrative_sourcestring required

'llm' when the model's narrative passed grounding, 'template' when the deterministic floor was used.

groundingobject nullable

The grounding verdict (checked, mismatches, prompt_version, model, reason). NULL for a customer-side reader: mismatches quote a rejected narrative's tokens.

factsobject required

The stored fact sheet. Full for an internal reader; the customer projection (seven paths dropped) for a customer-side login (account manager / location manager) — read view to know which.

inclusionsstring[] required

Event ids ticked INTO the customer e-mail beyond the escalations, in insertion order.

generated_atstring date-time nullable

When generation finished (UTC).

regenerated_atstring date-time nullable

When the narrative was last regenerated (UTC); null when it never was.

viewstring required

'customer' when facts is the projection and grounding is withheld, 'internal' otherwise.

Example response

{
  "id": "9f8e7d6c-1111-4222-8333-444455556666",
  "site_id": "3f1e0d2c-1111-4222-8333-444455556666",
  "site_name": "Northgate Yard",
  "parent_id": "a1b2c3d4-1111-4222-8333-444455556666",
  "local_date": "2026-09-05",
  "timezone": "America/Los_Angeles",
  "narrative": "Monitoring covered 12 cameras overnight.",
  "narrative_source": "llm",
  "grounding": {
    "checked": 27,
    "mismatches": []
  },
  "facts": {
    "schema_version": 1
  },
  "inclusions": [],
  "settings": {
    "site_id": "3f1e0d2c-1111-4222-8333-444455556666",
    "send_local_time": "07:00",
    "send_on_quiet_days": true,
    "min_outage_minutes": 10,
    "sections": {
      "escalations": true,
      "narrative": true,
      "outages": true,
      "stats": true
    },
    "is_default": true
  },
  "recipients_preview": [
    {
      "contact_id": "7a6b5c4d-1111-4222-8333-444455556666",
      "name": "Dana Whitfield",
      "email": "dana@example.com",
      "receives": true,
      "reason": "ok"
    }
  ],
  "view": "internal"
}

Changes

No recorded changes to this operation across all 2 revisions of this API.