Skip to main content

Deep Research

1 min read
post/deep-research
Request example
Response
post/deep-research

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.

Warning

This is the legacy v1 Deep Research API. For new research agents, use the current Deep Research use case, which is built from Search and Scrape.

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

Authorization

Authorizationstringheaderrequired#
Bearer authentication header of the form Bearer <token>, where <token> is your API key.

Body

application/json
querystringrequired#
The query to research
maxDepthinteger#
Maximum depth of research iterations

Default: 7

Range: 1–12

timeLimitinteger#
Time limit in seconds

Default: 300

Range: 30–600

maxUrlsinteger#
Maximum number of URLs to analyze

Default: 20

Range: 1–1000

analysisPromptstring#
The prompt to use for the final analysis. Useful to format the final analysis markdown in a specific way.
systemPromptstring#
The system prompt to use for the research agent. Useful to steer the research agent to a specific direction.
formatsenum<string>[]#

Default: ["markdown"]

jsonOptionsobject#
Options for JSON output
Show child attributes
schemaobject#
The schema to use for the JSON output. Must conform to JSON Schema.
systemPromptstring#
The system prompt to use for the JSON output
promptstring#
The prompt to use for the JSON output

Responses

application/json
Research job started successfully
successboolean#
idstring#
ID of the research job