Skip to main content
The Recording API lets you retrieve and manage recordings created during voice calls or conferences. Recordings can be created using the Record a Call API or the Record XML element.

The Recording Object

AttributeTypeDescription
recording_idstringUnique identifier for the recording.
call_uuidstringIdentifier of the call that was recorded.
conference_namestringName of the conference that was recorded. null for regular calls.
recording_urlstringURL where the recording file can be accessed.
recording_formatstringFile format. Values: wav, mp3.
recording_typestringType of recording. Values: conference, normal.
recording_duration_msstringDuration of the recording in milliseconds.
rounded_recording_durationintegerDuration rounded to nearest 60-second interval. Recordings under 60s are rounded up.
recording_storage_durationintegerTime in days the recording has been stored. Increments after 24 hours from add time.
recording_storage_ratestringUnit cost of storing the recording per month.
monthly_recording_storage_amountstringMonthly storage cost in the latest billing cycle.
add_timestringDatetime when the recording was created.

Example Recording Object

{
  "add_time": "2020-08-05 16:15:15.852059+05:30",
  "api_id": "7abf0744-1ca0-11e4-a2d1-22000ac5040c",
  "call_uuid": "c2c128e2-1c8c-11e4-9bff-1db8a9db0432",
  "conference_name": "noname",
  "recording_duration_ms": "345100.00000",
  "recording_end_ms": "1407235509007.00000",
  "recording_format": "mp3",
  "recording_id": "c2186400-1c8c-11e4-a664-0026b945b52x",
  "recording_start_ms": "1407235163907.00000",
  "recording_type": "conference",
  "recording_url": "http://s3.amazonaws.com/recordings_2013/c2186400-1c8c-11e4-a664-0026b945b52x.mp3",
  "resource_uri": "/v1/Account/MA2025RK4E639VJFZAGV/Recording/c2186400-1c8c-11e4-a664-0026b945b52x/",
  "recording_storage_duration": "723",
  "rounded_recording_duration": "3456",
  "recording_storage_rate": "0.0004",
  "monthly_recording_storage_amount": "0.02304"
}

Retrieve a Recording

Get details of a specific recording by its ID.
GET https://api.plivo.com/v1/Account/{auth_id}/Recording/{recording_id}/

Arguments

No arguments required.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.recordings.get(recording_id='1ca34b00-3c5c-11e7-b213-06bcf6c57c65')
print(response)

Response

{
  "add_time": "2020-08-05 16:15:15.852059+05:30",
  "api_id": "7abf0744-1ca0-11e4-a2d1-22000ac5040c",
  "call_uuid": "c2c128e2-1c8c-11e4-9bff-1db8a9db0432",
  "conference_name": "noname",
  "recording_duration_ms": "345100.00000",
  "recording_end_ms": "1407235509007.00000",
  "recording_format": "mp3",
  "recording_id": "c2186400-1c8c-11e4-a664-0026b945b52x",
  "recording_start_ms": "1407235163907.00000",
  "recording_type": "conference",
  "recording_url": "http://s3.amazonaws.com/recordings_2013/c2186400-1c8c-11e4-a664-0026b945b52x.mp3",
  "resource_uri": "/v1/Account/MA2025RK4E639VJFZAGV/Recording/c2186400-1c8c-11e4-a664-0026b945b52x/"
}

List All Recordings

Retrieve all recordings in your account with optional filters.
GET https://api.plivo.com/v1/Account/{auth_id}/Recording/

Arguments

ParameterDescription
from_numberFilter by source phone number (E.164 format) or SIP endpoint.
to_numberFilter by destination phone number (E.164 format) or SIP endpoint.
subaccountFilter by subaccount auth_id.
call_uuidFilter by specific call UUID.
add_timeFilter by creation time. Format: YYYY-MM-DD HH:MM[:ss[.uuuuuu]]. Supports: add_time__gt, add_time__gte, add_time__lt, add_time__lte.
mpc_nameFilter by multiparty call name.
mpc_uuidFilter by multiparty call UUID.
conference_nameFilter by conference name.
conference_uuidFilter by conference UUID.
recording_storage_durationFilter by storage duration in days. Supports: __gt, __gte, __lt, __lte. Cannot be used with add_time.
limitNumber of results per page. Max: 20.
offsetNumber of records to skip for pagination.
  • If no time filter is used, Plivo defaults to a 7-day search window.
  • add_time allows searching within a 30-day window. Exceeding 30 days returns a 400 error.
  • All timestamps must be in UTC.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.recordings.list(offset=0, limit=5)
print(response)

Response

{
  "api_id": "ff25223a-1c9f-11e4-80aa-12313f048015",
  "meta": {
    "limit": 3,
    "next": "/v1/Account/MA2025RK4E639VJFZAGV/Recording/?limit=3&offset=3",
    "offset": 0,
    "previous": null,
    "total_count": 948
  },
  "objects": [
    {
      "add_time": "2022-08-05 16:15:15.852059+05:30",
      "call_uuid": "c2c128e2-1c8c-11e4-9bff-1db8a9db0432",
      "conference_name": "noname",
      "recording_duration_ms": "345100.00000",
      "recording_format": "mp3",
      "recording_id": "c2186400-1c8c-1124-a664-0026b945b522",
      "recording_type": "conference",
      "recording_url": "http://s3.amazonaws.com/recordings_2013/c2186400-1c8c-1124-a664-0026b945b522.mp3"
    }
  ]
}

Delete a Recording

Permanently delete a recording from your account.
DELETE https://api.plivo.com/v1/Account/{auth_id}/Recording/{recording_id}/

Arguments

No arguments required.

Returns

Returns 204 No Content on success. Returns 404 Not Found if the recording doesn’t exist.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.recordings.delete(recording_id='9684e812-4b88-11e7-b285-02fb5b2555e7')
print(response)

Response

HTTP Status Code: 204

Get Recordings by Call UUID

To find all recordings for a specific call, use the call_uuid filter:
recordings = client.recordings.list(call_uuid='c2c128e2-1c8c-11e4-9bff-1db8a9db0432')
for recording in recordings:
    print(f"Recording URL: {recording.recording_url}")

Recording Pricing

ComponentRate
Recording generationFree
Storage (first 90 days)Free
Storage (after 90 days)$0.0004/minute/month
The recording_storage_rate and monthly_recording_storage_amount fields in the recording object show current storage costs for recordings stored beyond 90 days. See Voice Pricing for complete pricing details.