---
notionId: "7f38963745af47b78eace024db04978f"
product: "developer"
cluster: "apis"
intent: "developer.call-recordings"
docSlug: "call-recordings"
task: "Call Recordings in the API"
title: "Call Recordings in the API | VirtualPBX"
meta_description: "The Recordings API reads call recordings stored for the account and fetches the media or document for one recording. A request can also remove a recording."
answer: "The Recordings API reads call recordings stored for the account and fetches the media or document for one recording. A request can also remove a recording. Automated use of this API can cause the account's API access to be restricted, so talk with the team before a job lists or downloads recordings on a schedule. Fetch a single recording when a person or a ticket needs that file."
audience: "user"
updated: "2026-05-27"
legacy: ["call-recordings"]
headings: [{"depth":2,"text":"About Recordings","id":"about-recordings"},{"depth":3,"text":"Fetch recordings#","id":"fetch-recordings"},{"depth":3,"text":"Fetch recording media or document#","id":"fetch-recording-media-or-document"},{"depth":3,"text":"Remove a recording#","id":"remove-a-recording"}]
lint: []
---

## About Recordings

Recordings endpoint provides a way to access call recordings.

<aside class="note"><p>Automated API use of the Call Recordings API endpoint may cause restriction API access to the account. Please contact our team for guidance on automating management of Call Recordings.</p></aside>

### Fetch recordings#

<pre tabindex="0"><code class="language-javascript">GET /v2/accounts/{ACCOUNT_ID}/recordings</code></pre>

Lists the call recording with pagination and filtering.

<pre tabindex="0"><code class="language-javascript">curl -v -X GET \
    -H &quot;X-Auth-Token: {AUTH_TOKEN}&quot; \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/recordings</code></pre>

### Fetch recording media or document#

<pre tabindex="0"><code class="language-javascript">GET /v2/accounts/{ACCOUNT_ID}/recordings/{RECORDING_ID}</code></pre>

Gets a specific recording document.

<pre tabindex="0"><code class="language-javascript">curl -v -X GET \
    -H &quot;X-Auth-Token: {AUTH_TOKEN}&quot; \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/recordings/{RECORDING_ID}</code></pre>

Gets a specific recording document attachment if available. Mind the `Accept` header in example below. For clients that do not support setting the `Accept` header, a query string parameter can be included: `?accept=audio/mpeg`.

Optional parameter `inline` can be either `true` or `false`.

<pre tabindex="0"><code class="language-javascript">curl -v -X GET \
    -H &quot;X-Auth-Token: {AUTH_TOKEN}&quot; \
    -H &quot;Accept: audio/mpeg&quot; \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/recordings/{RECORDING_ID}</code></pre>

### Remove a recording#

<pre tabindex="0"><code class="language-javascript">DELETE /v2/accounts/{ACCOUNT_ID}/recordings/{RECORDING_ID}</code></pre>

This will delete the metadata document. If the binary data is stored on the metadata document (instead of on a storage provider), it will also be deleted. Recordings stored on storage providers will not be deleted.

<pre tabindex="0"><code class="language-javascript">curl -v -X DELETE \
    -H &quot;X-Auth-Token: {AUTH_TOKEN}&quot; \
    http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/recordings/{RECORDING_ID}</code></pre>
