Cloud browser API for AI agents
Give your agent a real browser when page context requires interaction.
Reader Browser lets your workflow launch a cloud browser session and connect with Playwright, Puppeteer, or CDP based automation so agents can click, type, navigate, capture screenshots, generate PDFs, and work with rendered page state.
1,000 free credits every month. No card required.
# Create a browser session
curl -X POST https://api.reader.dev/v1/sessions \
-H "Content-Type: application/json" \
-H "x-api-key: $READER_KEY"
# Returns { "wsEndpoint": "wss://..." }
# Connect with Playwright or Puppeteer using the endpointWhen scraping is not enough
Most agent workflows should start with Scrape or Crawl. If your agent only needs to read a page, summarize content, ingest documentation, or extract fields from visible page content, a normal scrape is usually the best tool. It is simpler, faster, and returns clean Markdown or structured data directly.
But some web workflows need a browser. A page may require a click before the right content appears. A product page may need a variant selected. A dashboard may need navigation. A search page may need a form submission. A report may need to be downloaded as a PDF. A visual review workflow may need a screenshot after a page finishes rendering.
Reader Browser is for those moments. It gives your application a real cloud browser session that your automation code can control. Use it when page context depends on interaction, state, or an existing browser automation script.
What Reader Browser does
Create a browser session.
Your application creates a browser session through Reader. Reader launches a cloud browser and returns a WebSocket endpoint.
Connect with Playwright or Puppeteer.
Use your existing automation tools to connect to the session. One line change from launching a local browser to connecting to a cloud session.
Navigate, click, type, and capture.
Your automation code controls the browser. Navigate to pages, fill forms, click buttons, scroll, take screenshots, generate PDFs, or extract content.
Return output to your application.
Your workflow decides what to capture: text from the page, HTML from elements, screenshot files, PDF output, URLs visited, or extracted values.
Close the session.
Close the browser connection and stop the session when done. Sessions time out automatically if not stopped.
Features
Playwright and Puppeteer compatible
Reader Browser is designed to work with the browser automation tools developers already use. Connect with connectOverCDP or Puppeteer's connect method. Your existing scripts work without modification.
Interactive page context
Click through tabs or filters, submit search forms, select product variants, navigate multi step flows, and capture screenshots or PDFs after the page reaches the right state.
Browser as a fallback for web context
Use Scrape for one page. Use Crawl for many pages. Use Extract for fields. Use Browser when interaction is required. Browser should often be the fallback, not the starting point.
Time based credit usage
Browser sessions use 1 credit per minute. Close sessions when the workflow is complete. Keep scripts focused and avoid idle waiting to control costs.
Agent design patterns
Give your agent a browser tool only for tasks that need interaction. Use Browser after a failed scrape. Use Browser for verification screenshots. Use Browser to reach the right state before extraction.
Full session control
Cookies, local storage, and authentication persist for the duration of the session. Your automation code has full control over the browser environment.
Use cases
Interactive product pages
Some product pages require selecting a size, location, or variant before showing availability, price, or shipping details. Use Browser to interact with the page state.
Search and filter flows
Some websites expose useful data only after a search form, filter selection, or multi step navigation. Use Browser when the URL alone is not enough.
Screenshots and visual review
Capture screenshots after the page has rendered or after your workflow has taken specific actions. Useful for QA, monitoring, customer support, and audits.
PDF capture
Render pages as PDFs when the output depends on rendered page state. Browser sessions are a natural fit for PDF generation workflows.
Existing automation scripts
If your team already has Playwright or Puppeteer scripts, Reader Browser can provide hosted sessions for those workflows without running browser infrastructure yourself.
Authenticated workflows
Support flows where your system owns the session and credentials. Log into vendor portals, customer dashboards, or internal tools to extract content from authenticated pages.
Browser versus Scrape
Browser and Scrape solve related but different problems. The simplest rule: start with Scrape when you need content. Use Browser when the page needs actions.
| Need | Use |
|---|---|
| Read a public page | Scrape |
| Convert a URL to Markdown | Scrape |
| Extract fields from visible content | Extract |
| Collect many pages from a site | Crawl |
| Click through a page | Browser |
| Fill a form | Browser |
| Capture a screenshot after interaction | Browser |
| Generate a PDF from rendered state | Browser |
| Run an existing Playwright script | Browser |
Session lifecycle
Reader Browser gives your workflow a hosted browser session. Instead of running Chromium workers on your own infrastructure, your application creates a session through Reader, connects to it with your automation client, performs the steps it needs, and closes the session when the task is done.
Create browser session
→ Connect with Playwright or Puppeteer
→ Navigate to the page
→ Click, type, wait, screenshot, or extract
→ Return output to your application
→ Close the sessionA local Playwright workflow usually starts by launching a browser:
const browser = await chromium.launch();With a cloud browser session, your workflow connects to an existing browser endpoint:
const browser = await chromium.connectOverCDP(session.wsEndpoint);From there, your code can use normal browser automation patterns:
const page = await browser.newPage();
await page.goto("https://example.com");
await page.click("text=Sign in");
await page.fill("input[name='email']", "user@example.com");
await page.screenshot({ path: "page.png", fullPage: true });
await browser.close();Credit usage for Browser
Browser sessions use credits based on time. Your workflow should close sessions when they are no longer needed.
| Operation | Credit usage |
|---|---|
| Browser session | 1 credit per minute |
| Standard scrape | 1 credit per page |
| Premium scrape | 3 credits per page |
| Cache hit | 0 credits |
| Failed scrape | 0 credits |
Good browser usage patterns include:
- Open the session only when interaction is required
- Keep the script focused on the task
- Avoid idle waiting where possible
- Capture the needed output quickly
- Close the session after completion
- Use Scrape or Extract for simple page reads
When to use another capability
Use Scrape when you need page content
If your agent only needs to read a page, summarize content, or get clean Markdown from a URL, Scrape is simpler, faster, and cheaper. Start with Scrape and only move to Browser if the content requires interaction.
Use Crawl when you need many pages
If your workflow needs context from an entire website, documentation site, or product catalog, use Crawl. Browser sessions are for individual interactive pages, not bulk collection.
Use Extract when you need structured fields
If the data you need is already visible on the page and you want it as JSON, use Extract. Browser is for reaching page state that a normal scrape cannot access.
Use Browser when interaction is required
If the page needs clicks, form input, navigation, or screenshot capture after rendering, Browser is the right tool. Use it as a fallback when simpler capabilities are not enough.
Frequently asked questions
Give your agent a browser when it needs one
Use Scrape for pages your agent can read directly. Use Crawl for websites. Use Extract for fields. Use Browser when the web page needs interaction.