/recordings

Get recordings

get

Returns the recordings.

Query parameters
roomNamestringOptional

The name of the room

cursorstringOptional

The cursor for paginating through the results. To fetch the next page, set the cursor to the cursor returned by the previous request.

Example: 8f4031bfc7640c5f267b11b6fe0c2507
limitinteger · min: 1 · max: 100Optional

The limit for the pagination - the maximum number of results that will be returned within a single API response.

Default: 50
sortByanyOptional

Sort results by a field. Accepted fields are: roomName, startDate, duration and sizeInMegaBytes. Accepted sort values are 'asc' and 'desc'.

Example: roomName:asc
Responses
200
A JSON object with the page containing the array with the recordings results.
application/json
get
GET /v1/recordings HTTP/1.1
Host: api.whereby.dev
Accept: */*
{
  "results": [
    {
      "recordingId": "a56f6ad7-37fe-4a37-9319-3174630ba57a",
      "roomSessionId": "e2f29530-46ec-4cee-8b27-e565cb5bb2e9",
      "filename": "recording.mp4",
      "startDate": "2025-01-01T00:00:00.000Z",
      "endDate": "2025-01-01T00:00:00.000Z",
      "sizeInMegaBytes": 100
    }
  ],
  "cursor": "text"
}

Get recording

get

Returns the specified recording metadata.

Path parameters
recordingIdstringRequired

Recording ID.

Example: a56f6ad7-37fe-4a37-9319-3174630ba57a
Responses
200
A JSON object representing the recording.
application/json
ResponseobjectExample: {"recordingId":"a56f6ad7-37fe-4a37-9319-3174630ba57a","roomSessionId":"e2f29530-46ec-4cee-8b27-e565cb5bb2e9","filename":"recording.mp4","startDate":"2025-01-01T00:00:00.000Z","endDate":"2025-01-01T00:00:00.000Z","sizeInMegaBytes":100}
get
GET /v1/recordings/{recordingId} HTTP/1.1
Host: api.whereby.dev
Accept: */*
{
  "recordingId": "a56f6ad7-37fe-4a37-9319-3174630ba57a",
  "roomSessionId": "e2f29530-46ec-4cee-8b27-e565cb5bb2e9",
  "filename": "recording.mp4",
  "startDate": "2025-01-01T00:00:00.000Z",
  "endDate": "2025-01-01T00:00:00.000Z",
  "sizeInMegaBytes": 100
}
get

Returns the access link for the specified recording. Available for Whereby-hosted recordings only

Path parameters
recordingIdstringRequired

Recording ID.

Example: a56f6ad7-37fe-4a37-9319-3174630ba57a
Query parameters
validForSecondsinteger · min: 1 · max: 43200Optional

The number of seconds the access link is valid for.

Default: 3600
Responses
200
A JSON object representing the access link.
application/json
get
GET /v1/recordings/{recordingId}/access-link HTTP/1.1
Host: api.whereby.dev
Accept: */*
{
  "accessLink": "https://s3.eu-central-1.amazonaws.com/recordings/1.mp4?AWSAccessKeyId=AKIAJ...",
  "expires": 1740819600000
}

Bulk delete recordings

post

Deletes multiple recordings at once. This is an asynchronous operation. The endpoint returns immediately, and schedules a background job to delete the recordings. The endpoint is idempotent, meaning it will return the same response even if the recordings have already been deleted, or the recordings doesn't exist.

Body
recordingIdsstring[]Required

The recording ID to delete.

Example: a56f6ad7-37fe-4a37-9319-3174630ba57a
Responses
204
The resources are scheduled for deletion.
post
POST /v1/recordings/bulk-delete HTTP/1.1
Host: api.whereby.dev
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "recordingIds": [
    "a56f6ad7-37fe-4a37-9319-3174630ba57a"
  ]
}

No content

Delete recording

delete

Deletes the specified recording. The endpoint is idempotent, meaning it will return the same response even if the recording has already been deleted.

Path parameters
recordingIdstringRequired

Recording ID.

Example: a56f6ad7-37fe-4a37-9319-3174630ba57a
Responses
204
The resource was deleted successfully.
delete
DELETE /v1/recordings/{recordingId} HTTP/1.1
Host: api.whereby.dev
Accept: */*

No content

Last updated

Was this helpful?