Skip to main content
Upload a Chrome extension to your project once. Then load up to 3 uploaded extensions into any browser you create. The extensions are installed before the browser is ready, so the first page you open already runs them.
Zero Data Retention projects cannot use extensions.
The examples use the REST API. Python and TypeScript SDK methods follow in the next SDK release.

Upload an extension

Upload a ZIP file with manifest.json at its root. You can unzip an extension from the Chrome Web Store and upload the result as it is.
The response contains the extension id, name, version, and createdAt:
Keep the id: you use it to load the extension into a browser.

Use extensions in a browser

Pass up to 3 extension IDs when you create a browser:
The browser response lists the installed extensions:
runtimeId is the Chrome extension ID. The extension’s pages are available at chrome-extension://<runtimeId>/, for example to open its options page from Playwright or Puppeteer.

List and delete extensions

Deleting an extension removes its files permanently. Browsers that are already running keep the extension until they stop. New browsers cannot use the deleted ID.

Limits

The upload refuses an extension that sets key in manifest.json, or that requests the debugger, proxy, processes, dns, experimental, or any enterprise.* permission. The error response names the problem, for example {"detail": {"code": "prohibited_permission", "message": "The debugger permission is not allowed."}}.