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 withpip 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 withsave_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.

