POST /v1/web/search runs a query against the web and returns ranked results. By default every result comes back with its page already fetched and cleaned, so a single call turns a question into a set of LLM-ready documents — no second round of scraping.
When to use it
- You know what you’re looking for but not the exact URLs — let a query find the pages.
- You want the top few sources on a topic returned as clean Markdown, ready to feed a model.
- You need to bias results to a region, a recency window, or a specific set of domains.
Example request
Example response
Each result carries its rank, the usual title/url/snippet, and adata object holding the scraped page. When scraping is off or a page can’t be fetched, data is null.
Key options
string
required
What to search the web for. Up to 500 characters.
number
default:"engine default"
How many ranked results to return, from 1 to 15.
boolean
default:"true"
When
true, each result comes back with its page fetched and returned as clean data. Set false to get just the ranked title, url, and snippet — useful when you only need to discover URLs.object
How to scrape each result, using the same options as Scrape — pick
formats, force JavaScript rendering, set a per-page timeout, choose a location, and more. Applied to every result. Ignored when scrapeResults is false.string
Restrict results to a recency window relative to now:
day, week, month, or year.string
ISO 3166 alpha-2 country code (for example
us, de) to bias results toward a region.string[]
Only return results from these domains. Up to 15.
string[]
Drop results from these domains. Up to 15.
Response fields
string
The query you searched.
string
The search source the results came from.
object[]
The ranked results. Each item has
title, url, snippet, rank, and data — the scraped page, or null when scraping is off or the page could not be fetched.Billing
You’re charged 1 credit for the search, plus 1 credit for each result that is actually scraped. A search withscrapeResults set to false costs just the 1 credit. As always, you’re charged only on success, and the response reports what it consumed.
Richer
scrapeOptions formats on each result can raise the per-result cost, the same way they do for a direct scrape. See Credits.Related
Scrape
The per-result scrape engine behind search, on a single URL.
Extract
Turn found pages into schema-shaped JSON, or let extract run its own web search.
Formats
Everything
scrapeOptions can return per result.API Reference
Full
POST /v1/web/search schema and a live playground.