Skip to main content
Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON. Returns about 10 results per call - Google stopped honoring bulk result counts in September 2025, so a limit above 10 is accepted but returns no more than a page. Send page 2, 3, … to walk further, or use google.search_100 for up to 100 ranked results in one call, which is cheaper past roughly 20 results. This page is the seller-facing summary of one catalog API, google.search. The transport rules that apply to every API a seller serves - signed requests, the response envelope, timeouts, and body limits - are on the operator endpoint contract.

The price you compete with

AnyAPI publishes this API from $0.50 per 1,000 requests. That is the price a buyer sees today, so it is the price your endpoint has to come in under to win traffic.

The request your endpoint receives

The response your endpoint must return

Extra fields are kept, missing declared fields fail.

Fields that must never come back empty

  • link
  • results
  • snippet
  • title
The repository marks these fields as ones every source must be able to fill. An empty value is only correct when the entity itself genuinely has nothing there.

Not found, and how it differs from empty

When the entity does not exist, answer 2xx with the not-found shape:
An empty list is not a not-found: when the entity exists and has nothing to return, answer 2xx with found: true and an empty results array. This output schema declares no reason field, so found: false is the whole not-found answer.

Example request

The compatibility checks fire the schema’s example at your endpoint. After that, your answers are graded against what the currently serving source returned for the same real customer inputs.

Next