curl --request GET \
--url https://scrapebadger.com/v1/google/light/search \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/google/light/search"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/google/light/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/google/light/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/google/light/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/google/light/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/google/light/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"search_information": {
"query_displayed": "<string>",
"total_results": 123,
"time_taken": 123,
"organic_results_state": "<string>",
"url": "<string>"
},
"pagination": {
"current": 1,
"next": "<string>",
"total_results": 123,
"total_pages": 123,
"page_no": {}
},
"organic_results": [
{
"position": 123,
"title": "<string>",
"link": "<string>",
"displayed_link": "<string>",
"snippet": "<string>",
"highlighted_keywords": [
"<string>"
],
"source": "<string>",
"favicon": "<string>",
"sitelinks": [
{
"title": "<string>",
"link": "<string>",
"snippet": "<string>"
}
],
"inline_sitelinks": [
{
"title": "<string>",
"date": "<string>"
}
],
"date": "<string>",
"rank": 123,
"page_rank": 123
}
],
"related_searches": [
{
"query": "<string>",
"link": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Google Light Search
Organic results and related searches through a dedicated lightweight endpoint.
curl --request GET \
--url https://scrapebadger.com/v1/google/light/search \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/google/light/search"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/google/light/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/google/light/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/google/light/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/google/light/search")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/google/light/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"search_information": {
"query_displayed": "<string>",
"total_results": 123,
"time_taken": 123,
"organic_results_state": "<string>",
"url": "<string>"
},
"pagination": {
"current": 1,
"next": "<string>",
"total_results": 123,
"total_pages": 123,
"page_no": {}
},
"organic_results": [
{
"position": 123,
"title": "<string>",
"link": "<string>",
"displayed_link": "<string>",
"snippet": "<string>",
"highlighted_keywords": [
"<string>"
],
"source": "<string>",
"favicon": "<string>",
"sitelinks": [
{
"title": "<string>",
"link": "<string>",
"snippet": "<string>"
}
],
"inline_sitelinks": [
{
"title": "<string>",
"date": "<string>"
}
],
"date": "<string>",
"rank": 123,
"page_rank": 123
}
],
"related_searches": [
{
"query": "<string>",
"link": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}X-Credits-Used for the actual charge and
/api/public/pricing for current prices and promotions.
curl --get 'https://scrapebadger.com/v1/google/light/search' \
--header 'X-API-Key: YOUR_API_KEY' \
--data-urlencode 'q=vinted api' \
--data-urlencode 'gl=us' \
--data-urlencode 'hl=en'
search_information, organic_results,
related_searches and pagination. Light skips ads, AI Overviews, Knowledge
Graph, People Also Ask, local results, news, inline videos and shopping.
No mode parameter is required. Passing mode=full or ai_overview=true
cannot enable rich SERP features.
Use start=10, 20, and so on for later pages. Google may return fewer results
than requested by num; a page commonly contains about ten organic results.
Set output=html to receive the raw Google response instead of parsed JSON.
Light has an eight-second processing budget, including fetching, fallback and
parsing. If the budget expires, the response is 503 with Retry-After.
The CLI command is scrapebadger google light-search "vinted api". The MCP tool
is google_light_search, with start for pagination.
See the Light overview or
regular Search.Authorizations
Query Parameters
Search query (supports Google operators like site:, inurl:, intitle:)
Country code (e.g. us, gb, de, fr). Defaults to the country implied by domain (e.g. google.co.uk → gb), falling back to us when domain doesn't carry a country hint.
Language code (e.g. en, es, fr)
Results per page
1 <= x <= 100Pagination offset (0, 10, 20...)
x >= 0Google domain (e.g. google.com, google.co.uk)
Device target — selects the Google SERP layout via a matching User-Agent. One of: desktop, mobile, iphone, android, tablet.
Custom User-Agent to send to Google. Overrides device. Use to target a specific browser/OS fingerprint.
512^[^\r\n]*$City-level geo-targeting (e.g. 'New York, USA')
Language restrict (e.g. lang_en)
Time-based search filter (e.g. qdr:d for past 24h)
Safe search (active/off)
Encoded location parameter (UULE)
Include omitted results (0=show all, 1=filter)
0 <= x <= 1Disable auto-correction (1=exact match)
0 <= x <= 1Country restrict (e.g. countryUS|countryGB)
Google My Business CID (place ID)
Knowledge Graph map view ID
Knowledge Graph entity ID
Cached search parameters
Layout control (e.g. gwp;0,7)
Google filter string
Response format. json (default): structured parsed SERP. html: the raw Google SERP HTML exactly as fetched, with Content-Type: text/html and no parsing. Use html when you run your own parser. Pagination/geo/device/UULE params all still apply; the ai_overview chase is skipped for html output.
json, html Response
Successful Response
Essential SERP data returned by GET /api/v1/light/search.
Metadata about the search query.
Show child attributes
Show child attributes
Pagination metadata.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

