---
title: "Voice Sessions Cleanup"
method: POST
path: "/admin/voice/sessions/cleanup"
tags: ["admin"]
---

# Voice Sessions Cleanup

`POST /admin/voice/sessions/cleanup`

## Request

- Base URL: `https://api.meetadmiral.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.meetadmiral.com/admin/voice/sessions/cleanup`
- Auth: none declared

Meter and close calls that have gone quiet, by hand.

Same rules as the scheduled reaper in app/scheduler.py, and for the same
reasons: a call is abandoned when it stops beating, not when it gets old
(nothing caps a call's length, and charging a live call mid-call would
then block the real ending from charging the rest), and the charge lands
BEFORE the row leaves "active" so a failed meter retries instead of
silently writing the call off. This endpoint used to do neither — it
marked calls ended and never metered them at all.

## Request body

- ReasonBody
  - `reason` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/meetadmiral/apis/admiral-api.md) · [All operations](https://skmtc.dev/meetadmiral/apis/admiral-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meetadmiral/apis/admiral-api/revisions/3cf1ee58ce50?raw)
