telephony

Notify Owner

Text the site's property contact about this event.

LINKS ARE PERMITTED in the body (the 10DLC campaign declares them and link shortening is disabled per message), and attach_snapshot sends the event's alert-frame JPEG as MMS — 409 SNAPSHOT_UNAVAILABLE when the event has none, with nothing written and nothing sent.

RESPONSE SHAPE (this route is response_model=dict, a legacy escape hatch, so the shape lives here rather than in a typed model): the notification_log row as to_dict_frontend() renders it, PLUS attachments — null, or a list of {kind, url, content_type} where url is a presigned GET valid 3600s and minted for this read. kind is an open string ("snapshot" today). null, never [], when nothing was attached, and the S3 key behind each record is never exposed.

post/events/{event_id}/notify-owner

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/events/{event_id}/notify-owner
  • Auth
    HTTP bearer

Path parameters

event_idstring required

Request body

contact_idstring required

Site contact to notify; must belong to the event's site

messagestring required

Message body. AI-drafted client-side; the operator owns the final text. Links are permitted — the 10DLC campaign declares them and link shortening is disabled per message, so a URL goes out exactly as typed.

number'primary' | 'afterhours'

Which of the contact's phone numbers on file to text

attach_snapshotboolean

Attach the event's alert-frame JPEG as MMS. 409 SNAPSHOT_UNAVAILABLE when this event has no snapshot (no clip key, a clip key that derives none, or the object is not readable in S3) — nothing is written and nothing is sent in that case. Absent or false behaves exactly as before.

snapshot_offset_msinteger nullable

WHICH moment of the clip to attach, in milliseconds from the start of the event's clip, as picked by the operator and cut earlier by POST /events/{id}/snapshot-frame. Rounded to a tenth of a second. Only meaningful with attach_snapshot (422 at the body level otherwise). Absent, attach_snapshot sends the ingestor's alert-frame poster as before. 409 SNAPSHOT_UNAVAILABLE when no frame exists at that offset.

include_clip_linkboolean

Append a login-free, expiring link to this event's clip. The URL is added by the SERVER to the end of the body; reserve share_link_reserved_chars (GET /telephony/config) characters for it. 503 when clip links are not configured on this deployment, 409 when the event has no clip.

Example request

{
  "contact_id": "2dd7154e-21dc-408f-ac25-b2918d591e29",
  "message": "Verdun Security: intrusion alert at your site. View: https://ops.verdun.ai/review/8f14e45f-ceea-467a-9f0b-2b0a1cbd7a71",
  "snapshot_offset_ms": 7300
}

Response

Successful Response

object required

Changes

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