firecrawl-search

作成者: firecrawl

Web検索機能に加え、結果からオプションで全ページのコンテンツ抽出が可能。実際の検索結果をJSONで返し、オプションの--scrapeフラグを使用すると各結果の完全なページマークダウンを取得でき、重複取得を回避。ソースタイプ(web、画像、ニュース)、カテゴリ(GitHub、研究、PDF)、時間範囲(過去1時間/1日/1週間/1ヶ月/1年)、場所、国によるフィルタリングに対応。--limitで結果数を制御し、--scrape-formatsで全コンテンツ抽出時の出力形式をカスタマイズ可能。ワークフローの一部として機能。

npx skills add https://github.com/firecrawl/cli --skill firecrawl-search

firecrawl search

Web search with optional content scraping. Returns search results as JSON, optionally with full page content.

When to use

  • You don't have a specific URL yet
  • You need to find pages, answer questions, or discover sources
  • You need research papers — see Paper search, which routes to firecrawl research, not to search --categories research
  • First step in the workflow escalation pattern: search → scrape → map → crawl → interact

Quick start

# Basic search
firecrawl search "your query" -o .firecrawl/result.json --json

# Search and scrape full page content from results
firecrawl search "your query" --scrape -o .firecrawl/scraped.json --json

# News from the past day
firecrawl search "your query" --sources news --tbs qdr:d -o .firecrawl/news.json --json

# Programming question: search GitHub issues, merged PRs, READMEs, and docs
firecrawl search "your query" --categories developer -o .firecrawl/developer.json --json

# Research papers: use the paper index, NOT `search --categories research`
firecrawl research search-papers "your query" -o .firecrawl/papers.json --json

Developer search

--categories developer adds an index built for coding agents. It covers GitHub issues, merged pull requests, repository READMEs, and curated documentation sites. Use it for a programming question: an error message, an API contract, a library behaviour, or a known bug.

The hits arrive in their own data.developer group beside data.web. Each hit holds url, title, and description, where description is the matched passage. Read the passages with jq -r '.data.developer[] | .url, .description' .firecrawl/developer.json.

The dedicated firecrawl developer command searches only that index and keeps the full matched passages:

# Developer search only, with full passages
firecrawl developer "your query" --limit 10 -o .firecrawl/developer.json --json

Each result holds id, type (issue, pull_request, readme, doc), url, title, and passages. Read them with jq -r '.results[] | .url, .passages[].text' .firecrawl/developer.json.

Paper search

--categories research is not the paper index. It only narrows ordinary web results to research-affiliated websites (a short domain allowlist). For actual papers use the firecrawl research command group, which searches roughly 43M abstracts, around 90% biomedical (PubMed, bioRxiv, medRxiv) plus arXiv.

Reach for it on any biomedical, clinical, or scientific-literature question instead of web-searching or scraping PubMed, bioRxiv, medRxiv, or Google Scholar by hand:

# Find papers by topic -- start here, and run several distinct framings
firecrawl research search-papers "CRISPR base editing off-target effects" \
  --limit 20 -o .firecrawl/papers.json --json

# Expand from your strongest hits along the citation graph
firecrawl research related-papers pmid:40953549 --intent "in vivo delivery" \
  -o .firecrawl/papers-related.json --json

# Verify a specific claim against the full text before you cite it
firecrawl research read-paper pmcid:PMC12530322 --question "What was the sample size?" \
  -o .firecrawl/paper-passages.json --json

Paper ids accept pmid:, pmcid:, doi:, and arxiv: forms. inspect-paper returns canonical metadata for one id. Read hits with jq -r '.results[] | .primaryId, .title' .firecrawl/papers.json.

See firecrawl-cli for how paper search fits the overall command routing.

Options

OptionDescription
--limit <n>Max number of results
--sources <web,images,news>Source types to search
--categories <github,research,pdf,developer>Filter by category. research = research-affiliated websites (see Paper search for the actual paper index); developer = the coding-agent index
--tbs <qdr:h|d|w|m|y>Time-based search filter
--locationLocation for search results
--country <code>Country code for search
--scrapeAlso scrape full page content for each result
--scrape-formatsFormats when scraping (default: markdown)
-o, --output <path>Output file path
--jsonOutput as JSON

Tips

  • --scrape fetches full content — don't re-scrape URLs from search results. This saves credits and avoids redundant fetches.
  • Always write results to .firecrawl/ with -o to avoid context window bloat.
  • Use jq to extract URLs or titles: jq -r '.data.web[].url' .firecrawl/search.json
  • Naming convention: .firecrawl/search-{query}.json or .firecrawl/search-{query}-scraped.json

Send feedback after every search (refunds 1 credit)

Search costs 2 credits. After you've actually used the results (or decided they were useless), send structured feedback with firecrawl search-feedback <id>. The first feedback per search refunds 1 credit and helps us improve search quality. Do this once per search, in the background, after you finish processing the results — it does not block your main task.

