Documentation

vaaya / docs / reference

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

NeedCallPricePick when
General semantic searchexa/searchThe default. Best recall, date/domain filters, inline content.
Independent-index corroborationbrave/search · brave/newsBrave runs its own 20B+ page crawler — the one major non-Google index.
RAG-ready results + synthesized answertavily/searchPer-result relevance scores; include_answer for a sourced answer.
Cited answer in one calllinkup/searchsourcedAnswer or structured output instead of links.
Multi-hop agentic searchlinkup/deep-searchOnly after one-pass search comes back thin.
Second source, vendor diversityparallel/searchDedupe against Exa in a multi-vendor pipeline.
Deep multi-step researchparallel/task10–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.

Price
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_date for recent-event queries.
  • The people and company categories don’t support date or exclude_domains filters.
  • numResults goes 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
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.
  • freshnesspd/pw/pm/py or an explicit YYYY-MM-DDtoYYYY-MM-DD range.
  • result_filter — comma list of web,news,videos,faq,discussions.
  • extra_snippets: true — up to 5 extra excerpts per hit.
  • brave/news is the news-only vertical with age and breaking flags; count up to 50.
Price
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_content makes 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.
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 is parallel/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/search is 10–30× cheaper.
  • When you need the result fast — runs are multi-second, sometimes multi-minute.
  • Tight budgets — an exa/searchparallel/extract chain often reaches similar quality for a few cents.

Measured performance

From a 30-task, 6-engine benchmark (August 2026, steady state):

ProviderAnsweredp50p95Verdict
exa/search100%0.09s0.16sDefault — perfect score every pass; warm-fastest.
brave/search100%0.14s0.36sThe racing partner — cold-fastest, own index.
firecrawl/search100%0.54s2.5sWhen you want page content with the hits — see Web scraping.
linkup/search96.7%1.5s1.8sCited answers; occasionally misses the official-docs URL.
tavily/search90%1.3s2.1sAnswer synthesis; weakest recall on official-docs queries.