Table of Contents

Firecrawl

Firecrawl is an API-first web scraping and crawling platform developed by 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:

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:

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:

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

See Also