Introducing /interact. Scrape any page, then let your agent take over to click, type, and extract data for you. Try it now →
[ INTERACT ]
[ PROMPT ]
[ SCRAPE ]
[ CODE ]
New: Prompt-based Interaction

Introducing
Interact

Scrape a page, then take actions on it. Describe what you want in natural language — or write code for full control.

luxestore.com/collections
LUXE
Search...
All
Bags
Shoes
Watches
Latest ▾
Leather Tote
$1,290
Running Shoes
$340
Silk Scarf
$180
Gold Watch
$4,200
1
2
3
Agent
Agent Terminal
Interact
$firecrawl interact -p
>prompt: "search for leather bags"
>prompt: "filter by Casual style"
>prompt: "go to page 2"
>prompt: "extract all product cards"
>output: structured CSV (12 products)
[ 01 / 09 ]
·
How It Works
//
How It Works
//

Scrape, then interact

Scrape any page, then interact with it using prompts or code.
01
Scrape the page

Get clean data from any URL. The response includes a scrapeId you'll use to interact.

firecrawl scrape https://example.com
02
Interact with prompts

Describe what you want in natural language. Click buttons, fill forms, extract data.

firecrawl interact -p "Click the login button"
03
Chain interactions

Each call reuses the session. State carries over so you can perform multiple actions in 1 session.

firecrawl interact -p "Fill email with test@example.com"
firecrawl interact -p "Submit the form"
Agent session
INTERACT
Claude Code — Firecrawl toolkit ready
>Scrape all leather bag products with prices from luxstore.com
Works with prompts, Playwright code, and agent-browser CLI.
Read docs
[ 02 / 09 ]
·
Why Interact
//
Interact
//

Why interact?

The fastest way to go from scraping to taking action on any page.
Prompt-Based

Just describe what you want in natural language. Click buttons, fill forms, navigate pages — no selectors or Playwright code needed.

terminal
Full Code Control

Need precision? Write Playwright code in Node.js, Python, or Bash. The page object is ready — execute anything the browser can do.

your infrastructure
sandbox
Persistent Profiles

Save browser state across sessions with profiles. Stay logged in, preserve cookies, and pick up where you left off.

app.example.com
session 1
my-profile
cookies
auth
prefs
Session Chaining

Each interact call reuses the same session. Chain prompts to complete multi-step workflows — state carries over automatically.

firecrawl skill
Claude Code
Codex
OpenCode
[ 03 / 09 ]
·
CLI
//
CLI
//

The Interact Toolkit in your terminal

Scrape, interact, and stop — all from the terminal.
Terminal
$ firecrawl scrape https://example.com

{
  "title": "Example",
  "markdown": "# Hello\n...",
  "metadata": {
    "scrapeId": "<string>",
    "statusCode": 200,
    "sourceURL": "https://example.com"
  }
}
firecrawl
Scrape
firecrawl
Interact
firecrawl
Stop
[ 04 / 09 ]
·
Start Building
//
Integrations
//

Works with every agent framework

Connect Firecrawl Interact to your agent framework in minutes. Works out of the box with MCP.
Vercel
Vercel AI SDK
Build AI apps with streaming and tool use
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { createMCPClient } from "ai";

const client = await createMCPClient({
  transport: { type: "sse",
    url: "https://mcp.firecrawl.dev/sse" },
});

const { text } = await generateText({
  model: openai("gpt-4o"),
  tools: await client.tools(),
  prompt: "Scrape example.com and click the "
    + "login button on the page",
});
OpenAI
OpenAI Agents
Agentic workflows with tool calling
from agents import Agent, Runner
from agents.mcp import MCPServerSse

firecrawl = MCPServerSse(
    url="https://mcp.firecrawl.dev/sse",
    headers={
        "Authorization": "Bearer fc-YOUR-API-KEY"
    },
)

agent = Agent(
    name="Interact Agent",
    instructions="Scrape pages and interact "
        "with them for the user.",
    mcp_servers=[firecrawl],
)

