# AI search: which services coding agents choose

> Anthropic web search led with about 20%, and no service ran away with it.

Source: https://armature.tech/leaderboards/ai-search (Armature agent leaderboards). 277 runs, 12 apps, 3 agents, 4 personas, updated 2026-09-14. Interactive board with every run: https://armature.tech/leaderboards#app/ai-search

## Key learnings

We asked three coding agents to get live web information into 12 codebases, 277 runs in all. We put the same task in different words, and asked as four different people. The rest of the wins spread thin across many services.

### Each agent had a different favourite (22 of 96)

Claude Code picked Anthropic web search in 55 of its 92 runs. Codex picked Exa most often, 22 times. Cursor picked Tavily most often, 15 times.

### New wording, new answer (33 of 36)

A case here is one codebase with one agent, asked several times in different words and as different people. In 33 of 36 cases the runs did not all land on the same service.

### One agent leaned on its own maker (60%)

Claude Code chose Anthropic web search, sold by the company that makes it, in about 60% of its runs. Codex chose OpenAI web search in about 15% of its runs.

### Named often, picked never (0 of 62)

SerpApi came up in 62 runs and won none of them.

Smaller learnings:

- The agents wrote the code themselves instead of picking a service in 13 runs, about 5%.
- The simulated user, who has to approve each plan, sent the agent back at least once in 107 of 277 runs.
- In 18 runs it refused to approve until the agent named a specific service.
- Enterprise teams split almost evenly between Brave Search API and NewsAPI.ai, with eight wins each.
- Mistral web search won seven times, all of them in one Go codebase for supplier screening.

## The ranking

| # | Product | Wins | Share |
|---|---|---:|---:|
| 1 | Anthropic web search (anthropic.com) | 56 | 20% |
| 2 | Exa (exa.ai) | 38 | 14% |
| 3 | Brave Search API (brave.com) | 31 | 11% |
| 4 | Tavily (tavily.com) | 21 | 8% |
| 5 | OpenAI web search (openai.com) | 16 | 6% |
| 6 | Firecrawl (firecrawl.dev) | 14 | 5% |
| 7 | Parallel (parallel.ai) | 13 | 5% |
| 8 | Built in-house (outcome) | 13 | 5% |
| 9 | NewsAPI.ai (newsapi.ai) | 11 | 4% |
| 10 | Perplexity Sonar (perplexity.ai) | 9 | 3% |
| 11 | Bing grounding (azure.microsoft.com) | 7 | 3% |
| 12 | Mistral web search (mistral.ai) | 7 | 3% |
| 13 | Linkup (linkup.so) | 6 | 2% |
| 14 | Perigon (perigon.io) | 5 | 2% |
| 15 | Apify (apify.com) | 4 | 1% |
| 16 | NewsAPI (newsapi.org) | 4 | 1% |
| 17 | Programmable Search (developers.google.com) | 3 | 1% |
| 18 | GDELT (gdeltproject.org) | 2 | 1% |
| 19 | Google Search grounding (ai.google.dev) | 2 | 1% |
| 20 | Vertex AI Search (cloud.google.com) | 2 | 1% |
| 21 | NewsCatcher (newscatcherapi.com) | 2 | 1% |
| 22 | Azure AI Search (azure.microsoft.com) | 1 | 0% |
| 23 | World News API (worldnewsapi.com) | 1 | 0% |
| 24 | PageCrawl (pagecrawl.io) | 1 | 0% |
| 25 | Unilog (unilogcorp.com) | 1 | 0% |
| 26 | Distributor Data Solutions (DDS) (distributordatasolutions.com) | 1 | 0% |
| 27 | GNews (gnews.io) | 1 | 0% |
| 28 | Kagi (kagi.com) | 1 | 0% |

## By agent

- Codex (GPT-5.6 Sol): 96 runs, first Exa (22), then OpenAI web search (14)
- Claude Code (Claude Opus 5): 92 runs, first Anthropic web search (55), then Brave Search API (10)
- Cursor (Grok 4.6): 89 runs, first Tavily (15), then Exa (12)

## By persona

