> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 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](/use-cases/deep-research), which is built from Search and Scrape.
</Warning>

Looking for the status endpoint? Check out the [Deep Research Status](/api-reference/v1-endpoint/deep-research-get) 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


## OpenAPI

````yaml api-reference/v1-openapi.json POST /deep-research
openapi: 3.0.0
info:
  title: Firecrawl API
  version: v1
  description: >-
    API for interacting with Firecrawl services to perform web scraping and
    crawling tasks.
  contact:
    name: Firecrawl Support
    url: https://firecrawl.dev/support
    email: support@firecrawl.dev
servers:
  - url: https://api.firecrawl.dev/v1
security:
  - bearerAuth: []
paths:
  /deep-research:
    post:
      tags:
        - Research
      summary: Start a deep research operation on a query
      operationId: startDeepResearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: The query to research
                maxDepth:
                  type: integer
                  minimum: 1
                  maximum: 12
                  default: 7
                  description: Maximum depth of research iterations
                timeLimit:
                  type: integer
                  minimum: 30
                  maximum: 600
                  default: 300
                  description: Time limit in seconds
                maxUrls:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 20
                  description: Maximum number of URLs to analyze
                analysisPrompt:
                  type: string
                  description: >-
                    The prompt to use for the final analysis. Useful to format
                    the final analysis markdown in a specific way.
                systemPrompt:
                  type: string
                  description: >-
                    The system prompt to use for the research agent. Useful to
                    steer the research agent to a specific direction.
                formats:
                  type: array
                  default:
                    - markdown
                  items:
                    type: string
                    enum:
                      - markdown
                      - json
                jsonOptions:
                  type: object
                  description: Options for JSON output
                  properties:
                    schema:
                      type: object
                      description: >-
                        The schema to use for the JSON output. Must conform to
                        [JSON Schema](https://json-schema.org/).
                    systemPrompt:
                      type: string
                      description: The system prompt to use for the JSON output
                    prompt:
                      type: string
                      description: The prompt to use for the JSON output
              required:
                - query
      responses:
        '200':
          description: Research job started successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  id:
                    type: string
                    format: uuid
                    description: ID of the research job
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Invalid parameters provided
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````