---
title: "Play audio URL"
method: POST
path: "/calls/{call_control_id}/actions/playback_start"
tags: ["Call Commands"]
---

# Play audio URL

`POST /calls/{call_control_id}/actions/playback_start`

Play an audio file on the call. If multiple play audio commands are issued consecutively,
the audio files will be placed in a queue awaiting playback.

*Notes:*

- When `overlay` is enabled, `target_legs` is limited to `self`.
- A customer cannot Play Audio with `overlay=true` unless there is a Play Audio with `overlay=false` actively playing.

**Expected Webhooks:**

- `call.playback.started`
- `call.playback.ended`

## Path parameters

- `call_control_id` string, required

## Request body

- PlayAudioUrlRequest
  - `audio_url` string — The URL of a file to be played back on the call. The URL can point to either a WAV or MP3 file. media_name and audio_url cannot be used together in one request.
  - `media_name` string — The media_name of a file to be played back on the call. The media_name must point to a file previously uploaded to api.telnyx.com/v2/media by the same user/organization. The file must either be a WAV or MP3 file.
  - `loop` union
    - string
    - integer
  - `overlay` boolean — When enabled, audio will be mixed on top of any other audio that is actively being played back. Note that `overlay: true` will only work if there is another audio file already being played on the call.
  - `stop` string — When specified, it stops the current audio being played. Specify `current` to stop the current audio being played, and to play the next file in the queue. Specify `all` to stop the current audio file being played and to also clear all audio files from the queue.
  - `target_legs` string — Specifies the leg or legs on which audio will be played. If supplied, the value must be either `self`, `opposite` or `both`.
  - `cache_audio` boolean — Caches the audio file. Useful when playing the same audio file multiple times during the call.
  - `audio_type` 'mp3' | 'wav' — Specifies the type of audio provided in `audio_url` or `playback_content`.
  - `playback_content` string — Allows a user to provide base64 encoded mp3 or wav. Note: when using this parameter, `media_url` and `media_name` in the `playback_started` and `playback_ended` webhooks will be empty
  - `client_state` string — Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.
  - `command_id` string — Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.

## Response `200`

Successful response upon making a call control command.

- object
  - `data` CallControlCommandResult
    - `result` string

## Other responses

- `422` — Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values, call state errors, conference errors, queue errors, recording/transcription errors, and business logic violations.
- `default` — Unexpected error

## Changes

> 81 revisions in range; 1 not diffed.

- **2026-08-17** `1571b0380bd7` — 3 breaking
  - the response's body type changed from `object` to no type for status `default`
  - the `errors/items/` response's property type changed from `object` to no type for status `default`
  - the `errors/items/code` response's property type changed from `integer` to `string`, and format from `int32` to `integer` for status `default`
- **2026-08-04** `8f5f4e537994` — 4 breaking
  - the response's body type changed from no type to `object` for status `default`
  - the `errors/items/` response's property type changed from no type to `object` for status `default`
  - the `errors/items/code` response's property type changed from `string` to `integer`, and format from `integer` to `int32` for status `default`
  - the `errors/items/source/pointer` response's property format changed from `json-pointer` to no format for status `default`

[Change history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/calls/:call_control_id/actions/playback_start/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/revisions/f6e9ed754d05?raw)
