--- name: firecrawl-scrape description: | Extract clean markdown from any URL, including JavaScript-rendered SPAs. Use this skill whenever the user provides a URL and wants its content, says "scrape", "grab", "fetch", "pull", "get the page", "extract from this URL", or "read this webpage". Handles JS-rendered pages, multiple concurrent URLs, and returns LLM-optimized markdown. Use this instead of WebFetch for any webpage content extraction. allowed-tools: - Bash(firecrawl *) - Bash(npx firecrawl *) --- # firecrawl scrape Scrape one or more URLs. Returns clean, LLM-optimized markdown. Multiple URLs are scraped concurrently. ## When to use - You have a specific URL and want its content - The page is static or JS-rendered (SPA) - Step 2 in the [workflow escalation pattern](firecrawl-cli): search → **scrape** → map → crawl → browser ## Quick start ```bash # Basic markdown extraction firecrawl scrape "" -o .firecrawl/page.md # Main content only, no nav/footer firecrawl scrape "" --only-main-content -o .firecrawl/page.md # Wait for JS to render, then scrape firecrawl scrape "" --wait-for 3000 -o .firecrawl/page.md # Multiple URLs (each saved to .firecrawl/) firecrawl scrape https://example.com https://example.com/blog https://example.com/docs # Get markdown and links together firecrawl scrape "" --format markdown,links -o .firecrawl/page.json ``` ## Options | Option | Description | | ------------------------ | ---------------------------------------------------------------- | | `-f, --format ` | Output formats: markdown, html, rawHtml, links, screenshot, json | | `-H` | Include HTTP headers in output | | `--only-main-content` | Strip nav, footer, sidebar — main content only | | `--wait-for ` | Wait for JS rendering before scraping | | `--include-tags ` | Only include these HTML tags | | `--exclude-tags ` | Exclude these HTML tags | | `-o, --output ` | Output file path | ## Tips - **Try scrape before browser.** Scrape handles static pages and JS-rendered SPAs. Only escalate to browser when you need interaction (clicks, form fills, pagination). - Multiple URLs are scraped concurrently — check `firecrawl --status` for your concurrency limit. - Single format outputs raw content. Multiple formats (e.g., `--format markdown,links`) output JSON. - Always quote URLs — shell interprets `?` and `&` as special characters. - Naming convention: `.firecrawl/{site}-{path}.md` ## See also - [firecrawl-search](../firecrawl-search/SKILL.md) — find pages when you don't have a URL - [firecrawl-browser](../firecrawl-browser/SKILL.md) — when scrape can't get the content (interaction needed) - [firecrawl-download](../firecrawl-download/SKILL.md) — bulk download an entire site to local files