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 OneSearch.

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.
  • freshness: pd/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 returns 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” questions: 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.16sThe default. 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.