GET /v1/serp
Run a search query and get the organic results, related questions, and related searches.
curl "https://api.chuger.com/v1/serp?q=web+scraping+best+practices&hl=en&gl=us" \
-H "Authorization: Bearer YOUR_API_TOKEN"
const params = new URLSearchParams({
q: 'web scraping best practices',
hl: 'en',
gl: 'us',
});
const res = await fetch(`https://api.chuger.com/v1/serp?${params}`, {
headers: { Authorization: `Bearer ${process.env.CHUGER_TOKEN}` },
});
const data = await res.json();
import os, requests
r = requests.get(
"https://api.chuger.com/v1/serp",
params={"q": "web scraping best practices", "hl": "en", "gl": "us"},
headers={"Authorization": f"Bearer {os.environ['CHUGER_TOKEN']}"},
)
data = r.json()
{
"search_information": {
"query_displayed": "web scraping best practices",
"total_results": 12300000,
"time_taken": 0.42
},
"organic_results": [
{
"position": 1,
"title": "A guide to web scraping",
"link": "https://example.com/guide",
"snippet": "Learn how to scrape responsibly...",
"displayed_link": "example.com › guide",
"thumbnail": null,
"favicon": "https://example.com/favicon.ico",
"sitelinks": null,
"source": "Example"
}
],
"related_questions": [
{ "question": "Is web scraping legal?", "answer": "It depends on..." }
],
"related_searches": [
{ "query": "web scraping python", "link": "https://...", "image": null }
]
}
{
"message": "Search failed using available services."
}
Run a search query and get the organic results, related questions, and related searches.
GET https://api.chuger.com/v1/serp
If you also want the content of the top results extracted in the same call, use /v1/serp/content.
Authentication
Bearer token in the Authorization header. See Authentication.
Cost
| Plan | Credits per request |
|---|---|
| Basic | 5 |
| Pro | 5 |
| Business | 5 |
Credits are only deducted on success.
Query parameters
The search query. 1–100 characters.
Location, free-form (e.g. "United States", "Paris"). Max 100 characters.
Interface language code (e.g. "en"). Max 10 characters.
Country code for results (e.g. "us"). Max 10 characters.
Search engine to run the query on: google (default), bing, or duckduckgo.
Results always come from the engine you asked for — if it can't be reached,
the request fails rather than silently answering from a different engine.
Example
Response fields
Metadata about the query.
The ranked organic results.
"People also ask" entries. Each item has question and an optional answer.
Suggested follow-up queries. Each item has query, link, and an optional image.
Errors
| Status | When |
|---|---|
401 | Missing / invalid token |
402 | No plan, or insufficient credits |
422 | q missing or too long, invalid loc / hl / gl / engine |
429 | Rate limit or monthly quota exceeded |
503 | Search could not be completed |
See Errors for the full reference.
Tips
Common locale pairings: hl=en&gl=us, hl=es&gl=mx. For localized queries, set loc to the city or region (e.g. "Paris").
To fetch the content of the top N results in one shot, use /v1/serp/content instead of looping over results and calling /v1/content yourself.
Choosing an engine: google has the broadest index; bing is typically the fastest and most reliable choice when any engine will do; duckduckgo is best-effort — under sustained volume its queries may take longer or occasionally fail, so prefer bing for high-volume workloads.