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

/batch/scrape

Firecrawl API

Scrape multiple URLs and optionally extract information using an LLM

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
→ 224 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/batch/scrape' \  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \  -H 'Content-Type: application/json' \  -d '{  "urls": [    "https://example.com"  ],  "webhook": {    "url": "string",    "headers": {},    "metadata": {},    "events": [      "completed"    ]  },  "ignoreInvalidURLs": false,  "formats": [    "markdown"  ],  "onlyMainContent": true,  "includeTags": [    "string"  ],  "excludeTags": [    "string"  ],  "maxAge": 0,  "headers": {},  "waitFor": 0,  "mobile": false,  "skipTlsVerification": false,  "timeout": 30000,  "parsePDF": true,  "jsonOptions": {    "schema": {},    "systemPrompt": "string",    "prompt": "string"  },  "actions": [    {      "type": "wait",      "milliseconds": 0,      "selector": "#my-element"    }  ],  "location": {    "country": "US",    "languages": [      "en-US"    ]  },  "removeBase64Images": true,  "blockAds": true,  "proxy": "basic",  "changeTrackingOptions": {    "modes": [      "git-diff"    ],    "schema": {},    "prompt": "string",    "tag": null  },  "storeInCache": true}'
Get a free Firecrawl API key → sponsored

Parameters

Name In Type Required Description
urls body string[] Yes Request body field urls.
webhook body object No A webhook specification object.
ignoreInvalidURLs body boolean No If invalid URLs are specified in the urls array, they will be ignored. Instead of them failing the entire request, a batch scrape using the remaining valid URLs will be created, and the invalid URLs will be returned in the invalidURLs field of the response.
formats body string[] No Formats to include in the output. `rawBase64` must be requested by itself.
onlyMainContent body boolean No Only return the main content of the page excluding headers, navs, footers, etc.
includeTags body string[] No Tags to include in the output.
excludeTags body string[] No Tags to exclude from the output.
maxAge body integer No Returns a cached version of the page if it is younger than this age in milliseconds. If a cached version of the page is older than this value, the page will be scraped. If you do not need extremely fresh data, enabling this can speed up your scrapes by 500%. Defaults to 0, which disables caching.
headers body object No Headers to send with the request. Can be used to send cookies, user-agent, etc.
waitFor body integer No Specify a delay in milliseconds before fetching the content, allowing the page sufficient time to load.
mobile body boolean No Set to true if you want to emulate scraping from a mobile device. Useful for testing responsive pages and taking mobile screenshots.
skipTlsVerification body boolean No Skip TLS certificate verification when making requests
timeout body integer No Timeout in milliseconds for the request
parsePDF body boolean No Controls how PDF files are processed during scraping. When true, the PDF content is extracted and converted to markdown format, with billing based on the number of pages (1 credit per page). When false, the PDF file is returned in base64 encoding with a flat rate of 1 credit total.
jsonOptions body object No JSON options object
actions body object[] No Actions to perform on the page before grabbing the content
location body object No Location settings for the request. When specified, this will use an appropriate proxy if available and emulate the corresponding language and timezone settings. Defaults to 'US' if not specified.
removeBase64Images body boolean No Removes all base 64 images from the output, which may be overwhelmingly long. The image's alt text remains in the output, but the URL is replaced with a placeholder.
blockAds body boolean No Enables ad-blocking and cookie popup blocking.
proxy body string No Specifies the type of proxy to use. - **basic**: Proxies for scraping sites with none to basic anti-bot solutions. Fast and usually works. - **enhanced**: Enhanced proxies for scraping sites with advanced anti-bot solutions. Slower, but more reliable on certain sites. Billed at the same credit cost as basic. - **auto**: Firecrawl will automatically retry scraping with enhanced proxies if the basic proxy fails. Enhanced proxies carry no credit surcharge, so either way only the regular cost is billed. If you do not specify a proxy, Firecrawl will default to basic.
changeTrackingOptions body object No Options for change tracking (Beta). Only applicable when 'changeTracking' is included in formats. The 'markdown' format must also be specified when using change tracking.
storeInCache body boolean No If true, the page will be stored in the Firecrawl index and cache. Setting this to false is useful if your scraping activity may have data protection concerns. Using some parameters associated with sensitive scraping (actions, headers) will force this parameter to be false.

Response 200 OK

{
  "success": true,
  "id": "string",
  "url": "https://example.com",
  "invalidURLs": [
    "string"
  ]
}