POST
/
scrape
curl --request POST \
  --url https://api.firecrawl.dev/v1/scrape \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "url": "<string>",
  "formats": [
    "markdown"
  ],
  "onlyMainContent": true,
  "includeTags": [
    "<string>"
  ],
  "excludeTags": [
    "<string>"
  ],
  "headers": {},
  "waitFor": 0,
  "mobile": false,
  "skipTlsVerification": false,
  "timeout": 30000,
  "jsonOptions": {
    "schema": {},
    "systemPrompt": "<string>",
    "prompt": "<string>"
  },
  "actions": [
    {
      "type": "wait",
      "milliseconds": 2,
      "selector": "#my-element"
    }
  ],
  "location": {
    "country": "US",
    "languages": [
      "en-US"
    ]
  },
  "removeBase64Images": true,
  "blockAds": true,
  "proxy": "basic"
}'
{
  "success": true,
  "data": {
    "markdown": "<string>",
    "html": "<string>",
    "rawHtml": "<string>",
    "screenshot": "<string>",
    "links": [
      "<string>"
    ],
    "actions": {
      "screenshots": [
        "<string>"
      ]
    },
    "metadata": {
      "title": "<string>",
      "description": "<string>",
      "language": "<string>",
      "sourceURL": "<string>",
      "<any other metadata> ": "<string>",
      "statusCode": 123,
      "error": "<string>"
    },
    "llm_extraction": {},
    "warning": "<string>"
  }
}

Authorizations

Authorization
string
header
required

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

Body

application/json
url
string
required

The URL to scrape

formats
enum<string>[]

Formats to include in the output.

Available options:
markdown,
html,
rawHtml,
links,
screenshot,
screenshot@fullPage,
json
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

jsonOptions
object

Extract object

actions
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.

blockAds
boolean
default:
true

Enables ad-blocking and cookie popup blocking.

proxy
enum<string>

Specifies the type of proxy to use.

  • basic: Proxies for scraping sites with none to basic anti-bot solutions. Fast and usually works.
  • stealth: Stealth proxies for scraping sites with advanced anti-bot solutions. Slower, but more reliable on certain sites.

If you do not specify a proxy, Firecrawl will automatically attempt to determine which one you need based on the target site.

Available options:
basic,
stealth

Response

200
application/json
Successful response
success
boolean
data
object