Skip to main content
You can record any active call by sending a start_recording command. Once the recording finishes, the audio file is stored and made available through the recordings API.

Starting a Recording

To begin recording, send a start_recording call command:
Start recording a call

Supported Formats

Stopping a Recording

You can stop a recording explicitly with the stop_recording command, or the recording ends automatically when the call ends.
Stop recording

Recording Lifecycle

Recordings move through these statuses: When a recording reaches the completed status, a calls.recording.completed webhook is fired.

List Recordings

Retrieve all recordings for a specific call.
List recordings for a call
Response

Get Recording Details

Retrieve a specific recording by ID. For completed recordings, the response includes a signed download URL that is valid for one hour.
Get a recording
Response
The fileUrl is a time-limited signed URL. If you need to download the file later, request the recording details again to get a fresh URL.

Download a Recording

To download the recording file, fetch the fileUrl from the get recording response:
Download recording file
The signed URL is valid for one hour from the time it was generated. After expiration, request the recording details again to get a new URL.

Delete a Recording

Delete a recording from both storage and the database.
Delete a recording
Response
Deleting a recording is permanent. The audio file is removed from storage and the record is soft-deleted from the database.

Webhook

When a recording finishes processing, Chirp sends a calls.recording.completed webhook to your configured webhook URL. Use this to trigger downstream workflows such as transcription or archival.