Documentation
Web search
Five search vendors behind one endpoint shape, from 1¢ per query: Exa (semantic, the default), Brave (independent index), Tavily (RAG-tuned), Linkup (cited answers), and Parallel (second source + deep async research). This page is the per-vendor reference; for one call that orchestrates all of them, see SuperSearch.
When to use which
| Need | Call | Price | Pick when |
|---|---|---|---|
| General semantic search | exa/search | 1¢ | The default. Best recall, date/domain filters, inline content. |
| Independent-index corroboration | brave/search · brave/news | 1¢ | Brave runs its own 20B+ page crawler — the one major non-Google index. |
| RAG-ready results + synthesized answer | tavily/search | 1¢ | Per-result relevance scores; include_answer for a sourced answer. |
| Cited answer in one call | linkup/search | 1¢ | sourcedAnswer or structured output instead of links. |
| Multi-hop agentic search | linkup/deep-search | 5¢ | Only after one-pass search comes back thin. |
| Second source, vendor diversity | parallel/search | 1¢ | Dedupe against Exa in a multi-vendor pipeline. |
| Deep multi-step research | parallel/task | 10–30¢ | Async; poll parallel/task-status for free. |
Routing rules that hold up under measurement: start with Exa, always. For time-critical or important queries, fire Exa and Brave concurrently and take the first (or both) — they have different indexes and different cache profiles (Brave is the fastest engine when cold). Use Linkup when you want a cited answer rather than links, and reserve deep research tiers for questions a single search genuinely can’t answer.
exa/search
- Price
- 1¢
- Latency
- fast (~0.1s warm)
- Results
- up to 100 per call
Agent-native semantic search — the default “find me pages about X” tool. Semantic recall plus date/domain filters plus inline page content in the same call.
curl -X POST https://vaaya.ai/api/run/exa/search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "latest developments in WebTransport API",
"type": "auto",
"numResults": 10,
"contents": { "text": true },
"start_published_date": "2026-01-01"
}'Optional filters: start_published_date / end_published_date (ISO dates), include_domains / exclude_domains, category (news, research, github, people, company). type accepts auto, neural, keyword, deep-lite, deep, deep-reasoning.
Finding people by ICP
Set category: "people" and phrase an open natural-language query — role + seniority + industry + company size + geography, e.g. "VP Sales at fintech companies with 21-100 employees in India — LinkedIn profiles". This is the primary people-discovery path for GTM work.
Gotchas
- Without a date filter, neural search returns stale results for “recent” queries — always add
start_published_datefor recent-event queries. - The
peopleandcompanycategories don’t support date orexclude_domainsfilters. numResultsgoes up to 100 — use a large value for broad people/lead sweeps instead of paging.- Already have the URLs?
exa/contents(0.1¢/URL per content field) is the cheap extraction path — see Web scraping.
brave/search and brave/news
- Price
- 1¢
- Latency
- fast — the fastest engine when cold
- Index
- Brave’s own 20B+ page crawler
The corroboration source outside the semantic engines and the Google ecosystem. Snippets only — chain a scrape for full text.
curl -X POST https://vaaya.ai/api/run/brave/search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "on-device llm inference benchmarks", "count": 10, "freshness": "pm"}'count(1–20),offset,country,search_lang.freshness—pd/pw/pm/pyor an explicitYYYY-MM-DDtoYYYY-MM-DDrange.result_filter— comma list ofweb,news,videos,faq,discussions.extra_snippets: true— up to 5 extra excerpts per hit.brave/newsis the news-only vertical with age and breaking flags;countup to 50.
tavily/search
- Price
- 1¢
- Latency
- ~1–2s
RAG-tuned results with per-result relevance scores, built for feeding LLMs. include_answer: true returns a synthesized answer with sources; include_raw_content: "markdown" inlines full page text per hit.
curl -X POST https://vaaya.ai/api/run/tavily/search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "vector db comparison for RAG", "max_results": 10, "include_answer": true}'- Also takes
topic(general|news|finance),include_domains/exclude_domains,time_range(day|week|month|year),country. include_raw_contentmakes responses big — prefer it over a chained scrape only when you’ll read most of the hits.- Measured miss pattern: results favor blog/tutorial pages over official docs domains — use Exa or Brave for authoritative-docs lookups.
linkup/search and linkup/deep-search
- Price
- 1¢ (search) · 5¢ (deep-search)
- Latency
- ~1.5s · tens of seconds
Linkup searches and synthesizes in one call. outputType picks the shape: sourcedAnswer (default — answer plus cited sources), searchResults (raw ranked hits), or structured (pass structuredOutputSchema as a JSON-schema string).
curl -X POST https://vaaya.ai/api/run/linkup/search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "what changed in the EU AI Act final text", "outputType": "sourcedAnswer"}'- Optional
fromDate/toDate(ISO),includeDomains/excludeDomains,includeImages,includeInlineCitations. linkup/deep-search(5¢) runs iterative agentic retrieval for multi-hop questions. Escalate here only after one-pass search comes back thin; for a full research report the bigger rung isparallel/task.
parallel/search and parallel/extract
- Price
- 1¢ (search) · 1¢ per URL (extract)
- Latency
- fast
Parallel.ai’s AI-powered search — use it as the second source in a multi-vendor pipeline (search Exa + Parallel concurrently, dedupe). parallel/extract pulls clean content from URLs with an optional objective to focus the extraction; for cheap bulk extraction, exa/contents at 0.1¢/URL wins — see Web scraping.
parallel/task — deep async research
- Price
- 10¢ (
pro) · 30¢ (ultra) - Latency
- slow — seconds to minutes, async
- Polling
parallel/task-status— free
Submit a complex research question; Parallel runs an LLM-driven search-and-synthesize loop. The call returns { run_id } immediately — poll parallel/task-status (free) until status is completed.
# 1) start the run
curl -X POST https://vaaya.ai/api/run/parallel/task \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input": "Compare the top 5 headless CMS platforms for Next.js in 2026", "processor": "pro"}'
# 2) poll until done (free)
curl -X POST https://vaaya.ai/api/run/parallel/task-status \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"run_id": "run_..."}'When not to use it
- Simple “find me information about X” —
exa/searchis 10–30× cheaper. - When you need the result fast — runs are multi-second, sometimes multi-minute.
- Tight budgets — an
exa/search→parallel/extractchain often reaches similar quality for a few cents.
Measured performance
From a 30-task, 6-engine benchmark (August 2026, steady state):
| Provider | Answered | p50 | p95 | Verdict |
|---|---|---|---|---|
exa/search | 100% | 0.09s | 0.16s | Default — perfect score every pass; warm-fastest. |
brave/search | 100% | 0.14s | 0.36s | The racing partner — cold-fastest, own index. |
firecrawl/search | 100% | 0.54s | 2.5s | When you want page content with the hits — see Web scraping. |
linkup/search | 96.7% | 1.5s | 1.8s | Cited answers; occasionally misses the official-docs URL. |
tavily/search | 90% | 1.3s | 2.1s | Answer synthesis; weakest recall on official-docs queries. |