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.
Example
Response fields
Metadata about the query.
Echo of the query as interpreted.
Total number of results reported.
Seconds the search took.
The ranked organic results.
1-based rank.
Result title.
Destination URL.
Search-result snippet.
Pretty version of the URL.
Thumbnail image URL.
Favicon URL.
Sitelinks attached to the result.
Source label.
"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 |
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.