Browsergrid docs
Captures, browser sessions and analytical jobs over one API, paid from prepaid credit. Start with the quickstart; every call of the grid has its own reference page, with what it costs and when it settles.
Overview
- OverviewBrowsergrid captures web pages, lends you remote browsers and runs your containers, billed from credit or by monthly invoice per published result, browser-hour and vCPU-hour.
- QuickstartFrom an API key to a published capture, a browser session, an analytical job and an MCP client.
Use the service
- Managed servicesRequest PostgreSQL + PgBouncer, MLflow or LiteLLM; follow setup, obtain credentials and manage your instance.
- CapturesSend up to 1,000 URLs per batch; each is fetched or rendered once and published as an immutable set of files you download with a short-lived URL.
- Browser sessionsLease a remote Chromium, drive it over the Chrome DevTools Protocol, and pay per browser-hour only while it is ready.
- Analytical jobsRun a
linux/amd64container image with the CPU and memory you choose, follow it through its phases and read its output. - MCPGive an AI agent captures, browser sessions and analytical jobs as tools, through the Model Context Protocol endpoint
/mcp. - API keysCreate, cap, rotate and revoke the keys your programs use to call the grid.
Billing
- Credit and billingYou pay in euros, from credit or by an invoice after each month against a spending limit you choose: work reserves what it may cost when it is admitted and is charged for what it actually used when it settles.
- Pricing unitsWhat each unit measures, how a charge is computed and rounded, and worked examples at the prices of rate card
2026-10-10.sandbox-1.
Reference
POST /batchesSubmit up to 1,000 URLs as one capture batch, all under one script and one browser profile.GET /batches/{batchId}A batch's progress counts and every item's state, with the item ids you need to fetch results.GET /jobs/{jobId}One capture item or one analytical job: its state, attempts and failure reason.POST /jobs/{jobId}/retryRun a failed capture item or a failed analytical job again.GET /artifacts/{jobId}/{kind}A read-only download URL, valid for 15 minutes, for one published file of a capture item.POST /sessionsLease a remote Chromium under one browser profile and get its one-time CDP address.GET /sessionsYour live browser sessions, with their state and attestation, without their CDP addresses.DELETE /sessions/{sessionId}Release a browser session: stop its meter and remove the browser.POST /jobsSubmit an analytical job: a container image, a command and the resources it may use.GET /jobsYour analytical jobs, newest first, filtered by phase or by one label, a page at a time.POST /jobs/{jobId}/cancelAsk an analytical job to stop; what already ran is charged, the rest is released.GET /jobs/{jobId}/logsThe stdout and stderr of one attempt of an analytical job, as plain text.GET /jobs/{jobId}/artifactsThe files an analytical job has published: today, one log per finished attempt.GET /gridThe grid's state right now: the capture queue, running workers and session slots.GET /grid/queue-depthOne number: how many capture items the whole grid has queued or in progress.POST /mcpThe Model Context Protocol endpoint: every grid call as a tool, over stateless Streamable HTTP.GET /healthzWhether the grid's API is up; needs no credential and says nothing else.GET /.well-known/oauth-protected-resourceThe grid's OAuth protected-resource metadata, which MCP clients read to find where to sign in.