Search the web (JSON body)
Same contract as GET /api/v1/search, but accepts parameters as a JSON body. Preferred for location-bearing requests because GET-style location encoding is awkward and keeps latitude/longitude out of HTTP access logs. All GET query parameters are accepted as body fields, plus optional location fields (latitude, longitude, accuracy, city, state, countryCode, postalCode, timezone, location).
Authorizations
API key from the API Console.
Body
Search query string. Same semantics as the GET q parameter.
Maximum number of results to return.
1 <= x <= 100Number of results to skip for pagination.
x >= 0Search effort control. auto (default) sets the effort per query automatically — simple lookups resolve fast, complex questions get deeper treatment. The fixed modes pin an effort level: low-cost caps the work done per request for budget-constrained callers. fast returns results in about 1 second. balanced is everyday web search with mid-range latency. deep searches from multiple angles with spell correction in about 2–3 seconds. exhaustive runs multi-round retrieval for the most complete results, up to about 15 seconds. Deeper modes add query expansion, follow-up searches fanned out from initial results, and stronger reranking. Requests are billed on outcome-based pricing (see metrics.cost_dollars).
auto, low-cost, fast, balanced, deep, exhaustive Thoroughness dial, independent of searchMode: low favors speed, medium is balanced, high searches from multiple angles with spell correction, max runs multi-round retrieval for the most complete results — the same tiers as pinning searchMode to fast, balanced, deep, and exhaustive respectively. An explicit searchMode always wins over effort. With the default auto mode, an explicit effort pins its equivalent mode. Omit for the adaptive default. Invalid values return a 400 listing the valid tiers.
low, medium, high, max Semantic reranker size hint. Larger tiers apply more thorough relevance scoring but need a deeper searchMode and may be clamped by the request's time and cost budget (for example, xl needs deep or exhaustive). auto (default) selects a tier automatically based on the query and search mode.
auto, small, medium, large, xl Force a specific search intent. When not set, the API auto-detects intent from the query. Accepts common aliases like search, news, video, images, weather, wiki, code, recipe, place, time, and others.
Response format. json returns a JSON object. context returns results as markdown text, suitable for passing to language models.
json, context Level of metadata to include. basic includes standard search metrics. full includes extended metadata with content type details and reader data on results.
basic, full Include text extracts from result pages in the response.
Fetch and include full page content for results, beyond the standard description and snippet. Increases response time; the time budget scales with searchMode (more time is allotted for deep and exhaustive).
Maximum number of characters of enriched content to return per result. Only applies when enrichContent is true.
Safe search filtering level. off disables filtering, moderate filters most explicit content, strict applies maximum filtering.
off, moderate, strict Two-letter ISO 3166-1 country code to localize results.
Two-letter ISO 3166-1 country code to restrict results to sources from this country. Unlike country, which biases results by locale, sourceCountry excludes results from other countries.
Two-letter ISO 639-1 language code to filter results by language.
Unit system for weather and calculation results. Defaults based on the country parameter — imperial for US, metric for all other countries.
metric, imperial Bypass cached results and fetch fresh data.
Relative date range filter for results.
day, week, month, year, 24h, 7d, 30d, 90d, 1y Filter results published on or after this date. Format: YYYY-MM-DD.
Filter results published on or before this date. Format: YYYY-MM-DD.
Comma-separated list of domains to restrict results to. Supports wildcards (*.example.com).
Comma-separated list of domains to exclude from results. Supports wildcards.
Comma-separated terms that must appear in results.
Comma-separated terms to exclude from results.
Parse query operators (like site:, filetype:, intitle:) from the query string. When disabled, the query is treated as literal text.
Field name for result URLs. Use url to receive the URL field as url instead of the default link. Only affects the /search endpoint.
link, url Field naming for image results. long (default) uses full field names. short uses abbreviated field names.
short, long Filter results by file type.
Filter results to pages with this term in the title.
Filter results to pages with this term in the URL.
Filter results to pages with this term in the body text.
Latitude in decimal degrees. Sent in the body to keep coordinates out of HTTP access logs.
Longitude in decimal degrees.
Location accuracy in meters.
City name for location-aware queries.
State or region name.
Two-letter ISO 3166-1 country code for the caller's location.
Postal or ZIP code.
IANA timezone, for example America/Los_Angeles.
Display name for the caller's location, for example "San Francisco, CA".
Response
Search results. JSON by default; LLM-ready markdown with YAML frontmatter when format=context.
The type of results returned (e.g., Search, News, Weather, Calculator). Determines which optional response sections are present.
A generated answer for the query. May be an empty string when no direct answer is available.
Same as results_type. Indicates the category of results.
A title summarizing the search results.
Array of search results.
Search performance metrics. Always included in the response.
Spell-corrected query. Present when a misspelling in the original query is detected and corrected — any mode can return it; deep and exhaustive modes run the strongest spell correction.
Related search suggestions. Present on some queries.
Related topics. Present on some queries.
Video results. Present when the query triggers a video intent.
Image results. Present when the query triggers an image intent.
News results. Present when the query triggers a news intent.
Place/business results. Present for location-related queries.
Profile results. Present for people-related queries.
Social media results. Present for social-related queries.
Academic results. Present for scholarly queries.
Weather data. Present when the query triggers a weather intent.
Calculation result. Present when the query triggers a calculation intent.

