---
title: "Admin End Voice Call Session"
method: POST
path: "/calls/{external_id}/end-session"
tags: ["calls"]
---

# Admin End Voice Call Session

`POST /calls/{external_id}/end-session`

Force-end a live voice call by deleting its LiveKit room (tenant admin only).

## Path parameters

- `external_id` string, required

## Response `200`

Successful Response

- Call — Represents a voice call for API responses.
  - `id` string, uuid, required
  - `external_id` string, required
  - `root_call_id` string, uuid, nullable
  - `external_assistant_id` string, nullable, required
  - `type` 'inboundPhoneCall' | 'outboundPhoneCall' | 'webCall', required
  - `messages` object[], required
  - `transcript` string, required
  - `summary` string, nullable, required
  - `structured_data` object, nullable, required
  - `created_at` string, date-time, required
  - `status` string, required
  - `metadata` union, required
    - DeprecatedFollowUpCallMetadata — Legacy follow-up call metadata (for backwards compatibility).
      - `type` 'deprecated_follow_up'
      - `is_follow_up` boolean, required
      - `original_call_id` string, nullable
    - OutboundCallMetadata — Metadata for outbound calls initiated via run items.
      - `type` 'outbound'
      - `voice_agent_outbound_run_item_ids` string[], required
  - `customer_number` string, nullable, required
  - `recording_url` string, nullable, required
  - `recording_presigned_url` string, nullable
  - `duration_seconds` integer, nullable
  - `ended_reason` string, nullable, required
  - `voice_agent_names` object
  - `voice_agent_id` string, uuid, nullable
  - `voice_agent_group_name` string, nullable
  - `had_warm_transfer` boolean
  - `booking_made` boolean, nullable
  - `attributed_to_human_agent_id` string, uuid, nullable
  - `booking_value_cents` integer, nullable
  - `booking_outcome_set_by_user_id` string, uuid, nullable
  - `booking_outcome_set_at` string, date-time, nullable
  - `booking_status` string, nullable
  - `booking_evidence` string, nullable
  - `outcome_agent_ref` string, nullable
  - `customer_profile_id` string, uuid, nullable
  - `customer_name` string, nullable
  - `participant_recordings` ParticipantRecording[], nullable
    - `identity` string, nullable
    - `role` string, nullable
    - `recording_presigned_url` string, required
  - `consultation_recordings` ConsultationRecording[], nullable
    - `recording_url` string, required
    - `recording_presigned_url` string, required
  - `spoken_voices` SpokenVoice[]
    - `provider` string, required
    - `voice_id` string, nullable, required
    - `model` string, nullable, required
    - `language` string, nullable, required

## Other responses

- `422` — Validation Error

## Changes

> 23 revisions in range; 1 not diffed.

- **2026-09-22** `0b211d6e9f84` — 1 info
  - added the optional property `consultation_recordings` to the response with the `200` status
- **2026-09-19** `34f2d9e81b0b` — 1 info
  - added the optional property `spoken_voices` to the response with the `200` status
- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/calls/:external_id/end-session/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/0b211d6e9f84?raw)
