---
title: "Call Owner"
method: POST
path: "/events/{event_id}/call-owner"
tags: ["telephony"]
---

# Call Owner

`POST /events/{event_id}/call-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}/call-owner`
- Auth: HTTP bearer

Call the site's property contact. SAME PERMISSION AS TEXTING THEM
(owner decision, 2026-09-10): an account manager who may notify the owner
may reach them by phone as well as by text.

ONE EXCEPTION, channel='phone_bridge', which ALSO requires
escalate_dispatch: the bridge's first leg is the caller-supplied
operator_number, so it can ring any number at all, and there is no verified
operator callback number on file to constrain it. Notify-only operators get
a 403 there and use channel='browser_call', whose operator leg is the
softphone client itself.

The row this writes is a dispatch_call with target_type='owner' — it reuses
the dispatch transport but is NOT dispatch: it never appears in
GET /events/{id}/dispatch-calls, and it surfaces on the event's
communications timeline instead.

## Path parameters

- `event_id` string, required

## Request body

- CallOwnerRequest: Call the site's property contact from the review console. NO CALLEE NUMBER IS ACCEPTED. The client names a CONTACT and which of that contact's stored lines to use; the server resolves the actual number from the contact row, exactly as notify-owner does. `operator_number` is the operator's own callback leg, the same field DispatchCallRequest carries.
  - `contact_id` string, required: Site contact to call; must belong to the event's site
  - `number` 'primary' | 'afterhours': Which of the contact's phone numbers on file to call
  - `channel` 'phone_bridge' | 'browser_call': How the operator's leg is placed: a PSTN callback bridge or the browser softphone.
  - `operator_number` string, nullable: The operator's callback number; the bridge rings this leg first, then dials the contact when answered. phone_bridge only — browser_call has no callback leg.
  - `idempotency_key` string, nullable: Client-generated key for this call intent. Retries and double-submits with the same key return the original attempt instead of placing a second call. A key already used for a DIFFERENT action on this event is a 409, never a returned row of the other kind.

## Response `200`

Successful Response

- object

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