firecrawl-crawl · diff
git:20260820.980163d to git:20260820.5b171dc
21 added, 4 removed. Audit A to A.
---
name: firecrawl-crawl
description: |
Bulk-extract many pages from one site or section. Use for "crawl", "everything under /docs", or content spanning linked pages.
allowed-tools:
- Bash(firecrawl *)
- Bash(npx firecrawl-cli *)
---
# firecrawl crawl
Bulk extract content from a website. Crawls pages following links up to a depth/limit.
**Prerequisite:** `crawl` requires authentication (no keyless free tier); without credentials the CLI prompts an interactive login.
+ ## When to use
+
+ - You need content from many pages on a site (e.g., all `/docs/`)
+ - You want to extract an entire site section
+ - Step 4 in the [workflow escalation pattern](../firecrawl/SKILL.md): search → scrape → map + scrape → **crawl** → monitor → interact
+
## Quick start
```bash
# Crawl a docs section
firecrawl crawl "<url>" --include-paths /docs --limit 50 --wait -o .firecrawl/crawl.json
# Full crawl with depth limit
firecrawl crawl "<url>" --max-depth 3 --wait --progress -o .firecrawl/crawl.json
# Check status of a running crawl
firecrawl crawl <job-id>
```
- Run `firecrawl crawl --help` for the full option list.
+ ## Options
- **Done when:** the crawl reaches a terminal status and the saved output under `.firecrawl/` contains the expected pages.
+ | Option | Description |
+ | ------------------------- | ------------------------------------------- |
+ | `--wait` | Wait for crawl to complete before returning |
+ | `--progress` | Show progress while waiting |
+ | `--limit <n>` | Max pages to crawl |
+ | `--max-depth <n>` | Max link depth to follow |
+ | `--include-paths <paths>` | Only crawl URLs matching these paths |
+ | `--exclude-paths <paths>` | Skip URLs matching these paths |
+ | `--delay <ms>` | Delay between requests |
+ | `--max-concurrency <n>` | Max parallel crawl workers |
+ | `--pretty` | Pretty print JSON output |
+ | `-o, --output <path>` | Output file path |
## Tips
- - Use `--wait` when you need the results immediately. It has no default timeout; use `--timeout <seconds>` to bound polling. Without `--wait`, crawl returns a job ID for async polling.
- - **Scope crawls with `--include-paths`** whenever the request names a section — crawl only the pages you need.
+ - Always use `--wait` when you need the results immediately. It has no default timeout; use `--timeout <seconds>` to bound polling. Without `--wait`, crawl returns a job ID for async polling.
+ - Use `--include-paths` to scope the crawl — don't crawl an entire site when you only need one section.
- Crawl consumes credits per page. Check `firecrawl credit-usage` before large crawls (`credit-usage` requires authentication).
## See also
- [firecrawl-scrape](../firecrawl-scrape/SKILL.md) — scrape individual pages
- [firecrawl-map](../firecrawl-map/SKILL.md) — discover URLs before deciding to crawl
- [firecrawl-download](../firecrawl-download/SKILL.md) — download site to local files (uses map + scrape)