Firecrawl vs Tavily vs Exa vs DeepSeek: Best Search API for AI Agents (2026)
Python 3.15.1 came out on 21 October 2026. Two days later, I asked four search APIs built for AI agents for the latest stable Python release, and only one of them knew. Exa returned the 3.15.1 release page. Firecrawl, Tavily and DeepSeek returned pages that still named 3.15.0 or 3.14, and an agent reading those results would have given the wrong answer without knowing it.
Because an agent trusts whatever its search tool hands back, I ran 40 searches, 40 page fetches and two site crawls through all four tools. DeepSeek's Search API is the newest of them, launched on 17 October at $0.75 per 1,000 calls, about a ninth of Exa's price.
Exa returned the best search results for 31 of the 40 queries, so it's the one to search with. For reading pages, use Firecrawl, which got usable content from 37 of 40 pages, including every PDF, and was the only tool that crawled a docs site reliably. DeepSeek was the cheapest and fastest at search, but it couldn't fetch a single PDF. Tavily returned the leanest results, but it didn't win any category outright. Everything ran on free plans, apart from five cents of DeepSeek credit.
What these tools actually do
All four give an AI agent access to the live web, through three kinds of call:
- Search: send a query and get back ranked results with page text, ready to drop into a model's context. This is what Exa, Tavily and DeepSeek lead with.
- Fetch (or scrape): send a URL and get back the page as clean markdown, without the navigation, ads and scripts. This is Firecrawl's core product, and the other three offer it too.
- Crawl: send a site and get back many pages. Only Firecrawl and Tavily do this.
A SERP API such as SerpApi is a different product: it scrapes Google and returns Google's results as JSON. The four tools here run their own search index or a mix of sources, and return page content for a model to read. Our best SERP API comparison covers that category.
Firecrawl vs Tavily vs Exa vs DeepSeek: the quick verdict
| Job | Winner | One-line reason |
|---|---|---|
| Answer a question with current facts | Exa | Only tool that surfaced Python 3.15.1, released two days earlier |
| Find news from the last 48 hours | Exa, with DeepSeek close | Exa won 7 of 8 news queries; DeepSeek returned fresh coverage for 40 of 40 results |
| Look up docs for a coding agent | Exa, with Tavily close | Exa found the official doc page for all 8 queries |
| Research and "find similar" | Exa, by far | 33 distinct matching companies, papers and essays, against 23 for the next best |
| Regional and non-English queries | Exa, with DeepSeek on Chinese | Exa won 7 of 8; DeepSeek won the Spanish query and tied on the Chinese one |
| Turn a URL into clean markdown | Firecrawl | 37 of 40 pages returned usable content, including all 10 PDFs |
| Crawl a docs site | Firecrawl | 25 of 25 pages on both sites; Tavily's crawls were unreliable |
| Lowest price | DeepSeek | $0.75 per 1,000 searches or fetches |
| Smallest payload for an agent | Tavily | About 5,600 characters per search, against 68,000 for Firecrawl |
How we tested
- Plans. Firecrawl, Exa and Tavily on new free accounts, with no card. DeepSeek has no free tier for its API, so I topped up the $2 minimum, of which the tests used $0.05.
- Search. 40 queries, 8 for each of five jobs, each run once, asking for 5 results.
- Firecrawl returned page content (
scrapeOptions) for 32 of the 40 queries. Its free credits ran out before the 8 news queries, so those got titles and descriptions only. - Exa used
type: autowith page text, Tavily ran at bothbasicandadvanceddepth, and DeepSeek usedneed_content: true.
- Firecrawl returned page content (
- Grading. Each query's five result sets were shuffled under anonymous labels and graded blind by an LLM, using a written rubric for each job.
- Every tool's results were cut to the same 1,200-character excerpt: the opening plus the passages that best match the query's words.
- Current-facts answers were checked against official sources on the day, such as python.org, the Federal Reserve and the South African Reserve Bank.
- Fetch. 40 URLs, in four groups of 10: static pages, JavaScript-heavy pages, PDFs and bot-protected sites. For each page I loaded it in Chrome, captured three to five exact sentences from the main content, and checked whether each tool's markdown contained them.
- Crawl. docs.astral.sh/uv and docusaurus.io/docs, limited to 25 pages.
- Single runs. Latency comes from one run per call, on 23 October 2026, so treat it as indicative.
Search results by job
Current facts: Exa found the answer nobody else did
What this tests: whether an agent could answer a factual question correctly from the results alone, when the answer changed recently.
Exa scored 8.4 out of 10 and had the right answer in all 8 result sets. For the Python question in the introduction, all five of its results were python.org pages, including the 3.15.1 release page.
| Firecrawl | Exa | Tavily basic | Tavily advanced | DeepSeek | |
|---|---|---|---|---|---|
| Average score | 6.9 | 8.4 | 6.5 | 6.5 | 7.5 |
| Correct answer present | 7/8 | 8/8 | 7/8 | 7/8 | 7/8 |
For the other tools, the usual problem was stale pages mixed in with current ones. On the South African repo rate, every tool found the current 7.25%, but Tavily basic returned four pages still quoting the old 7%, which would mislead an agent that goes with what most of its sources say.
Breaking news: Exa first, DeepSeek a close second
What this tests: whether each tool surfaces coverage of an event from the last 48 hours, rather than older related stories.
I wrote the 8 news queries on the morning of the test from that week's headlines, such as US jobless claims falling to 194,000 and Nvidia launching its DSX POD.
| Firecrawl* | Exa | Tavily basic | Tavily advanced | DeepSeek | |
|---|---|---|---|---|---|
| Average score | 6.2 | 9.6 | 6.0 | 7.9 | 8.9 |
| Results about the event (of 40) | 30 | 39 | 22 | 32 | 40 |
* Titles and descriptions only, because the free credits ran out.
For the jobless claims query, Exa returned AP, Reuters, CNBC and the Department of Labor's own release, all with the 194,000 figure. DeepSeek also had the figure in every result, though two of its five were Bulgarian and Korean news sites. Tavily basic missed one query entirely, returning pages about AI in India for the Nvidia launch.
Docs lookups for coding agents: Exa, then Tavily
What this tests: whether a coding agent gets the official documentation page, with enough content to write correct code.
| Firecrawl | Exa | Tavily basic | Tavily advanced | DeepSeek | |
|---|---|---|---|---|---|
| Average score | 6.1 | 7.8 | 7.5 | 7.5 | 5.9 |
| Official doc in results | 7/8 | 8/8 | 7/8 | 7/8 | 5/8 |
| Official doc ranked first | 7/8 | 7/8 | 2/8 | 0/8 | 4/8 |
Firecrawl's ranking was as good as Exa's: the official page came first for 7 of 8 queries. Its score suffers because it returns whole pages, and on pages like Stripe's webhook docs the start of the markdown was bot-check and navigation text. Tavily ranked official pages lower, but its short excerpts were cut around the part of each page that matched the query. One query asked about uuidv7, a PostgreSQL function that generates time-ordered IDs. Both Tavily modes returned the line from the official docs that shows how to call it, uuidv7([shift interval]), which is what a coding agent needs to use the function correctly. Exa ranked the same page first, but its excerpt left that line out.
DeepSeek was weakest on docs. For "verify Stripe webhook signature in Node.js", it returned only third-party npm packages and no Stripe docs, and for the uuidv7 query it returned mailing-list threads instead of the documentation page.
Research and "find similar": Exa won all 8
What this tests: open-ended discovery, where a good answer is a list of actual companies, papers or essays rather than articles about them.
Research showed the widest gap in the test: Exa won all 8 queries and returned 33 distinct matching entities. DeepSeek was next with 23, and Firecrawl and both Tavily modes were between 11 and 14.
For "open-source alternatives to Firecrawl for web scraping", Exa returned five GitHub repositories. Both Tavily modes and Firecrawl returned vendor listicles titled "Firecrawl alternatives". For "climate tech startups in Africa that raised funding in 2026", Exa named five startups with 2026 rounds. DeepSeek returned four copies of the same press release about a fund.
Regional and non-English queries: Exa, with DeepSeek on Chinese
What this tests: South African local queries in English, plus queries in Chinese, German, Spanish and Japanese.
| Firecrawl | Exa | Tavily basic | Tavily advanced | DeepSeek | |
|---|---|---|---|---|---|
| Average score | 5.8 | 8.4 | 5.1 | 6.0 | 6.8 |
| Results from the right region and language (of 40) | 32 | 37 | 26 | 30 | 32 |
DeepSeek won the Spanish query outright, and tied with Exa on the Chinese query about the latest AI regulation, with current official Chinese sources. Most other tools leaned on 2023 law-firm summaries. On the German query about a Deutsche Bahn strike, DeepSeek did worst, returning Swiss and Austrian pages that recycled 2024 strike stories. Exa was the only tool to make it clear that there was no current Deutsche Bahn strike.
Every tool found local sources for the South African queries, and Exa and DeepSeek tied on Eskom's 2026 tariff increase.
Search speed and size
| Median search time | Text returned per search (median) | |
|---|---|---|
| DeepSeek | 0.83s | 35,000 characters |
| Exa | 1.48s | 12,800 characters |
| Firecrawl | 1.50s, or 5.79s with page content | 68,000 characters with page content |
| Tavily basic | 2.13s | 5,600 characters |
| Tavily advanced | 3.30s | 8,400 characters |
Payload size matters because an agent pays to read every token. Firecrawl's search returns the full page for each result. Those pages contained the right answer for all 8 current-facts queries, but at around five times Exa's volume, and one search that hit a PDF returned 2.4 million characters.
Fetching pages: Firecrawl returned the most complete markdown
What this tests: give each tool a URL and check whether the returned markdown contains three to five exact sentences captured from the page in Chrome.
| Firecrawl | Tavily | Exa | DeepSeek | |
|---|---|---|---|---|
| Pages with usable content (of 40) | 37 | 32 | 29 | 17 |
| Average share of key facts found | 85% | 74% | 69% | 41% |
| Static pages | 9/10 | 10/10 | 10/10 | 10/10 |
| JavaScript-heavy pages | 10/10 | 8/10 | 6/10 | 4/10 |
| PDFs | 10/10 | 9/10 | 9/10 | 0/10 |
| Bot-protected pages | 8/10 | 5/10 | 4/10 | 3/10 |
| Median time | 1.45s | 1.32s | 0.41s | 7.42s |
Firecrawl got content from Zillow, G2, Glassdoor and Takealot, which Tavily failed outright. It refused two sites by policy: Instagram returned "we do not support this site", and a LinkedIn company page needs a separate enrichment setting turned on. The South African government site returned a server error to Firecrawl twice, while it loaded normally in a browser.
Exa was the fastest by a wide margin, probably because it can serve pages from its own index rather than loading them live. Its index also caught it out once: for the 100-page GPT-4 technical report, it returned a citation record with the author list and references instead of the paper.
DeepSeek returned a 404 for every PDF, which its docs list as the response for unsupported content types. On static pages it found 96% of the key facts, but its median fetch took 7.4 seconds.
Crawling a docs site: Firecrawl vs Tavily
What this tests: crawl a documentation site and return 25 pages. Exa and DeepSeek don't offer crawling.
| docs.astral.sh/uv | docusaurus.io/docs | |
|---|---|---|
| Firecrawl | 25/25 pages, all on the docs site, 19.5s | 25/25 pages, all on the docs site, 28.2s |
| Tavily, depth 2 | 23 to 24 pages per run, but only 4 on the docs site | 25 pages on 1 of 3 runs, nothing on the other 2 |
| Tavily, "stay on this site" | 1 page, 3 of 3 runs | 0 pages, 3 of 3 runs |
Tavily's crawl followed links off the site by default, into GitHub and the documentation theme's own site. Its allow_external: false option, which should keep it on the site, returned at most one page in every run. Tavily's map endpoint found the right 20 to 25 URLs on both sites, so it can discover the pages, and the failure is in the crawl step.
Each Firecrawl crawl cost 25 credits, and I only ran it once per site because the free credits had run out. Tavily's empty runs weren't billed.
Firecrawl, Tavily, Exa and DeepSeek pricing: is Firecrawl free?
All four are free to start except DeepSeek. Prices below were checked on 23 October 2026, in US dollars.
| Firecrawl | Exa | Tavily | DeepSeek | |
|---|---|---|---|---|
| Free plan | 1,000 credits a month, no card | $10 credit a month, plus a one-time $10 for onboarding, no card | 1,000 credits a month, no card | None. Minimum top-up $2 |
| Search | 2 credits per 10 results, plus 1 credit per scraped result | $7 per 1,000 (auto), up to 10 results | 1 credit (basic) or 2 credits (advanced) | $0.75 per 1,000, up to 50 results |
| Fetch | 1 credit per page, plus 1 per PDF page | $1 per 1,000 pages | 1 credit per 5 URLs (basic) | $0.75 per 1,000 |
| Paid entry point | Hobby: $19 a month for 5,000 credits | Pay as you go | $0.008 per credit, or Project at $30 a month for 4,000 credits | Pay as you go |
Firecrawl charges per PDF page
The free plan's 1,000 credits went much faster than I expected. The 194-page RFC 9110 PDF cost 194 credits on its own, and the GPT-4 technical report cost 100. The 10 PDFs used 564 credits, more than half the month's allowance. Firecrawl's billing docs do list this, as an extra credit per PDF page, but it's easy to miss when the headline is "1 credit per page". By the end of the test, Firecrawl had used 992 of its 1,000 free credits.
The others used much less:
- Tavily: 194 of its 1,000 credits.
- Exa: $0.32 of $20.
- DeepSeek: $0.05 of my $2 top-up.
What 1,000 searches costs
| Cost per 1,000 searches | |
|---|---|
| DeepSeek | $0.75, with page content included |
| Exa | $7 with up to 10 results; page text is billed at $1 per 1,000 pages |
| Tavily | $8 (basic) or $16 (advanced), pay as you go |
| Firecrawl | About $7.60 for links and descriptions only on Hobby; about $26.60 with 5 scraped pages, more if a result is a PDF |
DeepSeek Search API: what you need to know
DeepSeek's Search and Fetch APIs launched on 17 October 2026. Each is a single POST to api.deepseek.com/v1/tools/search or /v1/tools/fetch with your API key.
- Search results carry more than the others' do. Each result has a short snippet, a summary of around 600 to 800 characters, the full page if you ask for it, a publication date, an
authorityscore from 0 to 4 and arerank_scorefrom 0 to 3. - Price doesn't change with result count. Asking for 50 results costs the same $0.75 per 1,000 as asking for 1. Failed and empty calls aren't billed.
- Queries are capped at 128 characters. That's fine for keyword search, but too short for a long natural-language question.
- It doesn't de-duplicate URLs. For "Firecrawl Hobby plan price", it returned Firecrawl's pricing page three times, each with a different affiliate code in the URL. Across 40 queries it returned 7 duplicates, the most of the four.
- Your data is stored in China. DeepSeek's privacy policy says it stores personal data in the People's Republic of China, and that it shares search keywords with unnamed third-party search APIs. A Search Engine Journal report notes that a provider called Bocha names itself as DeepSeek's web search supplier. Check this with your compliance team before sending customer queries.
Using DeepSeek search inside Claude Code
DeepSeek's docs say its search is free until 1 November when called through Claude Code, Codex or DeepSeek's own harness. That works by pointing Claude Code at DeepSeek's API, so DeepSeek's model replaces Claude in that session. I tried it first, and it isn't the same as using the API:
- Claude Code's WebSearch tool passed only titles and URLs to the model, without DeepSeek's summaries, page content or scores.
- WebFetch fetched the page itself rather than calling DeepSeek's Fetch API. Asked for a Paul Graham essay verbatim, it returned a summary instead, saying quotations were limited to 125 characters.
- The search calls were free, but the model's tokens weren't, and a new account has no starting balance. My first attempt failed with
402 Insufficient Balanceuntil I topped up.
If you want DeepSeek's results in an agent, call the API directly.
Using them with AI agents
All four publish an llms.txt file for coding agents to read. Firecrawl, Exa and Tavily each have an official MCP server that covers search and fetch. Firecrawl's and Tavily's servers also cover crawling. I couldn't find an MCP server from DeepSeek. For deeper agent setup testing of two of these tools, see Firecrawl vs Tavily.
Which should you use?
- Search for an AI agent: Exa. It won on current facts, news, research and non-English queries, and its results are compact enough to put straight into context.
- Reading specific URLs, PDFs or protected pages: Firecrawl. It returned usable content from the most pages and handled every PDF. Budget for PDFs, which cost a credit per page.
- Crawling a whole site: Firecrawl. Tavily's crawl wandered off-site or came back empty in our runs.
- Lowest cost at high volume: DeepSeek, if your queries are public data and data stored in China is acceptable. It was fast and fresh on news, but weaker on docs lookups and it can't fetch PDFs.
- Smallest, cheapest results to feed a model: Tavily. Its basic search returned about 5,600 characters and did well on docs lookups, though it didn't win any category outright in our tests.
Frequently asked questions
How much does Firecrawl cost?
Firecrawl's free plan gives you 1,000 credits a month without a card, and Hobby costs $19 a month for 5,000 credits. A search costs 2 credits per 10 results, a page costs 1 credit, and each PDF page costs another credit, so long PDFs use credits fast.
Is there a free web search API?
Three of the four have free plans with no card: Tavily gives 1,000 credits a month, Firecrawl 1,000 credits a month, and Exa $10 of credit a month. DeepSeek has no free tier for direct API calls.
What are the best alternatives to Firecrawl?
For search, Exa returned better results in our tests, and DeepSeek is much cheaper. For turning pages into markdown, none of the alternatives we tested matched Firecrawl: Tavily found 74% of the key facts, Exa 69% and DeepSeek 41%, against Firecrawl's 85%.
Is Tavily search better than Exa search?
No. Exa produced the best results for 31 of our 40 queries, against 7 for Tavily basic and 5 for Tavily advanced, and it scored higher on every type of query. Tavily came closest on docs lookups, where it averaged 7.5 against Exa's 7.8.