broad_search
Run multiple web searches concurrently by expanding a question into sub-queries for comparisons, research, surveys, and multi-part questions.
Instructions
Search the web across many angles in one call — for comparisons, research, surveys, and questions with several distinct parts. Expands your question into multiple sub-queries and runs them concurrently.
USE WHEN the question has multiple distinct parts or entities that one search cannot cover:
comparing vendors / products / pricing across many sources
literature reviews, market or landscape surveys
open-ended "what are the options for X" / "how do people solve Y"
a question that clearly decomposes into 3+ independent sub-questions
multi-angle questions about recent events ("what shipped across the industry this month") — set topic=news, do NOT loop news_search
DO NOT USE for:
a single fact, entity, or document → use
searchre-running a disappointing search → do NOT call broad_search twice; follow up with a targeted
searchorextracton the specific gapsreading a page you already have the URL for → use
extracta straight A-vs-B comparison of two known entities → two targeted
searchcalls are cheaper and more controllable
COST: fans out into max_queries concurrent searches — roughly Nx the cost and notably higher latency than a single search. When in doubt, prefer search.
QUERY: pass one natural-language question (max 500 chars). Resolve pronouns and references from the conversation first — "how does it compare to the other one" is a useless query. Do NOT pre-split into sub-queries; that is this tool's job. For broader coverage raise max_queries rather than calling repeatedly. Per-sub-query options (count, topic, language filter, domain / text filters, time window, highlight / full_content, media) match search and apply to every sub-query.
RESULTS are grouped per sub-query and NOT deduplicated — the same URL may appear under several sub-queries.
max_queries: 3-5 focused comparison (2-3 entities) | 5-10 multi-facet research | 10-20 landscape scan | 20-30 exhaustive survey
For a single focused lookup use search; to read a specific page use extract.
keywords: web search, search the web, look up, find information, research, compare, comparison, versus, alternatives, options, landscape, survey, market research, pricing, latest, current information, multi-part question
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to return (1-100). Default 5. | |
| query | Yes | Search query. Max 500 chars. | |
| topic | No | Search category: `general` for broad web search, `news` for news-focused results. Default general. | general |
| format | No | Format of returned content. Default text. | text |
| timeout | No | Request timeout in seconds (1-300). Defaults to 120s if unset. Raise it for large `max_queries` surveys, which legitimately take longer. | |
| end_time | No | Upper bound for the time window, ISO 8601. | |
| language | No | Languages to filter results by, as ISO 639-1 codes. Empty = no filter. | |
| highlight | No | Return a ranked highlighted snippet per result. Omit to use the server default. | |
| safesearch | No | Adult-content filter. Default strict. | strict |
| start_time | No | Lower bound for the time window, ISO 8601 (e.g. '2025-01-01T00:00:00Z'). | |
| time_basis | No | Which timestamp the time window filters against: page `published` date, last `crawled` date, or `auto`. Default auto. | auto |
| time_range | No | Relative time window (e.g. `week`, `month`). Mutually exclusive with `start_time`/`end_time` — if both are given, the absolute range wins. | |
| max_queries | No | Upper bound on the number of sub-queries generated (1-30). Default 5 — raise toward 30 for surveys / deeper research, lower for a tighter search. | |
| exclude_text | No | Drop results whose content contains any of these strings. Max 5, each ≤30 chars. | |
| full_content | No | Return the cleaned full page body per result. Heavier than `highlight` — use only when the snippet isn't enough. Omit to use the server default (off). | |
| include_text | No | Only return results whose content contains all of these strings. Max 5, each ≤30 chars. | |
| include_images | No | Return image URLs (and a cover image) found on each result page. | |
| include_videos | No | Return video URLs found on each result page. | |
| exclude_domains | No | Drop results from these domains. Max 150, each ≤30 chars. | |
| include_domains | No | Only return results from these domains (e.g. 'arxiv.org'). Max 1000, each ≤30 chars. |