Skip to main content
POST
/
batch
/
scrape
Scrape multiple URLs and optionally extract information using an LLM
curl --request POST \
  --url https://api.firecrawl.dev/v1/batch/scrape \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "urls": [
    "<string>"
  ],
  "webhook": "<string>",
  "formats": [
    "markdown"
  ],
  "onlyMainContent": true,
  "includeTags": [
    "<string>"
  ],
  "excludeTags": [
    "<string>"
  ],
  "headers": {},
  "waitFor": 0,
  "mobile": false,
  "skipTlsVerification": false,
  "timeout": 30000,
  "extract": {
    "schema": {},
    "systemPrompt": "<string>",
    "prompt": "<string>"
  },
  "actions": [
    {
      "type": "wait",
      "milliseconds": 2,
      "selector": "#my-element"
    }
  ],
  "location": {
    "country": "US",
    "languages": [
      "en-US"
    ]
  },
  "removeBase64Images": true
}
'
{
  "success": true,
  "id": "<string>",
  "url": "<string>"
}

Authorizations

Authorization
string
header
required

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

Body

application/json
urls
string<uri>[]

The URL to scrape

webhook

The URL to send the webhook to. This will trigger for batch scrape started (batch_scrape.started), every page scraped (batch_scrape.page) and when the batch scrape is completed (batch_scrape.completed or batch_scrape.failed). The response will be the same as the /scrape endpoint.

formats
enum<string>[]

Formats to include in the output.

Available options:
markdown,
html,
rawHtml,
links,
screenshot,
extract,
screenshot@fullPage
onlyMainContent
boolean
default:true

Only return the main content of the page excluding headers, navs, footers, etc.

includeTags
string[]

Tags to include in the output.

excludeTags
string[]

Tags to exclude from the output.

headers
object

Headers to send with the request. Can be used to send cookies, user-agent, etc.

waitFor
integer
default:0

Specify a delay in milliseconds before fetching the content, allowing the page sufficient time to load.

mobile
boolean
default:false

Set to true if you want to emulate scraping from a mobile device. Useful for testing responsive pages and taking mobile screenshots.

skipTlsVerification
boolean
default:false

Skip TLS certificate verification when making requests

timeout
integer
default:30000

Timeout in milliseconds for the request

extract
object

Extract object

actions
(Wait · object | Screenshot · object | Click · object | Write text · object | Press a key · object | Scroll · object | Scrape · object)[]

Actions to perform on the page before grabbing the content

location
object

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
boolean

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.

Response

Successful response

success
boolean
id
string
url
string<uri>