When an agent needs one fact off a page, scraping the whole thing to get it always felt wasteful. You end up with a full markdown dump and use maybe two sentences of it. Firecrawl v2.10 goes after that problem directly at the API level.

Two new formats landed on /scrape:

  • question — pass a natural-language question, get back a grounded answer with citation-friendly output. No footers, ads, or irrelevant prose crowding your context window, just the answer drawn from what’s actually on the page.
  • highlights — pass a query, get back only the sentences, code blocks, and table rows that actually match it, formatting intact. Consecutive sentences re-join into paragraphs, code lines keep their original language in fenced blocks, and matched table rows rebuild as proper Markdown tables with headers.

Both come with prompt-injection resistance built in — page content gets isolated with XML tagging and zero-width-space escaping so anything hidden in the page itself can’t hijack the request. Firecrawl claims up to 100x fewer tokens per call for both formats compared to a full scrape, and this time there’s an actual number to weigh it against rather than just taking the vendor’s word: on a 10,000-URL test set, Firecrawl’s own published benchmark has Highlights scoring 0.446 against Exa’s competing Highlights feature at 0.160 — roughly 2.8x more focused by their measure. That’s still Firecrawl grading its own homework, so I’d treat it as a data point rather than a verified independent result, but it’s a more specific claim than “trust us.”

The rest of the release:

  • A new /parse endpoint — PDFs, Word docs, spreadsheets up to 50MB, converted to clean markdown through a new Rust-based engine they say is up to 5x faster
  • Lockdown Mode — serves only cached results from Firecrawl’s own index with zero outbound requests and zero data retention by default, aimed at compliance-sensitive setups; available across every SDK, the CLI, and MCP
  • Four new official SDKs (Go, Ruby, PHP with Laravel support, .NET), plus the Rust SDK graduating from community project to official v2 status

Where this actually seems useful: agents doing lots of small, repeated lookups, where full-page scraping was burning tokens for one buried fact. If you’re pulling structured data across a whole page instead, the existing /scrape formats are probably still the better fit — question and highlights are built for “find this one thing,” not “give me everything.”

pip install firecrawl-py

Full release notes are on the GitHub releases page.