Skip to content
Firecrawl Docsv2
Firecrawl Docs
Search

Search Highlights

Return query-relevant passages instead of plain website descriptions

Search Highlights replace each result’s plain website description with passages from the page that are relevant to your query. They are enabled by default on /v2/search; no additional parameter, output format, or scrapeOptions is required.

Highlights preserve the search result’s URL, title, position, and ranking. For web results, the highlighted text is returned in description; for news results, it is returned in snippet.

If Firecrawl cannot generate a highlight for a result, the website’s plain description or snippet is preserved. One unavailable page will not prevent the other search results from being returned.

Highlights are enabled by default

Use Search normally and Firecrawl will return highlights when relevant page content is available.

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

results = firecrawl.search(
    query="how does firecrawl handle javascript rendering",
    limit=5,
)

for result in results.web or []:
    print(result.description)

MCP

The firecrawl_search MCP tool also returns highlights by default:

MCP
{
  "query": "how does firecrawl handle javascript rendering",
  "limit": 5
}

Response

Highlights use the existing description fields, so the response shape stays the same as a normal search response.

{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://www.firecrawl.dev/blog/javascript-web-scraping",
        "title": "Web Scraping With JavaScript: Step-by-Step Guide",
        "description": "# Web Scraping With JavaScript: Step-by-Step Guide\n## When should you use scraping APIs instead of DIY tools?\n### Setting up Firecrawl\n```\nnpm install firecrawl\n```\n\n```\nFIRECRAWL_API_KEY=fc-your-api-key-here\n```\n\n### Solving the JavaScript quotes problem\nYou describe what you want, and Firecrawl handles extraction and validation.",
        "position": 1
      }
    ]
  }
}

Highlights may contain Markdown when the relevant page content includes headings, lists, tables, or code. Render or process the field as Markdown if you want to preserve that structure.

Disable highlights

Set highlights to false when you want each website’s plain description or snippet instead.

results = firecrawl.search(
    query="Firecrawl search API",
    highlights=False,
)

Behavior by result type

  • Web: Replaces description with query-relevant page content when available.
  • News: Replaces snippet with query-relevant page content when available.
  • Images: Image results are returned unchanged.
  • Search with scraping: Highlights affect the search description or snippet. Content requested through scrapeOptions is returned separately and is not replaced.
  • Zero Data Retention: ZDR searches retain the websites’ plain descriptions and snippets.

For every Search parameter and the complete response schema, see the Search API reference.

Was this page helpful?Suggest editsRaise issue