---
title: "Admin Phone Call Live Audio"
method: GET
path: "/v1/me/admin/phone-calls/{call_id}/live-audio"
tags: ["identity"]
---

# Admin Phone Call Live Audio

`GET /v1/me/admin/phone-calls/{call_id}/live-audio`

HEAR THE CALL, FROM ANYWHERE — the owner's ear on a live line.

Owner, 2026-09-16: "allow me to real time connect to the customer REAL
TIME CALL so i can listen IN somehow in our V2". The bridge spills both
μ-law tracks to the object store in two-second segments while the call
runs (`runtime/phone_live_spill.py`), so this read works on any api
instance and from any laptop: it never needs the process that holds the
carrier socket. Same gate as the list above — the estate admin, which on
api.stormy.ai is only the allow-listed owner. Same wire shape as the
dev console's `/phone-console/calls/{id}/listen`, so one browser player
serves both. ``after`` is a byte cursor on the caller track (wall time at
8 kHz); ``-1`` joins one segment behind the live edge. A call that is up
but has no audio yet — an outbound call still ringing the callee —
answers ``waiting: true`` with no bytes, and the ear keeps asking.

## Path parameters

- `call_id` string, uuid, required

## Query parameters

- `after` integer

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

## Changes

> 32 revisions in range; 1 not diffed.

- **2026-09-17** `1a4f0f5cb467` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/me/admin/phone-calls/:call_id/live-audio/get.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/b09e3c4ee2af?raw)
