Command-line interface for Firecrawl, the context API for AI agents. Search, scrape, parse, crawl, map, and interact with the web, search research papers, developer sources, and government sources, and run agent jobs directly from your terminal.
npm install -g firecrawl-cli
Or set up everything in one command (install CLI globally, authenticate, and install shared skills for your detected coding editors):
npx -y firecrawl-cli@latest init -y --browser
-y runs setup non-interactively
--browser opens the browser for Firecrawl authentication automatically
- skills install globally in the shared skills directory and are made available to detected AI coding agents by default
Setup Skills, Workflows, and MCP
If you are using an AI coding agent like Claude Code, you can also install skill groups manually — one command per family:
firecrawl setup core # scrape/search/crawl/interact primitives + index skills ("skills" is an alias)
firecrawl setup build # app-integration skills for the Firecrawl API
firecrawl setup workflows # end-to-end recipes (lead gen, deep research, ...)
Or install a single skill by name — the firecrawl- prefix is optional:
firecrawl setup developer-index
firecrawl setup seo-audit
If no API key is found afterwards, an interactive terminal offers a browser login (pass --browser to log in without the prompt); non-interactive runs never block — they print a hint and the skills walk agents through setup on first use.
Default installs use the shared ~/.agents/skills directory and the coding editors detected by Firecrawl. The npx installer always includes Codex as the shared-directory target, even when Codex is not detected, preserving shared files and agent links. If no editors are detected, only the shared directory is populated. The npx path detects supported global targets, including Kiro and custom configuration locations such as CLAUDE_CONFIG_DIR and XDG_CONFIG_HOME. Project-only targets are excluded. Use --agent <agent> to target a specific editor.
Scope setup to a single harness
By default skills route to every detected harness. To install and route to only
one harness in a single command:
# One-shot from the install script (non-interactive, no TTY needed)
curl -fsSL https://firecrawl.dev/install.sh | bash -s -- --agent openclaw
# Or, once the CLI is installed
firecrawl init --agent openclaw # only OpenClaw
firecrawl setup skills --agent openclaw
firecrawl setup workflows --agent openclaw
Any args after bash -s -- are forwarded to firecrawl init, so you can add
things like --skip-auth for a skills-only, no-login setup. When you run
firecrawl init interactively without --agent, it shows a checkbox of your
detected harnesses (all selected by default) so you can pick a subset.
| Harness |
--agent value |
| Claude Code |
claude-code |
| Codex |
codex |
| Cursor |
cursor |
| Windsurf |
windsurf |
| OpenCode |
opencode |
| OpenClaw |
openclaw |
| OpenHands |
openhands |
| Hermes Agent |
hermes-agent |
The init command installs the CLI skills by default and offers the workflow skills as optional extras, into AI coding agents (Cursor, Claude Code, Windsurf, etc.):
- CLI skills — teach agents how to use the Firecrawl CLI for live web work (search, scrape, interact, map, crawl, agent) and Alexandria data providers. Installed by default.
- Workflow skills — teach agents how to produce Firecrawl-powered deliverables such as research briefs, SEO audits, QA reports, lead lists, knowledge bases, and design-system extraction. Interactive multi-select during init.
All skill families live in the firecrawl/skills catalog — including the build skills for integrating Firecrawl into application code:
npx skills add firecrawl/skills
Contributing skills? CLI skills (including the research/developer index skills) → PR this repo (skills/). Build/SDK skills → PR the firecrawl monorepo (skills/). Workflow skills → PR firecrawl/firecrawl-workflows. The catalog (firecrawl/skills) is read-only — never PR it directly.
The Firecrawl Claude Code and Cursor plugins are released separately and do not include these CLI skills. Changes here still reach the skill catalog.
To reinstall skills manually:
firecrawl setup core
firecrawl setup build
firecrawl setup workflows
Interactive CLI sessions (except init, setup, and the -y/--yes init
shorthand) show a boxed notice when installed Firecrawl skills differ from the
current catalog. The check includes supporting reference files and runs
independently of CLI releases. Installs record which catalog skills existed, so
the notice announces skills published later, once, in families whose umbrella
skill is installed. Skills skipped during setup are not offered again.
Each affected family gets one command: firecrawl setup core,
firecrawl setup build, or firecrawl setup workflows. These commands install
the entire current family, including previously skipped skills and
new skills added since your CLI was released. When installing through npx, failed
catalog API discovery falls back to this CLI release's known names with a warning.
Native installs discover skills directly from the Git repository and require that
repository to be available. An explicit refresh replaces installed files, including
local edits; the notice itself never changes them.
Checks cover global installations recorded in ~/.agents/.skill-lock.json with
files in ~/.agents/skills. They cache catalog results for 20 hours, repeat the
notice at most once every 12 hours, and retry failed checks after an hour.
Non-interactive runs stay quiet. Set FIRECRAWL_NO_UPDATE_CHECK=1 to disable both
CLI and skill update notices.
To install the Firecrawl MCP server into your editors (Cursor, Claude Code, VS Code, etc.):
With a key saved by firecrawl login, export FIRECRAWL_API_KEY and pass
--agent <agent> (or --agent all), or add --keyless: setup never writes a
stored key into client configs.
Use --agent <agent> for one client, or --agent all --global to configure
Claude Code, VS Code, Codex, OpenCode, Cursor, Gemini CLI, Windsurf,
Antigravity, Amp, Grok Build, Zed, Hermes Agent, and OpenClaw in one run. The
--agent values for the newer clients are amp (or ampcode, amp-code),
grok (or grok-build, grok-cli), and zed. Amp, Grok Build, and Zed are written to their user settings, so they do not take
--project: Amp to ~/.config/amp/settings.json (or an existing
settings.jsonc when there is no settings.json), Grok Build to
~/.grok/config.toml, and Zed to ~/.config/zed/settings.json
($XDG_CONFIG_HOME/zed/settings.json on Linux when it is set,
%APPDATA%\Zed\settings.json on Windows). Clients that cannot be
configured on this machine (for example OpenClaw when the openclaw command is
not installed) are skipped and listed in the summary; the command only fails
when a client it tried to configure fails. When FIRECRAWL_API_KEY is set,
Antigravity and Zed are skipped because they have no verified way to reference
the key from the environment; add --keyless to include them.
To make Firecrawl the default web provider for supported AI agents:
firecrawl setup defaults # or: firecrawl make default
This disables native web fetch/search where supported so agents route web work
through Firecrawl. When run interactively, it asks harness by harness (Claude
Code, Codex) so you can choose exactly which to change. Use -y to skip the
picker and apply to all, or --agent to target one:
firecrawl setup defaults --agent codex # only Codex
firecrawl setup defaults -y # all harnesses, no prompts
To undo those config changes (also interactive, harness by harness):
firecrawl setup defaults --undo # pick which to restore
firecrawl setup defaults --undo --agent claude
Just run a command - the CLI will prompt you to authenticate if needed:
firecrawl https://example.com
On first run, you'll be prompted to authenticate:
🔥 firecrawl cli
Search, scrape, and interact with the web
Welcome! To get started, authenticate with your Firecrawl account.
1. Login with browser (recommended)
2. Enter API key manually
Tip: You can also set FIRECRAWL_API_KEY environment variable
Enter choice [1/2]:
# Interactive (prompts automatically when needed)
firecrawl
# Browser login
firecrawl login
# Direct API key
firecrawl login --api-key fc-your-api-key
# Environment variable
export FIRECRAWL_API_KEY=fc-your-api-key
# Per-command API key
firecrawl scrape https://example.com --api-key fc-your-api-key
Self-hosted / Local Development
For self-hosted Firecrawl instances or local development, use the --api-url option:
# Use a local Firecrawl instance (no API key required)
firecrawl --api-url http://localhost:3002 scrape https://example.com
# Or set via environment variable
export FIRECRAWL_API_URL=http://localhost:3002
firecrawl scrape https://example.com
# Self-hosted with API key
firecrawl --api-url https://firecrawl.mycompany.com --api-key fc-xxx scrape https://example.com
When using a custom API URL (anything other than https://api.firecrawl.dev), authentication is automatically skipped, allowing you to use local instances without an API key.
Extract content from any webpage. Pass multiple URLs to scrape them concurrently -- each result is saved to .firecrawl/ automatically.
# Basic usage (outputs markdown)
firecrawl https://example.com
firecrawl scrape https://example.com
# Get raw HTML
firecrawl https://example.com --html
firecrawl https://example.com -H
# Multiple formats (outputs JSON)
firecrawl https://example.com --format markdown,links,images
# Save to file
firecrawl https://example.com -o output.md
firecrawl https://example.com --format json -o data.json --pretty
# Multiple URLs (scraped concurrently, each saved to .firecrawl/)
firecrawl scrape https://firecrawl.dev https://firecrawl.dev/blog https://docs.firecrawl.dev
| Option |
Description |
-f, --format <formats> |
Output format(s), comma-separated |
-H, --html |
Shortcut for --format html |
-S, --summary |
Shortcut for --format summary |
--only-main-content |
Extract only main content (removes navs, footers, etc.) |
--wait-for <ms> |
Wait time before scraping (for JS-rendered content) |
--screenshot |
Take a screenshot |
--full-page-screenshot |
Take a full page screenshot |
--include-tags <tags> |
Only include specific HTML tags |
--exclude-tags <tags> |
Exclude specific HTML tags |
--max-age <milliseconds> |
Maximum age of cached content in milliseconds |
--lockdown |
Enable lockdown mode for the scrape |
--redact-pii |
Redact personally identifiable information from output |
--schema <json> |
JSON schema for structured extraction |
--schema-file <path> |
Path to JSON schema file for structured extraction |
--actions <json> |
JSON actions array to run during scrape |
--actions-file <path> |
Path to JSON actions file |
--proxy <proxy> |
Proxy mode for scraping (for example, auto, basic) |
-o, --output <path> |
Save output to file |
--json |
Output as JSON format |
--pretty |
Pretty print JSON output |
--timing |
Show request timing info |
| Format |
Description |
markdown |
Clean markdown (default) |
html |
Cleaned HTML |
rawHtml |
Original HTML |
links |
All links on the page |
images |
All images on the page |
screenshot |
Screenshot as base64 |
summary |
AI-generated summary |
json |
Structured JSON extraction |
changeTracking |
Track changes on the page |
attributes |
Page attributes and metadata |
branding |
Brand identity extraction |
# Extract only main content as markdown
firecrawl https://blog.example.com --only-main-content
# Wait for JS to render, then scrape
firecrawl https://spa-app.com --wait-for 3000
# Get all links from a page
firecrawl https://example.com --format links
# Screenshot + markdown
firecrawl https://example.com --format markdown --screenshot
# Extract specific elements only
firecrawl https://example.com --include-tags article,main
# Exclude navigation and ads
firecrawl https://example.com --exclude-tags nav,aside,.ad
Search the web with query-relevant highlights and optionally scrape content from search results.
# Basic search
firecrawl search "firecrawl"
# Limit results
firecrawl search "AI news" --limit 10
# Search news sources
firecrawl search "tech startups" --sources news
# Search images
firecrawl search "landscape photography" --sources images
# Multiple sources
firecrawl search "machine learning" --sources web,news,images
# Filter by category (research-affiliated websites, PDFs, developer index, gov index)
firecrawl search "transformer architecture" --categories research
firecrawl search "machine learning" --categories pdf,research
# Note: --categories research narrows *web* results to research-affiliated
# websites. To search papers themselves, use `firecrawl research search-papers`.
# Developer search: public repositories, GitHub issues, merged PRs, READMEs, and docs
firecrawl search "axum middleware ordering" --categories developer
# Government search: US government sources (cannot be combined with other categories)
firecrawl search "California data breach notification statute" --categories gov
# Time-based search
firecrawl search "AI announcements" --tbs qdr:d # Past day
firecrawl search "tech news" --tbs qdr:w # Past week
# Location-based search
firecrawl search "restaurants" --location "San Francisco,California,United States"
firecrawl search "local news" --country DE
# Search and scrape results
firecrawl search "firecrawl tutorials" --scrape
firecrawl search "API documentation" --scrape --scrape-formats markdown,links
# Output as pretty JSON
firecrawl search "AI data tools"
| Option |
Description |
--limit <n> |
Maximum results (default: 5, max: 100) |
--sources <sources> |
Comma-separated: web, images, news, alexandria (default: web). With an API key, alexandria is always added with domain matching; --no-domain-tools turns domain matching off |
--categories <categories> |
Comma-separated: research (research-affiliated websites -- for papers use research search-papers), pdf, developer, gov (cannot be combined with other categories) |
--tbs <value> |
Time filter: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year) |
--location <location> |
Geo-targeting (e.g., "Germany", "San Francisco,California,United States") |
--country <code> |
ISO country code (default: US) |
--timeout <ms> |
Timeout in milliseconds (default: 60000) |
--highlights |
Query-relevant highlights for web and news when available (default) |
--no-highlights |
Keep the original search snippets |
--ignore-invalid-urls |
Exclude URLs invalid for other Firecrawl endpoints |
--scrape |
Enable scraping of search results |
--scrape-formats <formats> |
Scrape formats when --scrape enabled (default: markdown) |
--only-main-content |
Include only main content when scraping (default: true) |
-o, --output <path> |
Save to file |
--json |
Output as compact JSON |
# Research a topic with recent results
firecrawl search "React Server Components" --tbs qdr:m --limit 10
# Search public developer sources
firecrawl search "web data library" --categories developer --limit 20
# Search and get full content
firecrawl search "firecrawl documentation" --scrape --scrape-formats markdown --json -o results.json
# Find research papers -- use the paper index, not the website filter
firecrawl research search-papers "large language models" --json
# Narrow web results to research-affiliated websites (not the paper index)
firecrawl search "large language models" --categories research --json
# Answer a programming question from public repositories, GitHub issues, merged PRs, READMEs, and docs
firecrawl search "tokio select cancellation safety" --categories developer --json
# Search with location targeting
firecrawl search "best coffee shops" --location "Berlin,Germany" --country DE
# Get news from the past week
firecrawl search "AI startups funding" --sources news --tbs qdr:w --limit 15
developer - Search developer sources
Search an index built for coding agents: public repositories, GitHub issues, merged pull requests, repository READMEs, and curated documentation sites. Use it for a programming question: code behaviour, a library or framework, an API contract, an error message, or a known bug.
The CLI intentionally keeps this agent-facing surface lean: it accepts only the query and result count. Express repository, source, result-kind, language, topic, license, and other scoping intent in the query text; semantic retrieval handles the scoping. For advanced filters, use the Developer Index REST API.
firecrawl developer "axum middleware ordering"
| Option |
Description |
--limit <n> |
Number of results (default: 10, max: 100) |
-o, --output <path> |
Save to file |
--json |
Output full response, including citations and index status |
--pretty |
Pretty print JSON output |
# Investigate a known bug
firecrawl developer "tokio spawn_blocking panics thread limit" --limit 10
# Put repository and evidence-kind intent directly in the semantic query
firecrawl developer "tokio select cancellation safety in tokio-rs/tokio issues and merged pull requests"
# Keep the full response, including passages, citations, and licenses
firecrawl developer "tokio select cancellation safety" --json -o results.json
gov - Search the Firecrawl Government Index
Search the Government Index: primary law and regulatory material from US federal, state, and local government sources, including statutes, regulations, codes, court opinions, and other government publications.
For the request and response schema, see the Government Index REST API.
firecrawl gov "food labeling requirements for allergens"
| Option |
Description |
--limit <n> |
Number of results (default: 10, max: 100) |
--jurisdiction <code> |
Keep only pages of one jurisdiction: us for federal, or us- plus a two-letter state or territory code, such as us-ca or us-dc |
--court <id> |
Keep only pages labeled for one court, by CourtListener court id, such as scotus, ca9, or nysd |
--court-type <type> |
Keep only pages from one type of court: federal-supreme, federal-appellate, federal-district, federal-bankruptcy, federal-special, military, state-supreme, state-appellate, state-trial, state-special, or state-attorney-general |
--cites <citation> |
Keep only pages that cite one law or case, as a printed citation such as "42 U.S.C. § 1983" or "5 U.S. 137", or a citation id such as us:usc:42:1983 |
--domain <domain> |
Keep only pages from one site, such as irs.gov |
-o, --output <path> |
Save to file |
--json |
Output the raw response as JSON |
--pretty |
Pretty print JSON output |
Filters combine with AND. Filters keep only pages the index has labeled, so a filtered search can leave out relevant pages, and no results does not mean none exist. Court labels are most complete for federal courts and case-law collections.
# Find state statutes on a topic
firecrawl gov "California data breach notification statute" --limit 10
# Narrow to one court
firecrawl gov "qualified immunity excessive force" --court ca9
# Keep only pages that cite a statute
firecrawl gov "civil rights claims against police officers" --cites "42 U.S.C. § 1983"
# Keep the raw response
firecrawl gov "FDA food labeling regulations" --json -o results.json
research - Search research papers
Search Firecrawl's research paper index: roughly 43M abstracts, around 90% biomedical (PubMed, bioRxiv, medRxiv) plus arXiv. Use this for biomedical, clinical, and scientific literature rather than scraping PubMed, bioRxiv, or Google Scholar by hand.
This is not the same thing as firecrawl search --categories research, which only narrows ordinary web results to research-affiliated websites.
# Find papers by topic (start here)
firecrawl research search-papers "CRISPR base editing off-target effects" --limit 20
# Full metadata for one paper, by any supported id form
firecrawl research inspect-paper pmid:40953549
# Expand along the citation graph from your strongest hits
firecrawl research related-papers pmcid:PMC12530322 --intent "in vivo delivery"
# Read full-text passages to verify a specific claim
firecrawl research read-paper doi:10.1016/j.neunet.2025.108095 --question "What was the sample size?"
# Search GitHub issue/PR history and repository READMEs
firecrawl research search-github "foundationdb queue worker shutdown" --limit 10
Paper ids accept pmid:, pmcid:, doi:, and arxiv: forms, plus canonical paperId values returned by search.
| Subcommand |
Description |
search-papers <query> |
Semantic (HyDE) search over paper abstracts. The primary entry point. |
inspect-paper <paperId> |
Canonical metadata: title, abstract, authors, categories, source ids, dates |
related-papers <seedIds...> |
Citation-graph expansion from seed papers, ranked against --intent |
read-paper <paperId> |
Best-matching in-body full-text passages for a --question |
search-github <query> |
GitHub issue/PR history and repository READMEs |
| Option |
Description |
--limit <n> |
Number of results (default: 40) |
--authors <authors> |
Comma-separated author substring filter(s); all must match |
--categories <categories> |
arXiv-style taxonomy labels (e.g. cs.LG,cs.IR). Biomedical records do not use these. |
--from <date> |
Inclusive lower bound on created/updated date (YYYY-MM-DD) |
--to <date> |
Inclusive upper bound on created/updated date (YYYY-MM-DD) |
-o, --output <path> |
Save to file |
--json |
Output as compact JSON |
--pretty |
Pretty print JSON output |
- Run several distinct framings of the same question rather than one query -- recall improves markedly.
- Use
search-papers to find anchors, related-papers to expand, then read-paper to verify a candidate before including it.
feedback - Send endpoint job feedback
Send concise feedback for a completed v2 search, scrape, parse, or map
job. For search-result quality, search-feedback is still the most guided
command; feedback is the generic endpoint/job surface.
firecrawl feedback scrape 0193f6c5-1234-7890-abcd-1234567890ab \
--rating partial \
--issues missing_markdown \
--tags docs \
--note "The pricing table was missing from the markdown output." \
--url https://example.com/pricing \
--page-numbers 1
Keep notes and metadata small. Do not send raw scrape or parse outputs as
feedback.
Set FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 to make firecrawl feedback skip
endpoint feedback calls silently.
| Option |
Description |
--rating <rating> |
Required: good, partial, or bad |
--issues <codesOrJson> |
Comma-separated issue codes or JSON array |
--tags <codesOrJson> |
Comma-separated tags or JSON array |
--note <text> |
Short human-readable feedback |
--valuable-sources <json> |
JSON array of {url, reason} entries |
--valuable-results <positionsOrJson> |
Search only: every useful result as source:position, e.g. web:1,news:2, or a JSON array of {source, position, reason?} |
--missing-content <json> |
JSON array of {topic, description} entries |
--query-suggestions <text> |
Search/query improvement notes |
--url <url> |
Relevant URL for scrape or parse feedback |
--page-numbers <numbersOrJson> |
Comma-separated page numbers or JSON array |
--metadata <json> |
Small JSON object with extra context |
--metadata-file <path> |
Path to small metadata JSON object |
--silent |
Suppress output for background agent calls |
map - Discover all URLs on a website
Quickly discover all URLs on a website without scraping content.
# List all URLs (one per line)
firecrawl map https://example.com
# Output as JSON
firecrawl map https://example.com --json
# Search for specific URLs
firecrawl map https://example.com --search "blog"
# Limit results
firecrawl map https://example.com --limit 500
| Option |
Description |
--limit <n> |
Maximum URLs to discover |
--search <query> |
Filter URLs by search query |
--sitemap <mode> |
include, skip, or only |
--include-subdomains |
Include subdomains |
--ignore-query-parameters |
Dedupe URLs with different params |
--timeout <seconds> |
Request timeout |
--json |
Output as JSON |
-o, --output <path> |
Save to file |
# Find all product pages
firecrawl map https://shop.example.com --search "product"
# Get sitemap URLs only
firecrawl map https://example.com --sitemap only
# Save URL list to file
firecrawl map https://example.com -o urls.txt
# Include subdomains
firecrawl map https://example.com --include-subdomains --limit 1000
crawl - Crawl an entire website
Crawl multiple pages from a website.
# Start a crawl (returns job ID)
firecrawl crawl https://example.com
# Wait for crawl to complete
firecrawl crawl https://example.com --wait
# With progress indicator
firecrawl crawl https://example.com --wait --progress
# Check crawl status
firecrawl crawl <job-id>
# Limit pages
firecrawl crawl https://example.com --limit 100 --max-depth 3
| Option |
Description |
--wait |
Wait for crawl to complete |
--progress |
Show progress while waiting |
--limit <n> |
Maximum pages to crawl |
--max-depth <n> |
Maximum crawl depth |
--include-paths <paths> |
Only crawl matching paths |
--exclude-paths <paths> |
Skip matching paths |
--sitemap <mode> |
include, skip, or only |
--allow-subdomains |
Include subdomains |
--allow-external-links |
Follow external links |
--crawl-entire-domain |
Crawl entire domain |
--ignore-query-parameters |
Treat URLs with different params as same |
--delay <ms> |
Delay between requests |
--max-concurrency <n> |
Max concurrent requests |
--scrape-options <json> |
JSON scrape options passed to each page |
--scrape-options-file <path> |
Path to scrape options JSON file |
--webhook <url-or-json> |
Webhook URL or configuration |
--cancel |
Cancel an active crawl job by job ID |
--timeout <seconds> |
Timeout when waiting |
--poll-interval <seconds> |
Status check interval |
# Crawl blog section only
firecrawl crawl https://example.com --include-paths /blog,/posts
# Exclude admin pages
firecrawl crawl https://example.com --exclude-paths /admin,/login
# Crawl with rate limiting
firecrawl crawl https://example.com --delay 1000 --max-concurrency 2
# Deep crawl with high limit
firecrawl crawl https://example.com --limit 1000 --max-depth 10 --wait --progress
# Save results
firecrawl crawl https://example.com --wait -o crawl-results.json --pretty
batch-scrape - Scrape a list of URLs
Scrape many known URLs as one async job. Unlike multi-URL scrape, every requested format is kept and results come back as JSON.
# Start a batch scrape (returns job ID)
firecrawl batch-scrape https://example.com https://example.org
# Read URLs from a file (one per line; blank lines and # comments ignored)
firecrawl batch-scrape --urls-file urls.txt
# Wait for results
firecrawl batch-scrape --urls-file urls.txt --format markdown,links --wait --progress
# Check status (returns documents scraped so far)
firecrawl batch-scrape <job-id>
# Cancel a job
firecrawl batch-scrape <job-id> --cancel
| Option |
Description |
--urls-file <path> |
File with one URL per line |
-f, --format <formats> |
Output format(s), comma-separated |
--only-main-content |
Extract only main content |
--wait-for <ms> |
Wait time before scraping each page |
--max-age <milliseconds> |
Maximum age of cached content in milliseconds |
--schema <json> |
JSON schema for extraction (adds json format) |
--schema-file <path> |
Path to JSON schema file |
--prompt <text> |
Extraction prompt (adds json format) |
--scrape-options <json> |
JSON scrape options applied to every URL |
--scrape-options-file <path> |
Path to scrape options JSON file |
--wait |
Wait for the job to complete |
--progress |
Show progress while waiting |
--timeout <seconds> |
Timeout when waiting |
--poll-interval <seconds> |
Status check interval (default: 2) |
--webhook <url-or-json> |
Webhook URL or configuration |
--max-concurrency <n> |
Max concurrent scrapes for this job |
--ignore-invalid-urls |
Skip invalid URLs instead of failing the job |
--status |
Check status of a job by job ID |
--cancel |
Cancel an active job by job ID |
-o, --output <path> |
Save output to file |
--pretty |
Pretty print JSON output |
# Extract the same fields from every page
firecrawl batch-scrape --urls-file products.txt --wait \
--schema '{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"string"}}}' \
-o products.json --pretty
# Notify a webhook instead of waiting
firecrawl batch-scrape --urls-file urls.txt --webhook https://example.com/hooks/firecrawl
credit-usage - Check your credits
# Show credit usage
firecrawl credit-usage
# Output as JSON
firecrawl credit-usage --json --pretty
agent - AI-powered web data extraction
Run an AI agent that autonomously browses and extracts structured data from the web based on natural language prompts.
Note: Agent tasks typically take 2 to 5 minutes to complete, and sometimes longer for complex extractions. Use sparingly and consider --max-credits to limit costs.
# Basic usage (returns job ID immediately)
firecrawl agent "Find the pricing plans for Firecrawl"
# Wait for completion
firecrawl agent "Extract all product names and prices from this store" --wait
# Focus on specific URLs
firecrawl agent "Get the main features listed" --urls https://example.com/features
# Use structured output with JSON schema
firecrawl agent "Extract company info" --schema '{"type":"object","properties":{"name":{"type":"string"},"employees":{"type":"number"}}}'
# Load schema from file
firecrawl agent