Opt out: if FIRECRAWL_NO_SEARCH_FEEDBACK=1 (or FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) is set, the CLI silently skips the call and never sends anything. Respect that — do not try to work around it. (Team admins can also disable this server-side; the API will return feedbackErrorCode: "TEAM_OPTED_OUT" and the CLI will exit 0 silently.)

Rules to know before you call this:

  • Time window: must be sent within ~2 minutes of the search. Late feedback is rejected.
  • --missing-content is the most important field. It's a list of specific pieces of content you expected but did not find. One topic per entry — do not pack multiple topics into one string. These aggregate across teams and tell us what to index next.
  • Substantive content required (zero-effort feedback is rejected with HTTP 400):
    • good → must include at least one --valuable-sources entry.
    • partial → must include --valuable-sources or --missing-content.
    • bad → must include --missing-content or --query-suggestions.
  • Daily refund cap (per team, per UTC day, default 100 credits). Once your team has been refunded 100 credits today, further submissions still record feedback but no longer refund credits. The response includes creditsRefundedToday / dailyRefundCap / dailyCapReached. When dailyCapReached: true, stop calling search-feedback for the rest of the UTC day — it won't refund anything and you're wasting bandwidth.
  • Idempotent: re-submitting for the same search id returns success but no extra refund.
  • --silent & is the right pattern — exit code 0 even on failure, so a rejected/expired call never crashes your pipeline.

Read the search response's id:

SEARCH_ID=$(jq -r '.id' .firecrawl/search-react-hooks.json)

Then send feedback. Pick the rating that matches what actually happened:

# Results were useful, with notes on what was still missing
firecrawl search-feedback "$SEARCH_ID" \
  --rating good \
  --valuable-sources '[{"url":"https://react.dev/reference/react/hooks","reason":"Most authoritative"}]' \
  --missing-content '[
    {"topic":"useDeferredValue","description":"No example of useDeferredValue with Suspense"},
    {"topic":"useTransition","description":"No coverage of useTransition for routing"}
  ]' \
  --query-suggestions "Boost react.dev for queries about react hooks" \
  --silent &

# Results were partially useful — multiple missing topics, one entry per topic
firecrawl search-feedback "$SEARCH_ID" \
  --rating partial \
  --missing-content '[
    {"topic":"useDeferredValue"},
    {"topic":"useTransition","description":"Need React 18+ examples"},
    {"topic":"Server Components hooks"}
  ]' \
  --silent &

# Quick form — repeat --missing-content or use comma-separated topics
firecrawl search-feedback "$SEARCH_ID" \
  --rating bad \
  --missing-content "official api reference: missing v2 endpoints" \
  --missing-content "code examples in python" \
  --silent &

--missing-content accepts:

  • JSON array of {topic, description?} objects (richest, preferred)
  • "topic: description" strings (shorthand)
  • Plain "topic1, topic2, topic3" (when you only have topic names)
  • Repeated --missing-content flags

--silent suppresses output and & runs it in the background so feedback never blocks you.

See also

firecrawlのその他のスキル

oracle
firecrawl
oracle CLIのベストプラクティス(プロンプトとファイルのバンドル、エンジン、セッション、ファイル添付パターン)
official
pinecone
firecrawl
プロダクションAIアプリケーション向けの管理型ベクトルデータベース。フルマネージド、自動スケーリング、ハイブリッド検索(高密度+スパース)、メタデータフィルタリング、名前空間を備えています。…
official
sentence-transformers
firecrawl
最先端の文、テキスト、画像埋め込みのためのフレームワーク。セマンティック類似性、クラスタリング、検索用に5000以上の事前学習済みモデルを提供。…
official
wp-playground
firecrawl
WordPress Playgroundのワークフローに使用:ブラウザまたはローカルで@wp-playground/cli(サーバー、run-blueprint、build-snapshot)を介した高速な使い捨てWPインスタンス、…
official
wp-plugin-development
firecrawl
WordPressプラグイン開発時に使用:アーキテクチャとフック、アクティベーション/ディアクティベーション/アンインストール、管理UIと設定API、データストレージ、cron/タスク、セキュリティ…
official
wp-project-triage
firecrawl
WordPressリポジトリ(プラグイン/テーマ/ブロックテーマ/WPコア/Gutenberg/フルサイト)のツール/テスト/バージョンなどを含む確定的な検査が必要な場合に使用します。
official
wp-rest-api
firecrawl
WordPress REST APIのエンドポイント/ルート(register_rest_route、WP_REST_Controller/コントローラークラス、スキーマ/引数…)の構築、拡張、デバッグ時に使用します。
official
wp-wpcli-and-ops
firecrawl
WordPressの操作でWP-CLI(wp)を使用する際に利用:安全な検索置換、データベースのエクスポート/インポート、プラグイン/テーマ/ユーザー/コンテンツ管理、cron、キャッシュフラッシュなど
official