Updates / product
Kept downloads: files from a session, fetched after it ends
Launch with "downloads": true and every file the browser downloads is kept for 2 days — including files a person clicked in live view or an AI agent fetched through MCP — listed with size and sha256 and fetched through a private link.
2026-11-04
Until now a file existed only if your code caught it: download.saveAs() while the session was still connected. That misses the downloads nobody's code was waiting for — a person clicking "Export" in live view, an AI assistant working through the MCP server, a client that disconnected before the file finished. Since 2026-11-01 a session launched with "downloads": true keeps every file it downloads, and you fetch them after the session.
How it works
- Add
"downloads": trueto the launch request — on any browser. Your code still receives downloads as usual; the option only adds a copy kept on our side. - After the session,
GET /v1/me/downloads?session_id=…lists each file withname,bytes,sha256,source_urlandexpires_at;GET /v1/me/downloads/{id}/urlreturns a private link valid for 15 minutes. The dashboard's Sessions page lists the same files. - AI assistants get them through the MCP server's
downloadstool: names, sizes and a link each, afterclose_browser. - Measured on 2026-11-04: two files (200 KB and 30 bytes) started with a click and never saved by the client were listed 1.1 s after
browser.close(), and the fetched bytes matched the listed sha256 and the original file.
Limits
- Paid plans only — a Community launch with the option gets
403 downloads_not_available. - Per session: up to 1 GB and 200 files; later files aren't kept (your code still receives them).
- Per account: 1 GB; when a new session's files would pass it, the oldest files are deleted.
- Kept for 2 days, then deleted;
DELETE /v1/me/downloads/{id}removes one sooner. - Every file is served as an attachment (
application/octet-stream), never opened on cdpfleet.com — check thesha256if you pass files on.
What isn't kept
- Downloads in browser contexts a raw-CDP client creates itself (Puppeteer's
createBrowserContext()overcdpUrl); the default context and Playwright contexts are covered. - Contexts opened with
acceptDownloads: false— the browser doesn't download at all. - On WebKit, a
text/plainresponse withContent-Disposition: attachmentisn't treated as a download.
Get started
- The docs: Downloads and the option downloads.
- A complete program in five languages: Keep the files a session downloads.
- Files while the session runs, byte for byte: case 12.
- A person in live view and an AI agent over MCP, measured: Downloads in practice.