research
Run parallel searches across multiple queries, merge and dedupe results, then extract key information with citations for comprehensive research briefs.
Instructions
Run multi-query research: search several queries in parallel, merge and dedupe results, then fetch and extract the strongest sources with citations.
Best for: open-ended investigations, building a multi-source briefing, answering a complex question that needs cross-checking across providers.
Returns: merged ranking, per-source extracted excerpts and citations, plus a query map showing which queries surfaced each source. Full payloads in hidden _meta.
Rendered fetch is automatic for JS-heavy pages; pass rendered=true to force browser mode.
Use search_many when extraction is not needed; search_and_fetch for a single query.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | List of 1–10 search queries to run in parallel. Use distinct phrasings or angles (synonyms, related entities, opposing framings) for the best merged coverage. | |
| categories | No | Comma-separated SearXNG categories to search (e.g. 'general', 'news', 'images', 'videos', 'science', 'files'). Default is the server's configured category set, typically 'general'. | |
| engines | No | Comma-separated SearXNG engine names to use for this query. Forwarded to SearXNG's 'engines' parameter. Leave unset to use the backend's default engine selection. | |
| enabled_engines | No | Comma-separated engine names to enable in addition to the backend defaults. Forwarded as SearXNG's 'enabled_engines' parameter. | |
| disabled_engines | No | Comma-separated engine names to exclude from this query. Forwarded as SearXNG's 'disabled_engines' parameter. | |
| language | No | BCP-47 language hint for SearXNG (e.g. 'en', 'en-US', 'de', 'all'). Default is the server's configured language. | |
| pageno | No | Result page number (1–20, default 1). Use to paginate beyond the first page. | |
| time_range | No | Restrict results to recent content. Valid values: 'day', 'week', 'month', 'year'. Omit for no time filter. | |
| safesearch | No | Safe search level: 0=off, 1=moderate, 2=strict. Omit to use the server default. | |
| max_results | No | Maximum visible results to include in the compact summary (1–50). Default comes from server settings (typically 5). The hidden `_meta.raw_payload.results` always contains the full SearXNG response regardless of this cap. | |
| fetch_limit | No | Maximum number of search results to fetch and extract (1–20, default 3). Lower is faster; higher gives more sources at the cost of latency. | |
| fetch_excerpt_chars | No | Per-source excerpt character cap (200–20000). Default comes from server settings. Smaller values keep the visible output tight; the full text is always available in hidden `_meta` for each source. | |
| rendered | No | Force browser-based rendering for fetches. Default false: the server auto-renders only when a page is JS-heavy or returns near-empty text. Set true when a previous fetch came back nearly empty or to read a known SPA. Forced rendering is several times slower than HTTP fetch. | |
| render_wait_ms | No | Extra milliseconds to wait after DOM content load before extracting (0–15000). Use a higher value (e.g. 1500–4000) for SPAs that hydrate slowly. | |
| concurrency | No | Maximum concurrent backend requests for this fan-out (1–16). Higher is faster but puts more load on the SearXNG instance and remote pages. Omit for the server default. | |
| ttl | No | Cache TTL override in seconds (0–86400). 0 disables caching for this call. Omit to use the server's default TTL. |