Tavily vs Exa vs Serper vs API Pick: qual API de Web Search escolher para LLMs?

Tavily, Exa, Serper e API Pick prometem ser a camada de busca do seu LLM. Diferem bastante em formato de saída, filtros e cobrança. Um comparativo de quem coloca agentes em produção.
TL;DR
- •Você quer um endpoint RAG hospedado que devolve um blob pronto para LLM → Tavily (com seu ranking opaco e piso mensal).
- •Descoberta semântica, frescor menos importante → Exa (atenção ao orçamento em escala).
- •SERP do Google em estado bruto, você faz a limpeza → Serper.
- •JSON já formatado, preço por chamada transparente, filtros país/data e cobrança só no HTTP 200 → API Pick Web Search.
O que 'API de Web Search para LLMs' realmente significa
APIs de busca genéricas (Google Custom Search, Bing Web Search, SerpAPI) devolvem uma SERP — os mesmos links azuis e rich snippets que um humano veria. Para um modelo, esse formato está errado. Um agente não quer parsear uma SERP: ele quer uma pequena lista ranqueada de títulos, URLs e trechos de texto limpos que possa citar diretamente na janela de contexto. As quatro APIs aqui prometem isso, mas fazem trade-offs diferentes em como resolvem.
Vamos comparar em cinco eixos práticos: formato de saída, filtros, modelo de preços, ergonomia de integração e o que elas não fazem.
As concorrentes, em um parágrafo cada
Tavily
RAG hospedado como serviço. tavily.search devolve snippets ranqueados; tavily.qna combina busca com uma resposta rápida de LLM. Encaixa bem em assistentes de chat onde você quer 'dar ao modelo um blob pronto para responder'. Baseado em assinatura com créditos de uso.
Exa (antiga Metaphor)
Índice neural / semântico. Desenhado para 'encontre URLs parecidas com esta URL' e ranking por embeddings, com opções de recuperar highlights ou conteúdo completo. Mais forte quando o frescor importa menos que a similaridade temática. Assinatura com créditos excedentes.
Serper
API de SERP do Google em estado bruto. Devolve o formato JSON de uma página real de resultados (organic, knowledge graph, places, videos). A limpeza dos snippets e o ranking ficam por sua conta. Barato por consulta, mas a camada de formatação para LLM é você quem entrega.
API Pick Web Search
Busca web semântica pay-as-you-go já formatada para tool calling de LLM. POST /api/search/web devolve 5 (no máximo 10) resultados ranqueados com títulos, URLs e snippets pré-limpos, mais filtros opcionais country_code e start_date/end_date. 15 créditos por chamada (~$0,015), descontados só no sucesso.
Lado a lado
| Tavily | Exa | Serper | API Pick | |
|---|---|---|---|---|
| Formato de saída | Snippets ranqueados + resposta LLM opcional | URLs ranqueadas + highlights/conteúdo | JSON SERP do Google | title + URL + snippet LLM-friendly |
| Filtro de país | Sim | Limitado | Sim | Sim (country_code) |
| Filtro de data | Sim | Sim | Sim (qdr) | Sim (start_date / end_date) |
| Endpoint de tool-schema | — | — | — | Sim — GET /api/search/web/tool-schema |
| Modelo de preços | Assinatura + créditos | Assinatura + créditos | Por consulta | Pay-as-you-go, $5 / 5 mil |
| Cobra na falha? | Varia | Varia | Sim | Não — só no HTTP 200 |
| Melhor encaixe | RAG hospedado / assistentes de chat | Descoberta semântica / similaridade | Pipelines SERP próprios | Tool calling de agentes de IA, pipelines RAG |
Formato de saída: a parte que mais importa
A razão de esta categoria existir é que LLMs não conseguem raciocinar bem sobre um blob de HTML de SERP; raciocinam sobre texto curto, nomeado e ranqueado. Por isso o maior preditor isolado de se uma API de busca funciona bem como tool de agente é: quão limpo é o snippet?
Tavily e API Pick limpam os snippets de forma agressiva. A Exa devolve highlights ou conteúdo conforme as flags — tudo bem, mas você decide quanto pedir. O Serper te entrega a SERP bruta e assume que você vai rodar um extrator em seguida. Isso é uma escolha razoável se você já opera um extrator de conteúdo; caso contrário, é trabalho escondido.
Com a API Pick, uma resposta típica é assim:
{
"results": [
{
"title": "Retrieval-augmented generation - Wikipedia",
"url": "https://en.wikipedia.org/wiki/Retrieval-augmented_generation",
"snippet": "Retrieval-augmented generation (RAG) is a technique that combines\nsearch with text generation, often using vector search to ground LLM\nanswers in retrieved documents."
}
/* …more */
],
"result_count": 5,
"credits_used": 15,
"remaining_credits": 985
}Esse formato cai direto numa resposta de function calling sem parsing adicional.
Filtros: país e recência
Duas dimensões de filtro importam para agentes em produção:
- País / locale: um agente financeiro no Reino Unido não deveria receber só fontes dos EUA por padrão.
- Faixa de datas: um agente de pesquisa de mercado perguntando 'o que aconteceu esta semana' precisa rejeitar qualquer coisa com mais de 7 dias.
As quatro expõem alguma forma das duas, mas a expressividade varia. A API Pick usa datas ISO (start_date="2026-04-01"), o que é inequívoco, contra os buckets mais grosseiros do Google em qdr (última hora / dia / semana / mês).
Modelo de preços: assinatura vs pay-as-you-go
APIs por assinatura (Tavily, Exa) funcionam bem quando você tem tráfego previsível e estável. Ficam incômodas em três padrões comuns:
- Você está prototipando e não quer um compromisso mensal.
- Seu tráfego é em rajadas (ex.: um agente de pesquisa que roda em lotes).
- Você constrói agentes que fazem retry agressivo em falhas parciais.
A API Pick usa um modelo de créditos — $5 compram 5.000 créditos; a Web Search custa 15 créditos por chamada; os créditos nunca expiram e são descontados só em respostas HTTP 200. Essa última cláusula importa mais do que parece: um loop de agente que faz retry cinco vezes num 502 transitório custa zero, não 5×.
Ergonomia de integração
A integração de menor atrito é aquela em que você cola um JSON de tool schema no código do seu agente sem escrever um wrapper. A API Pick publica schemas prontos para uso:
# OpenAI function tool schema
curl https://www.apipick.com/api/search/web/tool-schema
# Returns OpenAI tool definition + Claude tool use definitionCom OpenAI Assistants:
from openai import OpenAI
import requests
client = OpenAI()
schema = requests.get("https://www.apipick.com/api/search/web/tool-schema").json()
assistant = client.beta.assistants.create(
name="Research Agent",
model="gpt-4o",
tools=[{"type": "function", "function": schema["openai"]}],
)Com Claude tool use:
import anthropic
import requests
schema = requests.get("https://www.apipick.com/api/search/web/tool-schema").json()
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=[schema["claude"]],
messages=[{"role": "user", "content": "What's new in RAG research this week?"}],
)O que nenhuma dessas APIs faz
Nenhuma API de busca web vai responder com confiabilidade 'tudo deste domínio desde 2019'. Para cobertura de arquivo profundo você ainda precisa combinar a busca com um crawler focado ou um dataset específico de domínio. Nenhuma delas deduplica perfeitamente URLs muito parecidas. E nenhuma resolve o problema a montante de uma fonte obsoleta ou de baixa autoridade — essa é uma decisão de qualidade de conteúdo que seu agente tem de tomar.
Escolhendo rápido
Perguntas Frequentes
Qual tem o melhor preço por chamada?
Depende do modelo. A API Pick Web Search custa 15 créditos por chamada (≈ $0,015 ao preço de $5 / 5.000 créditos) e só cobra no HTTP 200. Tavily e Exa usam assinaturas mensais com créditos excedentes; o Serper cobra por consulta. Se seu tráfego é em rajadas ou você refaz chamadas em falhas durante retries do agente, o modelo 'só no sucesso' costuma vencer no gasto real.
Todas funcionam com OpenAI function calling e Claude tool use?
Sim. Todas são JSON in / JSON out, então você pode envolver qualquer uma como tool. A API Pick ainda publica um endpoint de tool-schema (GET /api/search/web/tool-schema) com definições prontas para colar de OpenAI function e Claude tool use.
A API Pick é um wrapper do Tavily?
Não. A API Pick executa sua própria agregação de índice, ranking e formatação de snippets. O formato é deliberadamente mais simples que o do Tavily: title + URL + snippet LLM-friendly, com filtros opcionais country / date. Você chama POST /api/search/web diretamente, sem camada RAG hospedada.
E quanto à latência?
As quatro são pensadas para chamadas síncronas de agente. O P50 para consultas curtas é sub-segundo. A diferença real está em saber se o endpoint encadeia uma chamada de LLM por dentro — APIs de busca puras sempre são mais rápidas que endpoints 'search + answer'.
Qual é a melhor alternativa ao Tavily?
Se você está saindo do Tavily por causa do piso mensal ou do custo opaco nos excedentes, a API Pick Web Search é o substituto pay-as-you-go mais próximo: mesmo formato (JSON ranqueado com snippet), filtros país/data, sem mínimo mensal.
APIs usadas neste artigo
Sarah Choy é a CEO da API Pick. Ela escreve sobre a construção de APIs prontas para produção para agentes de IA e fluxos de trabalho com LLMs.