Skip to content

Firecrawl ​

Web crawling and data extraction powered by Firecrawl API. Scrape single URLs, map entire websites, search the web, and extract structured data.

This node signs in with a credential: Firecrawl API Token. See Connect a credential.

Actions ​

Steps this node can perform. Add one from Add a step, then pick the action.

Start Crawl Job ​

Start a recursive website crawl (async operation, returns job ID)

Settings

FieldTypeRequiredDescription
URLTextYesThe website URL to crawl
PromptTextThe prompt to crawl the website
Page LimitNumberMaximum number of pages to crawl
Default: 100

Output

Later steps use this data by picking this step in the $ picker. For example, id is $.<step ID>.output.id.

json
{
  "id": "string",
  "success": false,
  "url": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
idTextCrawl job identifier for status checking
successYes / No
urlTextURL to check crawl job status

Cancel Crawl Job ​

Cancel a running crawl job

Settings

FieldTypeRequiredDescription
Crawl Job IDTextYesThe crawl job ID to cancel

Output

Later steps use this data by picking this step in the $ picker. For example, status is $.<step ID>.output.status.

json
{
  "status": "cancelled",
  "success": false
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
statusTextCrawl status after cancelling, e.g. cancelled
successYes / NoTrue when Firecrawl cancelled the crawl

Check Crawl Status ​

Check the status of a running or completed crawl job

Settings

FieldTypeRequiredDescription
Job IDTextYesThe crawl job ID to check

Output

Later steps use this data by picking this step in the $ picker. For example, completed is $.<step ID>.output.completed.

json
{
  "completed": 0,
  "creditsUsed": 0,
  "data": [
    {
      "actions": {
        "javascriptReturns": [],
        "pdfs": [],
        "scrapes": [],
        "screenshots": []
      },
      "changeTracking": {
        "changeStatus": "string",
        "diff": "string",
        "json": {},
        "previousScrapeAt": "string",
        "visibility": "string"
      },
      "html": "string",
      "links": [
        "string"
      ],
      "markdown": "string",
      "metadata": {
        "description": "string",
        "error": "string",
        "keywords": "string",
        "language": "string",
        "ogLocaleAlternate": [],
        "sourceURL": "string",
        "statusCode": 0,
        "title": "string"
      },
      "rawHtml": "string",
      "screenshot": "string",
      "summary": "string",
      "warning": "string"
    }
  ],
  "next": "string",
  "status": "string",
  "success": false,
  "total": 0
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
completedNumber
creditsUsedNumber
data[]ListArray of crawled pages with content
data[].actionsObjectActions performed during scraping
data[].actions.javascriptReturns[]ListJavaScript execution results
data[].actions.javascriptReturns[].typeText
data[].actions.javascriptReturns[].valueany
data[].actions.pdfs[]ListPDF files generated
data[].actions.scrapes[]ListNested scrape operations
data[].actions.scrapes[].htmlText
data[].actions.scrapes[].urlText
data[].actions.screenshots[]ListScreenshots captured
data[].changeTrackingObjectChange tracking information
data[].changeTracking.changeStatusTextChange status: new, updated, unchanged
data[].changeTracking.diffTextDiff from previous scrape
data[].changeTracking.jsonObjectAdditional change tracking data
data[].changeTracking.previousScrapeAtTextTimestamp of previous scrape
data[].changeTracking.visibilityTextPage visibility status
data[].htmlTextHTML content
data[].links[]ListLinks found on the page
data[].markdownTextContent in markdown format
data[].metadataObjectPage metadata including title, description, etc.
data[].metadata.descriptionTextPage description
data[].metadata.errorTextError message if any
data[].metadata.keywordsTextPage keywords
data[].metadata.languageTextPage language
data[].metadata.ogLocaleAlternate[]ListOpenGraph locale alternates
data[].metadata.sourceURLTextSource URL
data[].metadata.statusCodeNumberHTTP status code
data[].metadata.titleTextPage title
data[].rawHtmlTextRaw HTML content
data[].screenshotTextScreenshot URL or data
data[].summaryTextContent summary
data[].warningTextWarning message if any
nextTextNext URL to crawl
statusTextJob status: scraping, completed, failed
successYes / No
totalNumber

Extract Structured Data ​

Extract structured data from URLs using AI (async operation, returns job ID)

Settings

FieldTypeRequiredDescription
URLsListYesList of URLs to extract data from
Extraction PromptTextNatural language description of what data to extract
JSON SchemaObjectJSON schema defining the structure of data to extract

Output

Later steps use this data by picking this step in the $ picker. For example, id is $.<step ID>.output.id.

json
{
  "id": "string",
  "success": false,
  "url": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
idTextExtraction job identifier
successYes / No
urlText

Check Extract Status ​

Check the status of a running or completed extraction job

Settings

FieldTypeRequiredDescription
Job IDTextYesThe extraction job ID to check

Output

Later steps use this data by picking this step in the $ picker. For example, data is $.<step ID>.output.data.

json
{
  "data": {},
  "status": "string",
  "success": false
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
dataObjectStructured data extracted from the URLs
statusTextJob status: processing, completed, failed, cancelled
successYes / No

Map Website ​

Discover all URLs on a website quickly to identify pages to scrape

Settings

FieldTypeRequiredDescription
URLTextYesThe website URL to map
Search KeywordTextOptional keyword to filter URLs (e.g., 'blog', 'product')
LimitNumberMaximum number of URLs to return
Default: 5000
Sitemap ModeChoiceHow to handle sitemap: include (use sitemap), skip (ignore sitemap), only (use only sitemap)
Options: Include Sitemap, Skip Sitemap, Only Sitemap
Enable CacheYes / NoCache the result for this URL to avoid redundant crawl/scrape requests
Default: false
Cache DurationChoiceYesHow long to cache the result before performing a fresh crawl
Options: 1 Hour, 6 Hours, 1 Day

Output

Later steps use this data by picking this step in the $ picker. For example, links[0].url is $.<step ID>.output.links[0].url.

json
{
  "links": [
    {
      "url": "string"
    }
  ],
  "success": false
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
links[]ListArray of discovered URLs
links[].urlTextDiscovered URL
successYes / NoWhether the operation was successful

Scrape URL ​

Extract content from a single URL in multiple formats (markdown, HTML, screenshots, etc.)

Settings

FieldTypeRequiredDescription
URLTextYesThe URL to scrape
Output FormatsMultiple choiceFormats to return (default: markdown)
Options: Markdown, HTML, Raw HTML, Content, Links, Screenshot, Full Page Screenshot
Enable CacheYes / NoCache the result for this URL to avoid redundant crawl/scrape requests
Default: false
Cache DurationChoiceYesHow long to cache the result before performing a fresh crawl
Options: 1 Hour, 6 Hours, 1 Day

Output

Later steps use this data by picking this step in the $ picker. For example, actions.javascriptReturns[0].type is $.<step ID>.output.actions.javascriptReturns[0].type.

json
{
  "actions": {
    "javascriptReturns": [
      {
        "type": "string",
        "value": "string"
      }
    ],
    "pdfs": [
      "string"
    ],
    "scrapes": [
      {
        "html": "string",
        "url": "string"
      }
    ],
    "screenshots": [
      "string"
    ]
  },
  "changeTracking": {
    "changeStatus": "string",
    "diff": "string",
    "json": {},
    "previousScrapeAt": "string",
    "visibility": "string"
  },
  "html": "string",
  "links": [
    "string"
  ],
  "markdown": "string",
  "metadata": {
    "description": "string",
    "error": "string",
    "keywords": "string",
    "language": "string",
    "ogLocaleAlternate": [
      "string"
    ],
    "sourceURL": "string",
    "statusCode": 0,
    "title": "string"
  },
  "rawHtml": "string",
  "screenshot": "string",
  "summary": "string",
  "warning": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
actionsObjectActions performed during scraping
actions.javascriptReturns[]ListJavaScript execution results
actions.javascriptReturns[].typeText
actions.javascriptReturns[].valueany
actions.pdfs[]ListPDF files generated
actions.scrapes[]ListNested scrape operations
actions.scrapes[].htmlText
actions.scrapes[].urlText
actions.screenshots[]ListScreenshots captured
changeTrackingObjectChange tracking information
changeTracking.changeStatusTextChange status: new, updated, unchanged
changeTracking.diffTextDiff from previous scrape
changeTracking.jsonObjectAdditional change tracking data
changeTracking.previousScrapeAtTextTimestamp of previous scrape
changeTracking.visibilityTextPage visibility status
htmlTextHTML content
links[]ListLinks found on the page
markdownTextContent in markdown format
metadataObjectPage metadata including title, description, etc.
metadata.descriptionTextPage description
metadata.errorTextError message if any
metadata.keywordsTextPage keywords
metadata.languageTextPage language
metadata.ogLocaleAlternate[]ListOpenGraph locale alternates
metadata.sourceURLTextSource URL
metadata.statusCodeNumberHTTP status code
metadata.titleTextPage title
rawHtmlTextRaw HTML content
screenshotTextScreenshot URL or data
summaryTextContent summary
warningTextWarning message if any

Perform a web search and retrieve scraped content from results

Settings

FieldTypeRequiredDescription
Search QueryTextYesThe search term or query
Search SourcesMultiple choiceTypes of search results to include
Options: Web, News, Images
Result LimitNumberMaximum number of search results to return (default: 5, max: 100)
Default: 5
LocationObjectGeographic location for search results

Output

Later steps use this data by picking this step in the $ picker. For example, data.images[0].imageHeight is $.<step ID>.output.data.images[0].imageHeight.

json
{
  "data": {
    "images": [
      {
        "imageHeight": 0,
        "imageUrl": "string",
        "imageWidth": 0,
        "position": 0,
        "title": "string",
        "url": "string"
      }
    ],
    "news": [
      {
        "date": "string",
        "html": "string",
        "imageUrl": "string",
        "links": [],
        "markdown": "string",
        "metadata": {},
        "position": 0,
        "rawHtml": "string",
        "screenshot": "string",
        "snippet": "string",
        "title": "string",
        "url": "string"
      }
    ],
    "web": [
      {
        "description": "string",
        "markdown": "string",
        "position": 0,
        "title": "string",
        "url": "string"
      }
    ]
  },
  "success": false
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
dataObjectSearch results organized by source
data.images[]ListImage search results
data.images[].imageHeightNumberImage Height
data.images[].imageUrlTextResult Image URL
data.images[].imageWidthNumberImage Width
data.images[].positionNumberResult ranking position
data.images[].titleTextResult URL
data.images[].urlTextResult URL
data.news[]ListNews search results
data.news[].dateTextPublication date
data.news[].htmlTextHTML content
data.news[].imageUrlTextArticle image URL
data.news[].links[]ListLinks found in the article
data.news[].markdownTextContent in markdown format
data.news[].metadataObjectArticle metadata
data.news[].metadata.descriptionTextPage description
data.news[].metadata.errorTextError message if any
data.news[].metadata.sourceURLTextSource URL
data.news[].metadata.statusCodeNumberHTTP status code
data.news[].metadata.titleTextPage title
data.news[].positionNumberResult ranking position
data.news[].rawHtmlTextRaw HTML content
data.news[].screenshotTextScreenshot URL
data.news[].snippetTextBrief snippet of the article
data.news[].titleTextNews article title
data.news[].urlTextArticle URL
data.web[]ListWeb search results
data.web[].descriptionTextPage description/snippet
data.web[].markdownTextContent in markdown format
data.web[].positionNumberResult ranking position
data.web[].titleTextPage title
data.web[].urlTextResult URL
successYes / NoWhether the search was successful