apicheats.dev firecrawl/llms.txt Raw .md
POST

/deep-research

Firecrawl API

Start a deep research operation on a query

Base URL
https://api.firecrawl.dev/v1
Auth
Authorization: Bearer <FIRECRAWL_API_KEY>
Last verified
2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 219 tokens · Vary: Accept

Critical gotchas

The formats field controls the output shape and defaults to ["markdown"]. Omitting it does not return HTML — request ["markdown","html"] explicitly.

/crawl is asynchronous: it returns a job id, and results are collected by polling /crawl/{id} until status is completed.

cURL

curl -X POST 'https://api.firecrawl.dev/v1/deep-research' \  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \  -H 'Content-Type: application/json' \  -d '{  "query": "string",  "maxDepth": 7,  "timeLimit": 300,  "maxUrls": 20,  "analysisPrompt": "string",  "systemPrompt": "string",  "formats": [    [      "markdown"    ]  ],  "jsonOptions": {    "schema": {},    "systemPrompt": "string",    "prompt": "string"  }}'
Get a free Firecrawl API key → sponsored

Parameters

Name In Type Required Description
query body string Yes The query to research
maxDepth body integer No Maximum depth of research iterations
timeLimit body integer No Time limit in seconds
maxUrls body integer No Maximum number of URLs to analyze
analysisPrompt body string No The prompt to use for the final analysis. Useful to format the final analysis markdown in a specific way.
systemPrompt body string No The system prompt to use for the research agent. Useful to steer the research agent to a specific direction.
formats body string[] No Request body field formats.
jsonOptions body object No Options for JSON output

Response 200 OK

{
  "success": true,
  "id": "00000000-0000-4000-8000-000000000000"
}