POST
/
deep-research
curl --request POST \
  --url https://api.firecrawl.dev/v1/deep-research \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "query": "<string>",
  "maxDepth": 7,
  "timeLimit": 300,
  "maxUrls": 20,
  "analysisPrompt": "<string>",
  "systemPrompt": "<string>",
  "formats": [
    [
      "markdown"
    ]
  ],
  "jsonOptions": {
    "schema": {},
    "systemPrompt": "<string>",
    "prompt": "<string>"
  }
}'
{
  "success": true,
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}

The Deep Research endpoint enables AI-powered deep research and analysis on any topic. Simply provide a research query, and Firecrawl will autonomously explore the web, gather relevant information, and synthesize findings into comprehensive insights.

Looking for the status endpoint? Check out the Deep Research Status endpoint.

Response Structure

The response includes:

  • activities: List of research activities with:

    • type: Activity type (‘search’, ‘extract’, ‘analyze’, ‘reasoning’, ‘synthesis’, ‘thought’)
    • status: Status (‘processing’, ‘complete’, ‘error’)
    • message: Description of activity/finding
    • timestamp: ISO timestamp
    • depth: Research depth level
  • sources: Referenced URLs with:

    • title: Source title
    • description: Source description
    • url: Source URL
    • icon: Source favicon
  • finalAnalysis: Comprehensive analysis (when completed)

  • status: Overall status (‘processing’, ‘completed’, ‘failed’)

  • currentDepth: Current research depth

  • maxDepth: Maximum research depth

  • totalUrls: Number of URLs analyzed

  • expiresAt: ISO timestamp when results expire

Limitations

  1. Best suited for topics with publicly available information
  2. Research jobs limited to 10 minutes maximum
  3. Manual verification recommended for critical information
  4. Alpha feature - methodology and output may evolve

Billing

Billing is based on number of URLs analyzed:

  • Each URL = 1 credit
  • Control usage with maxUrls parameter

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
query
string
required

The query to research

maxDepth
integer
default:7

Maximum depth of research iterations

Required range: 1 <= x <= 12
timeLimit
integer
default:300

Time limit in seconds

Required range: 30 <= x <= 600
maxUrls
integer
default:20

Maximum number of URLs to analyze

Required range: 1 <= x <= 1000
analysisPrompt
string

The prompt to use for the final analysis. Useful to format the final analysis markdown in a specific way.

systemPrompt
string

The system prompt to use for the research agent. Useful to steer the research agent to a specific direction.

formats
enum<string>[]
Available options:
markdown,
json
jsonOptions
object

Options for JSON output

Response

200
application/json
Research job started successfully
success
boolean
Example:

true

id
string

ID of the research job