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:
{
"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
descriptionwith query-relevant page content when available. - News: Replaces
snippetwith 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
scrapeOptionsis 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.