
The new Deep Research API by Firecrawl enables AI-powered web research on any topic. Just provide a query, and Firecrawl will explore the web, gather information, and synthesize key insights. It outputs a final analysis or whatever structed output you choose.
What Is Deep Research?
Deep Research is a method of automatically performing multi-step, intelligent exploration across the web to uncover non-trivial insights about a topic. Unlike a simple search, it:
- Breaks down complex queries into subtopics
- Iteratively explores reliable content
- Synthesizes findings into a cohesive report
- Attributes every insight to a source
Think of it as giving your app or workflow a dedicated research analyst—on demand.
Why an API?
Research isn’t just for humans anymore. By offering Deep Research as an API, you can:
- Automate research inside your own apps and workflows
- Scale insight generation for any number of topics
- Build smarter features: briefings, analysis bots, knowledge assistants, and more
- Control cost and speed with tunable depth, time, and URL limits
Firecrawl gives you the infrastructure to run intelligent research—without needing to build an AI pipeline from scratch.
How it works
Deep Research performs:
- Query analysis to identify subtopics
- Iterative web exploration across multiple sources
- Content synthesis into digestible insights
- Source attribution for traceability
The result includes:
- Final Analysis: A synthesized summary of findings
- Sources: Curated list of relevant URLs
- Activities: Timeline of research steps
- Progress: Real-time tracking of depth & status
Example Usage
Python
from firecrawl import FirecrawlApp
firecrawl = FirecrawlApp(api_key="your_api_key")
params = {
"maxDepth": 5,
"timeLimit": 180,
"maxUrls": 15
}
def on_activity(activity):
print(f"[{activity['type']}] {activity['message']}")
results = firecrawl.deep_research(
query="What are the latest developments in quantum computing?",
params=params,
on_activity=on_activity
)
print(f"Final Analysis: {results['data']['finalAnalysis']}")
print(f"Sources: {len(results['data']['sources'])} references")
Sample response
{
"success": true,
"status": "completed",
"data": {
"finalAnalysis": "Recent developments in quantum computing show significant progress in several key areas...",
"activities": [
{
"type": "search",
"status": "completed",
"message": "Analyzing quantum computing breakthroughs in 2024",
"timestamp": "2024-03-15T10:30:00Z",
"depth": 1
}
],
"sources": [
{
"url": "https://example.com/quantum-computing-2024",
"title": "Latest Quantum Computing Breakthroughs",
"description": "Overview of recent advances in quantum computing technology"
}
]
},
"currentDepth": 5,
"maxDepth": 5
}
Structured Output
Instead of receiving a markdown final analysis, you can customize the output with a structured output by setting the formats
parameter to json
. Set the jsonOptions
parameter to specify the schema for the JSON output.
This allows you to get a response format that is more specific to your use case.
Customize even further
You can also specify a systemPrompt
and an analysisPrompt
to customize the agentic process and the final analysis, respectively.
Known Limitations (Alpha)
-
Research Scope Best suited for topics with publicly available information. May not access paywalled or private content.
-
Time Constraints Research jobs are limited to 10 minutes maximum to ensure reasonable response times.
-
Source Verification While sources are provided, manual verification of critical information is recommended.
-
Alpha State As an Alpha feature, the research methodology and output format may evolve based on feedback.
Documentation
For API endpoints and other sdks, you can view the full documentation here.

data from the web