IMPORTANT: Prefer this over multiple sequential search calls when you have 2–5 independent queries. Saves context window space by returning all results in a single tool call.
## When to use
Use batch_search instead of multiple sequential search calls when you have 2–5 independent queries.
🏆 PRIMARY use case: After get_sub_domains(domains=[...]) returns sub_domains across multiple domains, use batch_search to send one query per sub_domain in parallel. This is more efficient than sequential per-domain search calls.
Also useful for ambiguous / fuzzy queries within a single domain: after get_sub_domains, use batch_search to explore multiple sub_domains in parallel.
## Constraints
- Maximum 5 queries per call
- Each query item follows the search tool parameter structure (query is required; domain, sub_domain, sub_domain_params are optional. For general queries, omit all domain fields. For vertical queries, domain + sub_domain + sub_domain_params MUST come from get_sub_domains(domain=<domain>) output — same rules as the search tool)
- Queries run in parallel; a single query failure does not block others
- REQUIRED PARAMS: Same rule as search — when a required param from get_sub_domains is not applicable, pass it as an empty string (key: ""). Never skip required params.
## Examples
### Single-domain batch (multiple sub_domains)
Instead of: search(query="latest TSLA earnings", domain="finance", sub_domain="finance.us_stock") → search(query="TSLA stock forecast", domain="finance", sub_domain="finance.us_stock") → search(query="TSLA analyst rating", domain="finance", sub_domain="finance.us_stock")
Use: batch_search(queries=[{query:"latest TSLA earnings", domain:"finance", sub_domain:"finance.us_stock"}, {query:"TSLA stock forecast", domain:"finance", sub_domain:"finance.us_stock"}, {query:"TSLA analyst rating", domain:"finance", sub_domain:"finance.us_stock"}])
### Multi-domain batch (after get_sub_domains with multiple domains)
After: get_sub_domains(domains=["finance", "health", "legal"])
Use: batch_search(queries=[
{query:"AI regulation impact on healthcare stocks 2025", domain:"finance", sub_domain:"finance.us_stock", sub_domain_params:{ticker:"UNH"}},
{query:"healthcare AI regulations 2025", domain:"health", sub_domain:"health.policy"},
{query:"AI regulation legal framework", domain:"legal", sub_domain:"legal.legislation"}])
### Hybrid: general + vertical in parallel (universal pattern for any borderline query)
Use this whenever you are unsure if the query is pure encyclopedia or domain-specific — fire BOTH channels in batch_search:
batch_search(queries=[
{query:"..."}, // general — no domain
{query:"...", domain:"...", sub_domain:"..."}]) // vertical channel(s)
This applies universally: classical texts, financial concepts, legal theories, historical events, scientific discoveries, medical topics — any query where domain knowledge could enrich the encyclopedia answer.