Agent Primitive

Benchmarking Tavily, Telnyx, DuckDuckGo, and Brave for agent workflows

We ran 20 queries through Tavily, Telnyx Web Search, DuckDuckGo, and Brave. Brave was fastest at 561ms avg with zero errors. Tavily returned the richest snippets. DuckDuckGo failed 8 out of 20 times.

An agent that cannot look things up answers from memory. Memory goes stale. It hallucinates pricing, cites outdated docs, and confidently answers questions the world has already moved past. If you are building agents, at some point you will wire in web search, and then you will have to pick one.

We picked wrong once. We wired a search provider into an internal agent, paid for a separate account, managed a second API key, and waited on latency every time the agent needed a fact. When we built the Web Search API to fix that for our own agents, we needed to know whether it could hold up against the standalone providers developers actually use. So we benchmarked it.

We benchmarked four APIs: Tavily, Brave, DuckDuckGo, and Telnyx Web Search. We ran twenty queries across five categories, from competitive intelligence to domain-filtered technical lookups, and compared latency, snippet depth, coverage, reliability, and cost.

What we tested

  1. Competitive intelligence (4 queries), pricing and product searches for Vapi, ElevenLabs, Retell, and Deepgram
  2. General knowledge (4 queries), SIP trunking, WebRTC codecs, STIR/SHAKEN, and Kubernetes autoscaling
  3. Freshness-sensitive (4 queries), voice AI news, TTS releases, Twilio earnings, and startup funding
  4. Technical (4 queries), OpenAI Realtime API, Python async HTTP, Postgres replication, and Cloudflare versus Lambda
  5. Domain-filtered (4 queries), searches restricted to github.com, docs.telnyx.com, arxiv.org, and reddit.com

Each query went to all four APIs with identical parameters. Latency was measured end to end from one machine, one run per query. Client-side routing layers, proxy hops, and network paths differ between APIs, so treat the latency numbers as relative to this setup rather than absolute provider speed.

Fast search matters on a live path

Brave returned results in an average of 561ms across all 20 queries with zero errors. The slowest single query was 908ms. The fastest was 361ms.

Telnyx averaged 1,027ms, also with zero errors. The slowest was 1,236ms. The fastest was 638ms.

DuckDuckGo averaged 2,328ms, but with high variance. The fastest query returned in 319ms. The slowest took 3,830ms. Eight queries errored out entirely with an intermittent connection protocol error.

Tavily averaged 4,452ms. The slowest query took 5,543ms. The fastest took 3,818ms. Zero errors.

A portion of Tavily's measured latency comes from the proxy rather than Tavily itself. Tavily's response_time field was about 1.1 seconds in these runs, putting a direct request closer to 1,000 to 1,500ms. Brave and Telnyx were both faster here. The claim we can defend is that they were faster in our setup.

DuckDuckGo is in the middle on speed but is not reliable enough for production. Eight out of twenty queries failed with no retry path. For a free baseline, it is usable. For an agent that needs to answer a user, it is a liability.

When a user is waiting on a live path, the difference between 500ms and 4,000ms is noticeable. In background research or batch workflows, latency matters less.

MetricTavilyTelnyxDuckDuckGoBrave
Average latency4,452ms1,027ms2,328ms561ms
Minimum latency3,818ms638ms319ms361ms
Maximum latency5,543ms1,236ms3,830ms908ms
Errors (out of 20)0080

Tavily can save the second fetch

Telnyx returned 10 results per query consistently, totaling 190 results across 20 queries. Tavily returned 4 to 10 results per query, averaging 8.3, totaling 167. Brave returned 10 on most queries, averaging 8.1, totaling 161. DuckDuckGo returned 0 to 10, averaging 6.0, totaling 120.

Tavily's strongest advantage is snippet depth. Tavily snippets average 1,081 characters, enough text to answer many questions without fetching the full page. Telnyx snippets average 322 characters. Brave averages 257. DuckDuckGo averages 220, barely a sentence. To get full page content from Telnyx, you need a follow-up call to /v1/contents. From Brave or DuckDuckGo, you would need to fetch every page yourself.

The practical difference is that one search call can sometimes give the agent enough text to answer on its own. With Telnyx, the agent typically searches first, then calls /v1/contents for the pages it picked. That is a better path when the agent needs speed and control over what it reads next. It is extra work when the answer was already sitting in Tavily's result.

Brave and DuckDuckGo force the second fetch every time because their snippets are too short to answer from.

MetricTavilyTelnyxDuckDuckGoBrave
Average snippet length1,081 chars322 chars220 chars257 chars
Total snippet characters180,54161,26526,48641,464

The results are not interchangeable

Across all 20 queries, Tavily and Telnyx shared 37 URLs in common. Tavily returned 125 URLs that Telnyx did not. Telnyx returned 153 URLs that Tavily did not. Brave and DuckDuckGo returned different sets again, with even less overlap to either.

That is a 13% exact-URL overlap between Tavily and Telnyx. The sample is too small to rank either index, but big enough to show that treating all four APIs as one source of web coverage is wrong.

If you are doing competitive research or source discovery, querying two APIs and deduplicating the results is reasonable. For an ordinary lookup, it is probably overkill. Four APIs is almost certainly overkill unless missing a source is genuinely expensive.

