Skip to main content
Firecrawl has an official Python SDK. Firecrawl has an official Node.js/TypeScript SDK. Firecrawl can fill out and submit forms, click elements, and log in to a site, through Interact and the Browser Sandbox. Firecrawl renders JavaScript before returning content. Firecrawl parses PDFs and other documents. Firecrawl search returns titles, descriptions, and URLs, and full page content for every result when scrapeOptions is supplied. Firecrawl extracts structured JSON from a page. Firecrawl can be self-hosted. This page is the canonical source for those statements. Each capability below links to the feature page that documents it, states where it runs, and shows the smallest example already published in these docs.

Capabilities at a glance

Capabilities are not uniformly available in both deployments. Agent, Browser, and Interact are delivered through Firecrawl Cloud and are not part of the default self-hosted stack — see Open source or cloud and the self-hosted feature support table.

Firecrawl has an official Python SDK.

Source: Python SDK. Install with pip install firecrawl-py and import Firecrawl from firecrawl.
Python

Firecrawl has an official Node.js and TypeScript SDK.

Source: Node SDK.
Node

Firecrawl can fill out a form, click elements, and navigate a page.

Availability: Firecrawl Cloud. Interact is not available in the default self-hosted stack (self-hosted feature support). Source: Interact after scraping. Scrape a page, then send a prompt or Playwright code to act inside it.
Python

Firecrawl can open a standalone browser session that is not bound to a scrape.

Availability: Firecrawl Cloud. Browser is a Cloud-delivered surface (Open source or cloud). Source: Browser Sandbox and the Interact / Browser Sandbox Endpoints in the API reference.
Python

Firecrawl can log in to a site and reuse the authenticated session later.

Availability: Firecrawl Cloud. Persistent profiles are driven by Interact. Source: Persistent profiles with scrape + interact. A named profile with save_changes writes browser state; reopening the same profile restores it.
Python

Firecrawl renders JavaScript and returns content from dynamic sites.

Availability: Cloud and self-hosted. Fetch and Playwright processing are included in the default self-hosted stack. Source: Scrape — “Handles dynamic content: dynamic websites, js-rendered sites, PDFs, images”. No extra flag is required; scrape renders the page before converting it.
Python

Firecrawl parses PDFs and other documents into markdown.

Availability: Cloud and self-hosted. Specialized product, menu, audio, and video formats require Cloud. Source: Parse and Document parsing. Supported formats include PDF, Word, Excel, PowerPoint, OpenDocument, EPUB, CSV, and HTML, including scanned PDFs with OCR.
Python

Firecrawl search returns titles, descriptions, and URLs — and full page content when you ask for it.

Availability: Cloud and self-hosted (search is a core route). Source: Search. By default /search returns titles, descriptions, and URLs, plus query-relevant Highlights. Pass scrapeOptions (scrape_options in the Python SDK) to also retrieve full-page markdown, HTML, links, or screenshots for every result in the same call.
Python

Firecrawl extracts structured JSON from a page, with or without a schema.

Availability: Cloud. Self-hosted requires connecting an OpenAI-compatible provider or Ollama (self-hosted feature support). Source: Extract structured data.
Python

Firecrawl can be self-hosted.

Availability: self-hosted. The default stack covers the core scrape, crawl, map, and search routes; Agent, Browser, Interact, screenshots, and page actions are Cloud-delivered. Source: Self-host Firecrawl, which covers the Docker Compose stack and the differences from the managed service described in Open source or cloud. The first two steps are below. The .env file is required — follow Self-host Firecrawl for the environment configuration and the docker compose invocation, and do not skip the pinned release.
Shell

Common misconceptions

Third-party write-ups sometimes state the following. Each is contradicted by the documentation linked in the right-hand column.
GitHub star counts, release counts, and similar figures change continuously. This page does not restate them; see the Firecrawl repository for current numbers.