Skip to main content
Scrape a page to get clean data, then call /interact to start taking actions in that page - click buttons, fill forms, extract dynamic content, or navigate deeper. Just describe what you want, or write code if you need full control.

AI prompts

Describe what action you want to take in the page

Code execution

Interact via code execution securely with playwright, agent-browser

Live view

Watch or interact with the browser in real time via embeddable stream

How It Works

  1. Scrape a URL with POST /v2/scrape. The response includes a scrapeId in data.metadata.scrapeId. Optionally pass a profile to persist browser state across sessions.
  2. Interact by calling POST /v2/scrape/{scrapeId}/interact with a prompt or with playwright code. On the first call, the scraped session is resumed and you can start interacting with the page.
  3. Stop the session with DELETE /v2/scrape/{scrapeId}/interact when you’re done.

Quick Start

Scrape a page, interact with it, and stop the session:
Response

Interact via prompting

The simplest way to interact with a page. Describe what you want in natural language and it will click, type, scroll, and extract data automatically.
The response includes an output field with the agent’s answer:
Response

Keep Prompts Small and Focused

Prompts work best when each one is a single, clear task. Instead of asking the agent to do a complex multi-step workflow in one shot, break it into separate interact calls. Each call reuses the same browser session, so state carries over between them.

Running Code

For full control, you can execute code directly in the browser sandbox. The page variable (a Playwright Page object) is available in Node.js and Python. Bash mode has agent-browser pre-installed. You can also take screenshots within the session — use (await page.screenshot()).toString("base64") in Node.js, await page.screenshot(path="/tmp/screenshot.png") in Python, or agent-browser screenshot in Bash.

Node.js (Playwright)

The default language. Write Playwright code directly — page is already connected to the browser.

Python

Set language to "python" for Playwright’s Python API.

Bash (agent-browser)

agent-browser is a CLI pre-installed in the sandbox with 60+ commands. It provides an accessibility tree with element refs (@e1, @e2, …) — ideal for LLM-driven automation.
Common agent-browser commands:

Live View

Every interact response returns a liveViewUrl that you can embed to watch the browser in real time. Useful for debugging, demos, or building browser-powered UIs.
Response

Interactive Live View

The response also includes an interactiveLiveViewUrl. Unlike the standard live view which is view-only, the interactive live view allows users to click, type, and interact with the browser session directly through the embedded stream. This is useful for building user-facing browser UIs — such as login flows, or guided workflows where end users need to control the browser.

Session Lifecycle

Creation

The first POST /v2/scrape/{scrapeId}/interact continues the scrape session and starts the interaction.

Reuse

Subsequent interact calls on the same scrapeId reuse the existing session. The browser stays open and maintains its state between calls, so you can chain multiple interactions:

Cleanup

Stop the session explicitly when done:
Sessions also expire automatically based on TTL (default: 10 minutes) or inactivity timeout (default: 5 minutes).
Always stop sessions when you’re done to avoid unnecessary billing. Credits are prorated by the second.

Persistent Profiles

By default, each scrape + interact session starts with a clean browser. With profile, you can save and reuse browser state (cookies, localStorage, sessions) across scrapes. This is useful for staying logged in and preserving preferences. Pass the profile parameter when calling scrape. Sessions with the same profile name share state.
Only one session can save to a profile at a time. If another session is already saving, you’ll get a 409 error. You can still open the same profile with saveChanges: false, or try again later.
The browser state is saved when the interact session is stopped. Always stop the session when you’re done so the profile can be reused.

When to Use What

Interact vs Browser Sandbox: Interact is built on the same infrastructure as Browser Sandbox but provides a better interface for the most common pattern — scrape a page, then go deeper. Browser Sandbox is better when you need a standalone browser session that isn’t tied to a specific scrape.

Pricing

  • Code-only (no prompt) — 2 credits per session minute
  • With AI prompts — 7 credits per session minute
  • Scrape — billed separately (1 credit per scrape, plus any format-specific costs)

API Reference

Request Body (POST)

Response


Have feedback or need help? Email help@firecrawl.com or reach out on Discord.