Interact with a page in a live browser session: click buttons, fill forms, extract dynamic content, or navigate deeper.
**Best for:** Multi-step workflows on a single page — searching a site, clicking through results, filling forms, extracting data that requires interaction.
**Two ways to target a page:**
- Pass a `url` to interact directly. The session is opened for you in one call (use this for a fresh page).
- Pass a `scrapeId` from a previous firecrawl_scrape to reuse that already-loaded page (cheaper when you just scraped it).
**Arguments:**
- url: Page to interact with; opens a session for you (use this OR scrapeId)
- scrapeId: Scrape job ID from a previous scrape, found in its metadata (use this OR url)
- prompt: Natural language instruction describing the action to take (use this OR code)
- code: Code to execute in the browser session (use this OR prompt)
- language: "bash", "python", or "node" (optional, defaults to "node", only used with code)
- timeout: Interact execution timeout in seconds, 1-300 (optional, defaults to 30)
- scrapeOptions: Optional scrape controls used only with url mode, such as waitFor, maxAge, proxy, or zeroDataRetention
**Usage Example (prompt, direct via url):**
```json
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com/products",
"prompt": "Click on the first product and tell me its price"
}
}
```
**Usage Example (code):**
```json
{
"name": "firecrawl_interact",
"arguments": {
"scrapeId": "scrape-id-from-previous-scrape",
"code": "agent-browser click @e5",
"language": "bash"
}
}
```
**Returns:** Execution result including output, stdout, stderr, exit code, and live view URLs.