Serper

Every Google SERP vertical plus a webpage scraper, on one key
View as Markdown

Fronts Serper. A single Serper key covers a family of Google SERP verticals — one endpoint each — together with a webpage scraper. All of them sit under /serper, with the secret X-API-KEY header injected by the gateway.

GET|POST /serper → https://google.serper.dev/search (alias)
GET|POST /serper/<endpoint> → https://google.serper.dev/<endpoint>
GET|POST /serper/webpage → https://scrape.serper.dev/

Plain /serper survives as an alias of /serper/search (the single-endpoint contract Serper started with), which keeps older clients functional.

Endpoints

Exactly these endpoints are admitted; anything else under /serper is refused with the gateway’s own 404 and never reaches Serper.

EndpointUpstream
search, images, videos, places, maps, reviews, news, shopping, lens, scholar, patents, autocompletehttps://google.serper.dev/<endpoint>
webpagehttps://scrape.serper.dev/

The /account endpoint (which reports remaining credit) is intentionally not proxied: it exposes account-wide billing metadata rather than search, and a per-client token has no legitimate claim on the shared balance.

Request forms

Two request shapes are valid on Serper’s side, and the gateway carries both:

  • POST carrying a JSON body — the shape Serper’s own docs open with. A JSON array (a batched search) is treated like any other body and passed along.
  • GET with its controls riding on the query string — relayed with no changes.

An apiKey query parameter from the client is discarded, and any client X-API-KEY header gets overwritten — the injected key is therefore the sole credential reaching Serper. Authorization, which holds your gateway token, is removed before the request goes upstream.

Examples

$curl -X POST "$GATEWAY/serper" \
> -H "Authorization: Bearer $TOKEN" \
> -H "Content-Type: application/json" \
> -d '{"q": "apple inc", "gl": "us", "hl": "en"}'

Responses arrive as Serper’s JSON, untouched. Field-level request and response detail lives in Serper’s documentation; the gateway modifies neither.