====== Firecrawl ====== **Firecrawl** is an API-first web scraping and crawling platform developed by [[https://mendable.ai|Mendable]] that converts any website into clean, LLM-ready markdown or structured data. Unlike traditional scrapers that return raw HTML, Firecrawl handles JavaScript rendering, pagination, anti-bot bypasses, and content cleaning automatically. With over 97,000 GitHub stars and backing from Y Combinator ($14.5M Series A), it has become essential infrastructure for RAG pipelines, AI agents, and data extraction workflows. ===== Architecture ===== Firecrawl operates as a cloud API service with multiple operational modes. Its core engine combines: * **Headless Chromium Rendering** — Full JavaScript execution for dynamic single-page applications * **Fire-Engine Technology** — Proprietary rendering pipeline delivering 33% faster speeds and 40% higher success rates than standard headless browsers * **Anti-Bot Handling** — Built-in stealth techniques including proxy rotation, fingerprint randomization, and CAPTCHA handling * **Content Cleaning** — Automatic removal of navigation, ads, and boilerplate, preserving only meaningful content * **Output Formatting** — Converts cleaned content to markdown, HTML, JSON, or structured data with metadata ===== Operational Modes ===== Firecrawl provides four primary modes for different use cases: == Scrape Mode == Extract content from a single URL. Returns clean markdown with metadata (title, description, Open Graph tags, robots directives). == Crawl Mode == Recursively discover and process all accessible subpages from a starting URL. Supports ''limit'', ''excludePaths'', ''includePaths'', and depth controls. No sitemap required. == Map Mode == Generate a complete site map of all discoverable URLs without extracting content. Useful for planning targeted scrapes. == Extract Mode == LLM-powered structured data extraction using schemas or natural language prompts. Define a Zod/Pydantic schema and Firecrawl returns typed JSON matching your specification. ===== LLM-Ready Output ===== Firecrawl's primary value proposition is producing data optimized for LLM consumption: * Clean markdown preserves document structure (headings, lists, tables, code blocks) * Metadata includes page title, description, language, and source URL * Noise removal strips navigation, footers, ads, and cookie banners * Batch processing handles thousands of URLs concurrently * Direct integration with RAG frameworks like LangChain and LlamaIndex ===== Code Example ===== from firecrawl import FirecrawlApp # Initialize with API key app = FirecrawlApp(api_key="fc-YOUR_API_KEY") # Scrape a single page to markdown result = app.scrape_url( "https://docs.python.org/3/tutorial/", params={"formats": ["markdown"]} ) print(result["markdown"][:500]) # Crawl an entire site crawl = app.crawl_url( "https://docs.python.org/3/tutorial/", params={ "limit": 50, "scrapeOptions": {"formats": ["markdown"]}, "excludePaths": ["/genindex*", "/search*"] } ) for page in crawl["data"]: print(f"URL: {page['metadata']['sourceURL']}") print(f"Title: {page['metadata']['title']}") print(f"Content length: {len(page['markdown'])} chars") print("---") # Extract structured data with a prompt extracted = app.scrape_url( "https://example.com/pricing", params={ "formats": ["extract"], "extract": { "prompt": "Extract all pricing tiers with name, price, and features list" } } ) print(extracted["extract"]) ===== Integration Ecosystem ===== Firecrawl integrates with major AI frameworks and tools: * **LangChain** — ''FireCrawlLoader'' document loader for scrape and crawl modes * **LlamaIndex** — Direct document ingestion for RAG pipelines * **MCP (Model Context Protocol)** — ''firecrawl-mcp-server'' for Claude, Cursor, and other MCP clients * **CLI** — ''npx firecrawl-cli'' for command-line usage and agent configuration ===== Architecture Diagram ===== graph TD A["Your App / Agent"] --> B["Firecrawl API"] B --> C["Scrape Engine"] B --> D["Crawl Engine"] C --> E["Fire-Engine Renderer (Headless Chromium + JS)"] D --> E E --> F["Content Cleaning & Markdown Conversion"] F --> G["LLM-Ready Output (Markdown / JSON)"] ===== Pricing ===== ^ Tier ^ Pages/Month ^ Price ^ Key Features ^ | Free | 500 | $0 | Scrape, crawl, basic extract | | Starter | 3,000 | $16/mo | Priority support | | Standard | 100,000 | $83/mo | Batch scrape, webhooks | | Scale | 500,000 | $333/mo | Dedicated infrastructure | ===== References ===== * [[https://github.com/mendableai/firecrawl|Firecrawl GitHub Repository]] * [[https://docs.firecrawl.dev/|Firecrawl Documentation]] * [[https://www.firecrawl.dev/|Firecrawl Website]] * [[https://docs.langchain.com/oss/python/integrations/document_loaders/web_loaders/firecrawl|LangChain FireCrawl Loader]] ===== See Also ===== * [[browser_use|Browser-Use]] — AI agent browser automation * [[composio|Composio]] — Tool integration platform for agents * [[e2b|E2B]] — Sandboxed code execution for agents