MetricTavilyTelnyxDuckDuckGoBrave
Total URLs returned167190120161
Avg results per query8.39.56.08.1
Total unique domains132130111129
Tavily-Telnyx URL overlap37 shared

The tradeoff an agent actually sees

Latency alone gives the wrong answer. Brave clusters at the fast end with short snippets, similar to Telnyx. Telnyx takes roughly twice as long but returns more results. Tavily takes longer but often gives the model far more to work with immediately. DuckDuckGo is fast on some queries but its snippets are uniformly thin and it fails often. The real choice is between a first call rich enough to answer from and a fast call followed by a second retrieval step. Which one wins depends on whether that second step costs less than the saved latency.

Pricing changes the default

Tavily uses a credit-based pricing model. Basic search costs 1 credit, advanced search costs 2 credits. At pay-as-you-go rates ($0.008/credit), 1,000 basic searches cost $8. On the Growth plan ($500/month for 100,000 credits), the effective rate drops to $5 per 1,000 searches.

Telnyx Web Search costs $5 per 1,000 calls, billed through the Telnyx account you already have. No new billing relationship.

DuckDuckGo is free and unlimited, but you pay for it in reliability and depth.

Brave charges $0.003 per query after the free tier. At 10,000 queries per month, that is $30. At 100,000, it is $300. It is the cheapest paid option and the fastest, with zero errors in our test.

OperationTavilyTelnyxDuckDuckGoBrave
Basic search1 credit ($0.005-$0.008)$5 / 1K callsFree$0.003/query
Advanced search2 credits ($0.010-$0.016)N/AN/AN/A
Page extract1 credit per 5 URLs$5 / 1K callsN/A (fetch yourself)N/A
Deep research15-250 credits$5 / 1K callsN/AN/A
Cost per 1K searches$5-$8$5$0$3
Pricing modelCredit-based$5 / 1K callsFree (unofficial)$0.003 / query

Where Tavily has more surface area

FeatureTavilyTelnyxDuckDuckGoBrave
Web searchYesYesYes (unofficial)Yes
Domain include filterYesYesNo (post-filter only)No (post-filter only)
Domain exclude filterYesYesNoNo
Include + exclude togetherYesNo (returns 400)NoNo
Freshness filterYesYesNoNo
Country filterNoYesNoYes
Safesearch filterNoYesNoYes
LivecrawlYesYes (fixed)NoNo
Page extract (HTML/Markdown)YesYesNoNo
Batch extractUp to 20 URLsUp to 20 public, 50 internalNoNo
Deep research with citationsYesYesNoNo
Background research pollingNoYes (task_id polling)NoNo
Answer generationYesNoNoNo
Raw content in search resultsYesNoNoNo
Image searchYesNoNoYes
Provider abstractionNoYes (swappable backend)NoNo
AuthenticationSeparate API keyTelnyx API key (shared with voice, messaging)None (unofficial)Separate API key
Reliability (errors/20)0080

Reliability across all four APIs

Tavily completed all 20 queries with zero errors. Telnyx completed all 20 with zero errors. Brave completed all 20 with zero errors. DuckDuckGo failed on 8 of 20.

The DuckDuckGo failures all came from the same source: the ddgs library scrapes DuckDuckGo's unofficial endpoint, and there is no retry path or error message a caller can handle gracefully. A free baseline can absorb that. An agent answering a user cannot.

If your agent retries on failure, DuckDuckGo's effective error rate drops. If it does not, Tavily, Telnyx, and Brave are the three APIs that completed every query on the first try in this test.

Which one would I use

Use Brave when you need the fastest reliable search and can tolerate thin snippets. At $0.003 per query, it is the cheapest paid option and the fastest in this benchmark. Zero errors across 20 queries. The tradeoff is no page extract, no answer generation, and no background research polling.

Use Telnyx Web Search when you need fast search with a Telnyx API key or want background research with async polling. At $5 per 1,000 calls it is cheaper than Tavily and lands on the same bill as your voice, messaging, and inference usage.

Use Tavily when you need the search response to carry enough context to answer without a follow-up fetch, want answer generation or image search, or need combined include and exclude domain filters. Its 1,081-character average snippet length meant the agent could often work from the result itself.

Use DuckDuckGo when cost is the only constraint and you can tolerate failures. It is free and fast on a good day, but eight out of twenty queries failed, its snippets are too short to answer from, and it does not support domain filtering, freshness, or any structured parameters.

Use two of them when missing a source is more expensive than another request. This sample returned materially different pages from each provider. For competitive intelligence, that can be worth the added latency and credits. Brave plus Tavily covers speed and depth. Telnyx plus Tavily covers depth on one bill. Adding DuckDuckGo to any pair adds little; the other three cover its use cases.

What this benchmark does not prove

This was 20 queries across five categories, one run per query per API, measured from a single machine. URL overlap uses exact URL-string matching. Snippet length is the character count of the primary result field. Each API was called through its standard client path. The latency result belongs to this setup. Telnyx ran the benchmark and paid for Tavily. DuckDuckGo and Brave were free.

This benchmark does not settle index quality for good. It shows the decision agent builders actually have to make: get more context from the first search call, get a fast result and decide what to read next, or get a free result and accept that it will be thin and occasionally absent.

Learn more: Web Search API product page | Developer docs

Share on Social
Abhishek Sharma
Abhishek Sharma
Sr Technical Product Marketing Manager

Senior Technical Product Marketing Manager