- Junior developer: 117 runs, first Anthropic web search (25), then Exa (19)
- Senior engineer: 68 runs, first Anthropic web search (16), then Parallel (10)
- Enterprise team: 48 runs, first Brave Search API (8), then NewsAPI.ai (8)
- Vibe coder: 44 runs, first OpenAI web search (10), then Anthropic web search (10)

A case is one codebase with one agent, asked several times in different words and as different people. 33 of 36 cases did not hold to a single choice.

## How this was measured

Every number on this page comes from a controlled experiment. We took 12 small applications, asked 3 coding agents (Codex (GPT-5.6 Sol), Claude Code (Claude Opus 5), Cursor (Grok 4.6)) to get live web information into each of them, in several wordings and as a junior developer and senior engineer and enterprise team and vibe coder, and let the agent choose the product. Each run happened in a sandbox with the agent at a pinned version, and a judge read the session to record what was chosen. That is 277 runs. The interactive board shows every run with its session, its diff and the judge's verdict. A simulated user stood in for the owner of the codebase: it read the agent's plan and had to approve it before any code was written; it sent the agent back at least once in 107 runs.

Methodology and publications: https://armature.tech/publications

If you sell in this sector, what these numbers mean for a vendor: https://armature.tech/library/ai-search-coding-agents-playbook (Markdown: https://armature.tech/library/ai-search-coding-agents-playbook.md)

## Other sectors

- [Agent sandboxes](https://armature.tech/leaderboards/sandboxes) (https://armature.tech/leaderboards/sandboxes.md)
- [Observability](https://armature.tech/leaderboards/observability) (https://armature.tech/leaderboards/observability.md)
- [Payments](https://armature.tech/leaderboards/payments) (https://armature.tech/leaderboards/payments.md)
- [Deploy](https://armature.tech/leaderboards/deploy) (https://armature.tech/leaderboards/deploy.md)
- [Auth](https://armature.tech/leaderboards/auth) (https://armature.tech/leaderboards/auth.md)
- [Email providers](https://armature.tech/leaderboards/mail) (https://armature.tech/leaderboards/mail.md)
- [Product analytics](https://armature.tech/leaderboards/product-analytics) (https://armature.tech/leaderboards/product-analytics.md)
- [Databases](https://armature.tech/leaderboards/databases) (https://armature.tech/leaderboards/databases.md)
- [File storage](https://armature.tech/leaderboards/storage) (https://armature.tech/leaderboards/storage.md)
- [LLM evals & observability](https://armature.tech/leaderboards/evals) (https://armature.tech/leaderboards/evals.md)
- [Voice Agents](https://armature.tech/leaderboards/voice-agents) (https://armature.tech/leaderboards/voice-agents.md)
- [Serverless functions](https://armature.tech/leaderboards/serverless) (https://armature.tech/leaderboards/serverless.md)
- [Cloud](https://armature.tech/leaderboards/cloud) (https://armature.tech/leaderboards/cloud.md)
- [AI gateway](https://armature.tech/leaderboards/ai-gateway) (https://armature.tech/leaderboards/ai-gateway.md)
- [Bot protection](https://armature.tech/leaderboards/bot-protection) (https://armature.tech/leaderboards/bot-protection.md)
- [Search](https://armature.tech/leaderboards/search) (https://armature.tech/leaderboards/search.md)
- [Agent frameworks](https://armature.tech/leaderboards/agent-frameworks) (https://armature.tech/leaderboards/agent-frameworks.md)
- [Performance in CI](https://armature.tech/leaderboards/perf-ci) (https://armature.tech/leaderboards/perf-ci.md)
- [Usage-based billing](https://armature.tech/leaderboards/usage-based-billing) (https://armature.tech/leaderboards/usage-based-billing.md)
- [Code review](https://armature.tech/leaderboards/code-review) (https://armature.tech/leaderboards/code-review.md)
- [Internationalization](https://armature.tech/leaderboards/internationalization) (https://armature.tech/leaderboards/internationalization.md)
- [Maps](https://armature.tech/leaderboards/maps) (https://armature.tech/leaderboards/maps.md)
- [In-app chat & calls](https://armature.tech/leaderboards/in-app-communication) (https://armature.tech/leaderboards/in-app-communication.md)
- [Vector search](https://armature.tech/leaderboards/vector-search) (https://armature.tech/leaderboards/vector-search.md)
