camera-health

Confirm Camera View Flag

An operator agrees the view is blocked: open -> confirmed (409 from any other state). Activity-logged.

post/camera-health/flags/{flag_id}/confirm

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/camera-health/flags/{flag_id}/confirm
  • Auth
    HTTP bearer

Path parameters

flag_idstring uuid required

Response

Successful Response

idstring uuid required

Flag id.

statusstring required

'open' (needs a look), 'confirmed' (an operator agreed the view is blocked), 'cleared' (an operator judged it usable), or 'resolved' (two checks hours apart read clear after confirmation and customer notification).

camera_idstring uuid required

Camera row id.

camera_labelstring nullable

Operator-facing camera name.

site_idstring uuid required

Site id.

site_namestring nullable

Site name.

site_timezonestring nullable

The site's IANA zone, for rendering times and the day/night split.

parent_idstring uuid required

Client (parent) id.

parent_namestring nullable

Client company name.

kindstring nullable

The latest qualifying verdict's kind.

coverage_pctinteger nullable

The latest qualifying verdict's coverage, 0-100.

reasonstring nullable

The latest qualifying verdict's explanation.

opened_atstring date-time required

When the item opened.

opened_kindstring nullable

Immutable kind at opening; null for legacy items.

opened_coverage_pctinteger nullable

Immutable coverage at opening; null for legacy items.

opened_reasonstring nullable

Immutable reason at opening; null for legacy items.

first_viewed_atstring date-time nullable

First actual item open by staff; list polling does not count.

resolved_atstring date-time nullable

When two clear checks resolved a confirmed, notified item.

last_raised_atstring date-time required

When a confirmed raise last refreshed it.

raise_countinteger required

Confirmed raises counted on this item (1 at opening).

checks_obstructedinteger required

View checks of this camera in the last 7 days that qualified (obstructed, not glare, coverage at or above view_obstructed_coverage_min). Rendered as 'N of M checks in the last 7 days'.

checks_totalinteger required

All view checks of this camera in the last 7 days (the same set as checks, uncapped).

day_snapshot_urlstring nullable

Presigned URL of the newest checked daylight frame (07:00-18:59 site-local), null if none in the last 7 days.

night_snapshot_urlstring nullable

Presigned URL of the newest checked night frame, null if none in the last 7 days.

confirmed_by_namestring nullable

Who confirmed it.

confirmed_atstring date-time nullable

When it was confirmed.

notified_atstring date-time nullable

When the customer was last e-mailed about it.

notified_by_namestring nullable

Who sent that e-mail.

notify_summarystring nullable

What that send did.

cleared_by_namestring nullable

Who cleared it.

cleared_atstring date-time nullable

When it was cleared.

clear_reasonstring nullable

The operator's reason for clearing.

quiet_untilstring date-time nullable

After a clear: no new flag for this camera before this time unless coverage rises by view_flag_worse_by_pct.

Example response

{
  "status": "open",
  "camera_label": "Back of Building Driveway",
  "site_name": "Harbor Yard",
  "site_timezone": "America/Chicago",
  "parent_name": "Sentinel Integrations",
  "kind": "web_or_insect",
  "coverage_pct": 40,
  "opening_checks": [
    {
      "light": "night",
      "kind": "web_or_insect",
      "coverage_pct": 40
    }
  ],
  "raise_count": 3,
  "checks_obstructed": 3,
  "checks_total": 4,
  "checks": [
    {
      "light": "night",
      "kind": "web_or_insect",
      "coverage_pct": 40
    }
  ],
  "recent_alarms": [
    {
      "incident_type": "INTRUSION",
      "outcome_label": "False alarm - no human activity"
    }
  ],
  "notify_summary": "Emailed 2 recipients",
  "contacts": [
    {
      "name": "Dana Ruiz",
      "role": "Facilities manager",
      "email": "facilities@example.com"
    }
  ]
}

Changes

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