The Search API
One endpoint, the whole result page. Structured, stable, and shaped like the one you already parse.
Request
curl --request GET \
--url 'https://serpens.p.rapidapi.com/api/v1/search?q=fastify%20nodejs&gl=us&hl=en&page=1&format=json' \
--header 'x-rapidapi-host: serpens.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_KEY'| Parameter | Required | Notes |
|---|---|---|
q | yes | One to 2048 characters. Google operators work: site:github.com fastify |
gl | no | Country, two lowercase letters. Passed to Google verbatim. Default us |
hl | no | Interface language. Default en |
page | no | No upper bound. Page 40 is a call like any other |
tbs | no | Google time and filter token, e.g. qdr:d for the past day |
autocorrect | no | Default true |
format | no | json or markdown. Markdown is what a model reads best |
Response
Serper-compatible, field for field. Optional blocks are absent when Google renders nothing — never null, never an empty array, so 'knowledgeGraph' in body is an unambiguous test.
Three fields go beyond the contract: organic[].source names the publication behind a result, and has_next_page / has_previous_page save you a probe request. Ignoring them changes nothing.
What it is not
Two endpoints, both about the same page: web results, and web results with Google's answer on top. Image, news, places, scholar and shopping verticals are not part of the product, and we would rather say so on the pricing page than in a support thread.
The trade is deliberate. One surface, measured continuously and published in public, is worth more than twenty that nobody checks. Our own corpus runs through this endpoint every week.
Get a free API key
Key in under a minute, no card. Billing lives on RapidAPI, so the first call is a copy-paste away.