Skip to content

Files and recordings

GET /browsers/{id}/downloads

Query
limit 1–100, 50 by default
cursor The nextCursor of the page before
includeUrls true signs a URL for each file, valid for 15 minutes
{
"files": [{ "path": "report.csv", "size": 1832, "lastModified": "2026-11-09T10:12:03Z", "url": "https://…" }],
"nextCursor": null,
"hasMore": false
}

Listed from the machine while the browser runs, and from storage once it stopped.

A browser created with enableRecording: true has, on GET /browsers/{id} after it stopped:

Field
recordingUrl The MP4, signed for an hour. null until it is ready, a few seconds after the stop
recordingAvailable false when no recording was asked for or it could not be kept: stop waiting for the URL
import time
for _ in range(30):
browser = client.browsers.get(browser_id)
if browser.recording_url or not browser.recording_available:
break
time.sleep(2)

Get the browser again for a fresh URL once one expires.