- For a single known URL, JSON mode on
/scrapeis cheaper and synchronous. - Full comparison: Choosing the Data Extractor.
/agent is a magic API that searches, navigates, and gathers data from the widest range of websites, finding data in hard-to-reach places and uncovering data in ways no other API can. It accomplishes in a few minutes what would take a human many hours — end-to-end data collection, without scripts or manual work.
Whether you need one data point or entire datasets at scale, Firecrawl /agent works to get your data.
Think of /agent as deep research for data, wherever it is!
Research Preview: Agent is in early access. Expect rough edges. It will get significantly better over time.
Bounty: 5,000 credit reward for solid feedback on /agent
To qualify, complete a high-signal interview (thoughtful, concrete use cases, etc) with our Firecrawl Feedback Assistant. Only takes a few minutes, can be stopped at any time, and is both human/agent-friendly (just paste the link into your agentic harness!). Never used /agent? Your take still counts.
Start the interviewInclude your email to be eligible. Interviews are reviewed for quality at the end of each week.
/extract and takes it further:
- No URLs Required: Just describe what you need via
promptparameter. URLs are optional - Deep Web Search: Autonomously searches and navigates deep into sites to find your data
- Reliable and Accurate: Works with a wide variety of queries and use cases
- Faster: Processes multiple sources in parallel for quicker results
Try it in the Playground
Test the agent in the interactive playground — no code required.
Using /agent
The only required parameter is prompt. Simply describe what data you want to extract. For structured output, provide a JSON schema. The SDKs support Pydantic (Python) and Zod (Node) for type-safe schema definitions:
Response
JSON
Providing URLs (Optional)
You can optionally provide URLs to focus the agent on specific pages:Job Status and Completion
Agent jobs run asynchronously. When you submit a job, you’ll receive a Job ID that you can use to check status:- Default method:
agent()waits and returns final results - Start then poll: Use
start_agent(Python) orstartAgent(Node) to get a Job ID immediately, then poll withget_agent_status/getAgentStatus
Job results are available via the API for 24 hours after completion. After this period, you can still view your agent history and results in the activity logs.
Possible States
Cancellation is cooperative. When you call the cancel endpoint, the request is registered immediately, but any step already in flight (an LLM reasoning step, a tool call, or a browser action) runs to a clean stopping point before the job stops. Credits can continue to accrue during that short window, so the final
creditsUsed may be higher than the value reported at the moment you clicked cancel. A cancelled job reports status failed when polled and emits an agent.cancelled webhook event.Pending Example
JSON
Completed Example
JSON
Following a run in progress
Agent doesn’t hold a streamed connection open. There’s no server-sent event stream and no websocket, so you follow a run either by polling its trace or by receiving webhooks.
When you order trace events yourself, group them by
agent.id first: producerSequence is monotonic per emitting agent, so a single global sort interleaves an orchestrator’s events with its subagents’ incorrectly. Events can also land for a moment after the terminal run.finished event, so keep polling through a short tail window before you render the final state.
Execution Traces and Snapshots
Every run records a canonical execution trace — ordered events covering tool calls, reasoning summaries, progress updates, browser sessions, and output artifact changes. Fetch it to debug a run or power a live progress UI:artifact.updated trace events reference the agent’s working output by snapshotId. Fetch the full content of a snapshot with the snapshots endpoint:
Traces and snapshots are recorded on Spark 2 runs, which is every new run; jobs started on Spark 1 models before their retirement do not have them. See the trace and snapshot API references for the full event schema, and the Agent errors catalog for the failures these endpoints return.
Getting the agent’s source data
A run writes its working output to artifacts as it goes, and you can retrieve them once you have the run’s trace. Everyartifact.updated event describes one change to one artifact: artifact.kind is json, markdown, html, screenshot, or text, artifact.path is where the run put it, and artifact.snapshotId is the handle you exchange for its content at GET /agent/{jobId}/snapshots/{snapshotId}. The snapshot endpoint returns that content in a snapshot field as a string: for json artifacts that string is JSON-encoded and needs decoding, while markdown, html, and text artifacts are the content itself.
To pull the page content a run produced, fetch the trace, keep the artifact.updated events whose kind you want, then fetch each snapshot:
- Artifacts are the run’s output, not a page-by-page archive. What a run writes to an artifact depends on how it works through your prompt, so treat the artifact set as what that particular run produced rather than a guaranteed record of every page it opened.
- Tool results carry the rest. Each
tool_call.finishedevent includes aresultfield holding what that tool returned, which is where content that never became an artifact shows up.
Share agent runs
You can share agent runs directly from the Agent playground. Shared links are public — anyone with the link can view the run output and activity — and you can revoke access at any time to disable the link. Shared pages are not indexed by search engines.Model Selection
Firecrawl Agent runs on Spark 2 — cheaper and faster than the earlier Spark 1 models, at comparable accuracy. It is the default: every run executes onspark-2, whether or not you set the model parameter.
Spark 1 models are deprecated. The Spark 1 model names remain accepted for backwards compatibility, but requests that use them route to
spark-2.Spark 2
spark-2 handles the full range of tasks that previously called for a Mini-versus-Pro decision, so there is no accuracy-versus-cost trade-off to make.
Highlights:
- Lowest cost per run
- Fastest run time
- Accuracy comparable to the former Spark 1 flagship
- The only model with a reasoning budget: pass
effort(low,medium, orhigh) to control how hard it thinks
Specifying a Model
Themodel parameter is optional — every request runs spark-2:
Parameters
Agent vs Extract: What’s Improved
Example Use Cases
- Research: “Find the top 5 AI startups and their funding amounts”
- Competitive Analysis: “Compare pricing plans between Slack and Microsoft Teams”
- Data Gathering: “Extract contact information from company websites”
- Content Summarization: “Summarize the latest blog posts about web scraping”
CSV Upload in Agent Playground
The Agent Playground supports CSV upload for batch processing. Your CSV can contain one or more columns of input data. For example, a single column of company names, or multiple columns such as company name, product, and website URL. Each row represents one item for the agent to process. Upload your CSV, then add output columns using the ”+” button in the grid header. Each column has its own prompt — click a column header to describe what the agent should find for that field (e.g., “CEO or founder name”, “Total funding raised”). Hit Run, and the agent processes each row in parallel, filling in the results.Troubleshooting with Ask
If your agent jobs fail or return unexpected results, use the Ask API for agentic debugging. Describe the issue and get back a verified answer with fix parameters you can apply directly:API Reference
Check out the Agent API Reference for more details. Have feedback or need help? Email help@firecrawl.com.Pricing
Firecrawl Agent uses dynamic billing that scales with the complexity of your data extraction request. You pay based on the actual work Agent performs, ensuring fair pricing whether you’re extracting simple data points or complex structured information from multiple sources.How Agent pricing works
Agent pricing is dynamic and credit-based during Research Preview:- Simple extractions (like contact info from a single page) typically use fewer credits and cost less
- Complex research tasks (like competitive analysis across multiple domains) use more credits but reflect the total effort involved
- Transparent usage shows you exactly how many credits each request consumed
- Credit conversion automatically converts agent credit usage to credits for easy billing
Credit usage varies based on the complexity of your prompt, the amount of data processed, and the structure of the output requested. As a rough guide, most agent runs consume a few hundred credits, though simpler single-page tasks may use less and complex multi-domain research may use more.
Parallel Agents Pricing
If you are running multiple agents in parallel with Spark-1 Fast, pricing is a lot more predictable at 10 credits per cell.Getting started
All users receive 5 free daily runs, which can be used from either the playground or the API, to explore Agent’s capabilities without any cost. Additional usage is billed based on credit consumption and converted to credits.Managing costs
Agent can be expensive, but there are some ways to decrease the cost:- Start with free runs: Use your 5 daily free requests to understand pricing
- Set a
maxCreditsparameter: Limit your spending by setting a maximum number of credits you’re willing to spend. The dashboard caps this at 2,500 credits; to set a higher limit, use themaxCreditsparameter directly via the API (note: values above 2,500 are always billed as paid requests) - Optimize prompts: More specific prompts often use fewer credits
- Break large tasks into smaller runs: A single agent run returns roughly 150-200 rows of structured data. For large extraction jobs, split by category, region, or URL batch (3-5 URLs per run) and merge the results. This also keeps each run well under the
maxCreditslimit. - Monitor usage: Track your consumption through the dashboard
- Set expectations: Complex multi-domain research will use more credits than simple single-page extractions
Pricing is subject to change as we move from Research Preview to general availability. Current users will receive advance notice of any pricing updates.
Are you an AI agent that needs a Firecrawl API key? See firecrawl.dev/agent-onboarding/SKILL.md for automated onboarding instructions.

