List recordings
curl --request GET \
--url https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"workspaceId": "<string>",
"recordings": [
{
"recordingId": "<string>",
"recordingThumbnail": "<string>",
"recordingDurationMs": 0,
"expiresAt": null,
"createdAt": "<unknown>",
"creator": {
"workspaceMemberId": "<string>",
"name": "<string>"
},
"linkTitle": "<string>"
}
],
"pagination": {
"page": 123,
"perPage": 123,
"total": 4503599627370495,
"totalPages": 4503599627370495,
"hasMore": true
}
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Invalid request parameters. Check the request body and query parameters. See https://docs.userplane.io/api/error-handling",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "API key is required. Include it as Authorization: Bearer <your-api-key>. See https://docs.userplane.io/api/authentication",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "The API key is disabled. Enable it or create a new key. See https://docs.userplane.io/api/authentication",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Workspace not found",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Workspace has been deleted",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Rate limit exceeded. Wait and retry with exponential backoff. See https://docs.userplane.io/api/rate-limits",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "API key verification service is temporarily unavailable. Please try again later. See https://docs.userplane.io/api/error-handling",
"data": "<unknown>"
}Recordings
List Recordings
Retrieve a paginated list of recordings with optional filters
GET
/
public
/
workspace
/
{workspaceId}
/
recordings
List recordings
curl --request GET \
--url https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.userplane.io/api/v1/public/workspace/{workspaceId}/recordings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"workspaceId": "<string>",
"recordings": [
{
"recordingId": "<string>",
"recordingThumbnail": "<string>",
"recordingDurationMs": 0,
"expiresAt": null,
"createdAt": "<unknown>",
"creator": {
"workspaceMemberId": "<string>",
"name": "<string>"
},
"linkTitle": "<string>"
}
],
"pagination": {
"page": 123,
"perPage": 123,
"total": 4503599627370495,
"totalPages": 4503599627370495,
"hasMore": true
}
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Invalid request parameters. Check the request body and query parameters. See https://docs.userplane.io/api/error-handling",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "API key is required. Include it as Authorization: Bearer <your-api-key>. See https://docs.userplane.io/api/authentication",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "The API key is disabled. Enable it or create a new key. See https://docs.userplane.io/api/authentication",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Workspace not found",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Workspace has been deleted",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Rate limit exceeded. Wait and retry with exponential backoff. See https://docs.userplane.io/api/rate-limits",
"data": "<unknown>"
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "API key verification service is temporarily unavailable. Please try again later. See https://docs.userplane.io/api/error-handling",
"data": "<unknown>"
}Returns a paginated list of recordings in the specified workspace with optional filtering and sorting.
Errors
This endpoint returns common authentication errors.Related
Get Recording
Full recording details with metadata
Recording Resources
Download video, thumbnail, and log files
List Links
Links that generated these recordings
Pagination
Page-based pagination for list endpoints
Authorizations
API key with uspl_ prefix. Create keys at dash.userplane.io/_/account?tab=developers
Path Parameters
Minimum string length:
1Query Parameters
Required range:
x <= 9007199254740991Required range:
1 <= x <= 20Minimum string length:
1Minimum string length:
1Minimum string length:
1Available options:
created_at, recording_duration Available options:
asc, desc ⌘I