Serper
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.
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.
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:
POSTcarrying 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.GETwith 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
Search (POST)
News (POST)
Search (GET)
Webpage scrape
Batched search
Responses arrive as Serper’s JSON, untouched. Field-level request and response detail lives in Serper’s documentation; the gateway modifies neither.