Serper
POST /search/serper, forwarded to POST https://google.serper.dev/search.
Request
Section titled “Request”curl -X POST "https://api.withgrowl.com/v1/search/serper" \ -H "Authorization: Bearer elo_pub_..." \ -H "Content-Type: application/json" \ -d '{ "q": "travel to vietnam", "num": 5, "gl": "us", "hl": "en", "tbs": "qdr:w" }'Common fields are below. The body goes to Serper as sent, so everything in Serper’s reference works; that reference is the complete, current schema.
| Field | Description |
|---|---|
q | The search query. Google operators work: site:vietnam.travel keeps one domain, -site:pinterest.com drops one. |
num | Number of results. |
gl | Country code, lower case, for example us. |
hl | Language code, lower case, for example en. |
tbs | Freshness: qdr:d, qdr:w, qdr:m or qdr:y for the past day, week, month or year. |
Response
Section titled “Response”Results are under organic. Each has title, link and snippet, and date when
Google shows one.
{ "organic": [ { "title": "Visit Vietnam: The Official Tourism Website of Vietnam", "link": "https://vietnam.travel/", "snippet": "Discover the highlights of Vietnam through the country's official tourism website.", "date": "Feb 18, 2026", "position": 1 } ]}Through Elo
Section titled “Through Elo”- Serper takes its key in
X-API-KEY. Keep that header and put your Elo key in it, or useAuthorization: Bearer; Elo sets Serper’s key itself. - Serper has no domain filter fields. Use
site:inq, and keep the list short: a long one runs into Google’s query length limit.