Skip to main content
Search runs a query and returns the results as structured data: titles, links, descriptions and positions, plus fields specific to each source. Nothing is summarised or rewritten. It answers “which pages exist for this query?”; Scrape answers “what’s on this page?”. Add scrapeOptions to get both in one request.

Quick example

With "wait": true, a search that finishes within 20 seconds answers in the same request (shortened to two results):
Without wait, or when it takes longer, you get 202 with a jobId to poll at GET /search/{jobId}. The SDKs handle both.

Sources

Pick one or more in sources. Each runs on its own, so one empty source doesn’t affect the others. Real results from a search for vector database across three sources:
Not every field is on every result. Build for title, url and description, and treat the rest as extras. For developer, GitHub search qualifiers work in the query: memory leak is:issue repo:vercel/next.js.

Options

Get each page’s content

Add scrapeOptions and the top results come back with their page as clean Markdown:
  • Only the first maxResults results get markdown; the second result above has none.
  • The search waits until every page is read, so expect tens of seconds. This one took 41.
  • A page that can’t be read is left without markdown; the rest are unaffected.
  • Results from supported sites also get structuredData.
  • For a prompt, a schema or a screenshot, scrape the URL instead.

More results

A finished search has nextPageTokens, one per source that has more. Send it back as pageTokens with the same query to get the next page:
Positions carry on from the last page. Each page is charged like a new search. Occasionally a result from one page reappears on the next, so de-duplicate by URL when you collect many pages.

Cost

1 credit per 10 results, per source, rounded up. A source with no results costs nothing. Page content adds 1 credit per page read.

In the dashboard

Open Search in the sidebar. Type a query, pick sources, a country, results per source, a time range, domains, PDF results only, and Scrape content from search results. Results are grouped by source in tabs, with a readable list, a JSON view, copy, download (images download as a ZIP), and Load more results for the next page. Scrape page on a result opens it in Scrape. Search results in tabs for Web, News, Images and Videos

Good to know

  • country and timeRange shape results; they don’t strictly filter them.
  • Related searches and quick answers (data.extras) appear on some web searches. Don’t rely on them.
  • A search with no results costs nothing, so trying a narrower query is free when it finds nothing.

Next

Scrape

Extract data from a result’s page.

Templates

Google rank tracking and news, ready-made.

Monitors

Get told when new results appear.

API reference

Every field and response.