Search the web and get clean, structured content from every result in a single API call. Pass a query to /search and Firecrawl returns titles, descriptions, and URLs. Add scrapeOptions to also retrieve full-page markdown, HTML, links, or screenshots for each result.
Search results include query-relevant Highlights by default. Set highlights to false when you want each website's plain description or snippet instead.
For the full parameter list, see the Search Endpoint API Reference.
Test searching in the interactive playground — no code required.
Performing a Search with Firecrawl#
/search endpoint#
Used to perform web searches and optionally retrieve content from the results.
Installation#
To qualify, complete a high-signal interview (thoughtful, concrete use cases, etc) with our Firecrawl Feedback Assistant. Only takes a few minutes, can be stopped at any time, and is both human/agent-friendly (just paste the link into your agentic harness!). Most useful if you search or scrape government, court, regulatory, or public-record sites and have hit their quirks firsthand.
Start the interview
Include your email to be eligible. Interviews are reviewed for quality at the end of each week.
Basic Usage#
Response#
SDKs will return the data object directly. cURL will return the complete payload.
SDK users: search results are grouped by source type, not under a generic .data array. Access web results with result.web, news with result.news, and images with result.images.
Search result types#
In addition to regular web results, Search supports specialized result types via the sources parameter:
web: standard web results (default)news: news-focused resultsimages: image search results
You can request multiple sources in a single call (e.g., sources: ["web", "news"]). When you do, the limit parameter applies per source type — so limit: 5 with sources: ["web", "news"] returns up to 5 web results and up to 5 news results (10 total). If you need different parameters per source (for example, different limit values or different scrapeOptions), make separate calls instead.
Search Categories#
Filter search results by specific categories using the categories parameter:
research: Restrict web search to academic and research websites (arxiv.org, nature.com, ieee.org, pubmed.ncbi.nlm.nih.gov, biorxiv.org, medrxiv.org, and similar). Returns ordinary web page results with snippets — not paper records. To search papers themselves, use the Research Indexpdf: Search for PDFsdeveloper: Search the Developer Index — issues, merged pull requests, and READMEs from public code repositories, alongside curated documentation sites
research is a website filter, not the paper index. It narrows ordinary web search to a fixed list of academic domains and returns page snippets from them.
If you want to search scientific literature — full abstracts, in-paper passage reads, and citation-graph expansion over a paper index of PubMed, bioRxiv, medRxiv, and arXiv — use the Research Index instead.
Research Category Search#
Restrict web search to academic and research websites. This returns web pages hosted on those domains — landing pages, abstract pages, publisher pages — with the usual snippets:
To search the papers themselves rather than the websites that host them, use the Research Index, which searches paper abstracts across PubMed, bioRxiv, medRxiv, and arXiv and can read passages from inside a paper:
Developer Category Search#
Search the Developer Index for primary sources on a coding question:
Developer results come back in the standard web group, each carrying category: "developer"; the developer category cannot be combined with other categories. For ranked results with the matched passages, and for the repository and documentation-source filters, use the developer search endpoint.
Mixed Category Search#
Combine multiple categories in one search:
Domain Filters#
Use includeDomains to restrict search results to specific domains, or excludeDomains to remove specific domains from the search. These fields add site: and -site: operators to the query internally, so pass domains only without a protocol or path.
includeDomains and excludeDomains are mutually exclusive. Use one or the other in a single request.
Include Domains#
Exclude Domains#
Category Response Format#
Each search result includes a category field indicating its source:
Examples:
HD Image Search with Size Filtering#
Use images operators to find high-resolution images:
Common HD resolutions:
imagesize:1920x1080- Full HD (1080p)imagesize:2560x1440- QHD (1440p)imagesize:3840x2160- 4K UHDlarger:1920x1080- HD and abovelarger:2560x1440- QHD and above
Search with Content Scraping#
Search and retrieve content from the search results in one operation.
Every option in scrape endpoint is supported by this search endpoint through the scrapeOptions parameter.
Response with Scraped Content#
Search then Scrape (Two-Step Pattern)#
If you need to filter or process search results before scraping, use a two-step approach: search first, then scrape the URLs you want.
When to use which approach:
- One-step (
scrapeOptionsin search): You want content from all results. Simpler and faster. - Two-step (search then scrape): You want to filter, rank, or selectively scrape results. More flexible.
Both approaches use Firecrawl for the scrape step. Do not use generic HTTP fetching or summarize from search snippets alone -- the full page content from Firecrawl scrape is what makes results grounded and complete.
Advanced Search Options#
Firecrawl's search API supports various parameters to customize your search:
Location Customization#
Time-Based Search#
Use the tbs parameter to filter results by time. Note that tbs only applies to web source results — it does not filter news or images results. If you need time-filtered news, consider using a web source with the site: operator to target specific news domains.
Common tbs values:
qdr:h- Past hourqdr:d- Past 24 hoursqdr:w- Past weekqdr:m- Past monthqdr:y- Past yearsbd:1- Sort by date (newest first)
For more precise time filtering, you can specify exact date ranges using the custom date range format:
You can combine sbd:1 with time filters to get date-sorted results within a time range. For example, sbd:1,qdr:w returns results from the past week sorted newest first, and sbd:1,cdr:1,cd_min:12/1/2024,cd_max:12/31/2024 returns results from December 2024 sorted by date.
Custom Timeout#
Set a custom timeout for search operations:
Safe Search#
Set safe to true to filter explicit content from your search results (SafeSearch). When omitted, results are returned unfiltered, exactly as before.
Zero Data Retention (ZDR)#
For teams with strict data handling requirements, Firecrawl offers Zero Data Retention (ZDR) options for the /search endpoint via the enterprise parameter. ZDR search is available on Enterprise plans — visit firecrawl.dev/enterprise to get started.
This is separate from the zeroDataRetention scrape option, which controls ZDR for scraping operations. See Scrape ZDR for details. The enterprise parameter only applies to the search portion of the request.
End-to-End ZDR#
With end-to-end ZDR, both Firecrawl and our upstream search provider enforce zero data retention. No query or result data is stored at any point in the pipeline.
- Cost: 10 credits per 10 results
- Parameter:
enterprise: ["zdr"]
Anonymized ZDR#
With anonymized ZDR, Firecrawl enforces full zero data retention on our side. Our search provider may cache the query, but it is fully anonymized — no identifying information is attached.
- Cost: 2 credits per 10 results
- Parameter:
enterprise: ["anon"]
Combining Search ZDR with Scrape ZDR#
If you are using search with content scraping (scrapeOptions), the enterprise parameter automatically enforces ZDR for any resulting scrapes. The following example request enforces ZDR on both the search and scrape portions of the process:
Cost Implications#
The cost of a search is 2 credits per 10 results, rounded up (1–10 results = 2 credits, 11–20 = 4 credits, and so on). If scraping options are enabled, the standard scraping costs apply to each search result:
- Basic scrape: 1 credit per webpage
- PDF parsing: 1 credit per PDF page
- JSON mode: 4 additional credits per webpage
To help control costs:
- Set
parsers: []if PDF parsing isn’t required - Limit the number of search results with the
limitparameter
Advanced Scraping Options#
For more details about the scraping options, refer to the Scrape Feature documentation. Everything except for the FIRE-1 Agent and Change-Tracking features are supported by this Search endpoint.
Are you an AI agent that needs a Firecrawl API key? See firecrawl.dev/agent-onboarding/SKILL.md for automated onboarding instructions.
Search feedback#
When a search result is useful or misses important content, submit feedback with POST /v2/search/{jobId}/feedback. The first feedback submission for a search job can refund 1 credit, subject to team limits, and helps improve Firecrawl search quality. See Search Feedback.

