Skip to main content
GET
/
v1
/
sessions
/
{id}
/
recording
Get Recording
curl --request GET \
  --url https://api.bctrl.ai/v1/sessions/{id}/recording \
  --header 'Authorization: Bearer <token>'
{
  "id": "<string>",
  "sessionId": "<string>",
  "status": "<string>",
  "startedAt": {},
  "stoppedAt": {},
  "durationMs": {},
  "segmentCount": {},
  "encodedSegments": 123,
  "tabIds": [
    "<string>"
  ],
  "expired": true,
  "expiresAt": {},
  "remainingTtlSeconds": {},
  "retentionMs": 123
}
id
string
required
Session ID.

Examples

const session = await bctrl.session.playwright();
// ... run automation ...

const rec = await session.recording();
console.log(rec.status, rec.duration, rec.tabs);

Response

id
string
required
Recording ID.
sessionId
string
required
Session ID.
status
string
required
Recording status (recording, ready).
startedAt
string | null
When recording started (ISO datetime).
stoppedAt
string | null
When recording stopped (ISO datetime).
durationMs
number | null
Recording duration in milliseconds.
segmentCount
number | null
Total number of video segments.
encodedSegments
number
required
Number of encoded segments.
tabIds
string[]
required
List of recorded tab IDs.
expired
boolean
required
Whether the recording has expired.
expiresAt
string | null
When the recording expires (ISO datetime).
remainingTtlSeconds
number | null
Seconds until the recording expires.
retentionMs
number
required
Retention period in milliseconds.
Response Example
{
  "id": "rec_abc123",
  "sessionId": "sess_abc123",
  "status": "recording",
  "startedAt": "2025-01-15T10:00:00Z",
  "stoppedAt": null,
  "durationMs": 45000,
  "segmentCount": 3,
  "encodedSegments": 3,
  "tabIds": [
    "tab_1",
    "tab_2"
  ],
  "expired": false,
  "expiresAt": "2025-01-16T10:00:00Z",
  "remainingTtlSeconds": 86400,
  "retentionMs": 86400000
}

Errors

CodeDescription
404Session not found or no recording available