result = await Runner.run(
    agent, "Scrape example.com, click the "
    "pricing tab and extract the plans"
)
Claude
Claude
MCP-native tool use with Anthropic
import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    tools=[{
        "type": "mcp",
        "server_url":
          "https://mcp.firecrawl.dev/sse",
        "server_label": "firecrawl",
    }],
    messages=[{
        "role": "user",
        "content": "Scrape example.com and "
          "fill the contact form with "
          "test data, then submit it"
    }],
)
LangChain
LangChain
Composable agents with LangGraph
from langchain_mcp_adapters.client \
    import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI

client = MultiServerMCPClient({
    "firecrawl": {
        "url": "https://mcp.firecrawl.dev/sse",
        "transport": "sse",
    }
})

tools = await client.get_tools()
agent = create_react_agent(
    ChatOpenAI(model="gpt-4o"), tools
)
result = await agent.ainvoke({
    "messages": "Scrape news.ycombinator.com "
    "and extract the top 5 story titles"
})
[ 05 / 09 ]
·
Use Cases
//
Use Cases
//

Go beyond static scraping

When scraping gives you the data, interact lets you take action on it.
E-commerce Monitoring

Scrape product pages and interact to add items to cart, check prices after login, or track inventory changes.

$ firecrawl interact -p "Add the first item to cart and check the total price"
Form Automation

Fill out multi-step forms, submit applications, or complete signup flows with natural language.

$ firecrawl interact -p "Fill the registration form with test data and submit"
Deep Data Extraction

Navigate paginated results, expand dropdowns, and click through tabs to extract data scraping alone can't reach.

$ firecrawl interact -p "Click next page and extract all product listings"
Authenticated Workflows

Log in with credentials, navigate auth-gated dashboards, and extract protected content.

$ firecrawl interact -p "Log in and download the monthly report"
QA & Testing

Verify UI flows, check form validations, and test multi-step user journeys across pages.

$ firecrawl interact -p "Submit the form with invalid email and check the error message"
Multi-Step Workflows

Chain prompts to complete complex flows — search, filter, select, checkout — all in one session.

$ firecrawl interact -p "Search for laptops, filter by price under $1000, and extract the top 5 results"
[ 06 / 09 ]
·
Code Examples
//
Code Examples
//

Scrape, prompt, done

Scrape a page, then interact with prompts or code. Works with every SDK.
Prompt or code

Describe what you want in natural language, or write Playwright code for full control. Both use the same session.

Session chaining

Each interact call reuses the session. Chain prompts to complete multi-step flows — state carries over between calls.

Live view included

Every response includes a live view URL. Watch the browser in real time or embed the interactive view in your own UI.

[ SDK ]
import Firecrawl from '@mendable/firecrawl-js';

const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

// Scrape the page
const scrape = await firecrawl.scrapeUrl("https://news.ycombinator.com");
const scrapeId = scrape.metadata.scrapeId;

// Interact with a prompt
const result = await firecrawl.interact(scrapeId, {
  prompt: "Extract the top 5 story titles",
});
console.log(result.output);

// Or run Playwright code
const result2 = await firecrawl.interact(scrapeId, {
  code: "return await page.title()",
  language: "node",
});
console.log(result2.result);

// Stop when done
await firecrawl.interactStop(scrapeId);
[ OUTPUT ]
// Output (prompt)
> Interacting with scraped page...

Here are the top 5 stories on Hacker News:
1. Mass Recall of Tesla Cybertrucks
2. Show HN: I built a real-time flight tracker
3. The Art of PostgreSQL
4. Why SQLite Is So Great for the Edge
5. Ask HN: What are you working on?

✓ Prompt executed successfully
Scrape a page → interact with it → stop when done. That's it.
[ 07 / 09 ]
·
FAQ
//
FAQ
//

Frequently asked questions

Everything you need to know about Firecrawl Interact.
Interact
Pricing
Usage
FOOTER
The easiest way to extract
data from the web
Backed by
Y Combinator
LinkedinGithubYouTube
SOC II · Type 2
AICPA
SOC 2
X (Twitter)
Discord