---
title: "Gather using audio"
method: POST
path: "/calls/{call_control_id}/actions/gather_using_audio"
tags: ["Call Commands"]
---

# Gather using audio

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

Play an audio file on the call until the required DTMF signals are gathered to build interactive menus.

You can pass a list of valid digits along with an 'invalid_audio_url', which will be played back at the beginning of each prompt. Playback will be interrupted when a DTMF signal is received. The `Answer command must be issued before the `gather_using_audio` command.

**Expected Webhooks:**

- `call.playback.started`
- `call.playback.ended`
- `call.dtmf.received` (you may receive many of these webhooks)
- `call.gather.ended`

## Path parameters

- `call_control_id` string, required

## Request body

- GatherUsingAudioRequest
  - `audio_url` string — The URL of a file to be played back at the beginning of each prompt. 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 at the beginning of each prompt. 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.
  - `invalid_audio_url` string — The URL of a file to play when digits don't match the `valid_digits` parameter or the number of digits is not between `min` and `max`. The URL can point to either a WAV or MP3 file. invalid_media_name and invalid_audio_url cannot be used together in one request.
  - `invalid_media_name` string — The media_name of a file to be played back when digits don't match the `valid_digits` parameter or the number of digits is not between `min` and `max`. 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.
  - `minimum_digits` integer — The minimum number of digits to fetch. This parameter has a minimum value of 1.
  - `maximum_digits` integer — The maximum number of digits to fetch. This parameter has a maximum value of 128.
  - `maximum_tries` integer — The maximum number of times the file should be played if there is no input from the user on the call.
  - `timeout_millis` integer — The number of milliseconds to wait for a DTMF response after file playback ends before a replaying the sound file.
  - `terminating_digit` string — The digit used to terminate input if fewer than `maximum_digits` digits have been gathered. Set to an empty string to disable the terminating digit entirely, so that a digit such as `#` can be collected as input per `valid_digits`.
  - `valid_digits` string — A list of all digits accepted as valid.
  - `inter_digit_timeout_millis` integer — The number of milliseconds to wait for input between digits.
  - `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

> 112 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/gather_using_audio/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/b64f92d897b2?raw)
