Google Inline Products API
For some searches, Google organic results include inline products. SERPHouse is able to extract and make sense of this information. Inline products can contain title
, source
, price
, rating
, reviews
, thumbnail
, tag
, editorial_reviews
and more.
JSON structure overview
{
"shopping": [
{
"title": "boAt BassHeads 900 On-Ear Wired Headphones with Mic (White) boAt BassHeads 900 On-Ear Wired Headphones with Mic (White) ",
"link": "https://www.amazon.in/Heads-900-Wired-Headphones-White/dp/B078W65FJ7?source=ps-sl-shoppingads-lpcontext&ref_=fplfs&psc=1&smid=A14CZOWI0VEHLG",
"price": "₹599",
"by": "Amazon.in"
},
{
"title": "boAt Rockerz 510 Wireless Bluetooth Headphone with 50mm Dynamic Drivers, 20 Hours Playback Orange boAt Rockerz 510 Wireless Bluetooth Headphone with 50mm Dynamic Drivers, 20 Hours Playback Orange ",
"link": "https://www.boat-lifestyle.com/products/rockerz-510?variant=20342772924514¤cy=INR",
"price": "₹999",
"by": "boAt"
},
{
"title": "Marshall Monitor II A.N.C. Diamond Jubilee Edition Marshall Monitor II A.N.C. Diamond Jubilee Edition ",
"link": "https://www.marshallheadphones.com/in/en/1006258.html",
"price": "₹29,999",
"by": "Marshall Headp..."
},
{
"title": "ZEBRONICS Zeb-Bang Wireless Bluetooth Over The Ear Headphone with Mic and and Playback time 16 hrs (Blue) ZEBRONICS Zeb-Bang Wireless Bluetooth Over The Ear Headphone with Mic and and Playback time 16 hrs (Blue) ",
"link": "https://www.amazon.in/Zebronics-Zeb-Bang-Bluetooth-Headphone-Assistant/dp/B07YNWC1S8?source=ps-sl-shoppingads-lpcontext&ref_=fplfs&psc=1&smid=A14CZOWI0VEHLG",
"price": "₹599",
"by": "Amazon.in"
},
{
"title": "JBL Tune 500 JBL Tune 500 ",
"link": "https://in.jbl.com/JBLT500BLU.html",
"price": "₹1,699",
"by": "JBL India"
},
{
"title": "Oneplus Bullets Z2 Bluetooth Wireless in Ear Earphones with Mic (Magico Black) Oneplus Bullets Z2 Bluetooth Wireless in Ear Earphones with Mic (Magico Black) ",
"link": "https://shop.gadgetsnow.com/headphones-headsets/oneplus-bullets-z2-bluetooth-wireless-in-ear-earphones-with-mic-magico-black-/10029/p_G368734",
"price": "₹1,549",
"by": "Gadgets Now"
},
{
"title": "Wireless Earphone hite Colour Gaming Earbuds Wireless Earphone hite Colour Gaming Earbuds ",
"link": "https://nagarvel.com/product/wireless-earphone-hite-colour-gaming-earbuds/",
"price": "₹99",
"by": "nagarvel"
},
{
"title": "boAt Rockerz 370 On Ear Bluetooth Headphones with Up to 8 Hours of Musical Bliss, 40mm Dynamic Drivers (Buoyant Black) boAt Rockerz 370 On Ear Bluetooth Headphones with Up to 8 Hours of Musical Bliss, 40mm Dynamic Drivers (Buoyant Black) ",
"link": "https://www.vijaysales.com/boat-rockerz-370-on-ear-bluetooth-headphones-with-up-to-8-hours-of-musical-bliss-40mm-dynamic-drivers-buoyant-black/21338",
"price": "₹1,099",
"by": "Vijay Sales"
},
{
"title": "H500 , Black + Dark Silver H500 , Black + Dark Silver ",
"link": "https://www.fingersstore.com/headsets/wired-headsets/h500",
"price": "₹349",
"by": "fingersstore.com"
}
]
}
Results for: headphones

https://api.serphouse.com/serp/live?q=headphones&domain=google.com&lang=en&device=desktop&serp_type=web&loc=Austin,Texas,United States&loc_id=1026201&verbatim=0&gfilter=0&page=1&num_result=100
$client = new \GuzzleHttp\Client();
$response = $client->post("https://api.serphouse.com/serp/live", [
'headers' => [
"Authorization" => "Bearer {token}",
],
'json' => [
"q" => "headphones",
"domain" => "google.com",
"lang" => "en",
"device" => "desktop",
"serp_type" => "web",
"loc" => "Austin,Texas,United States",
"loc_id" => "1026201",
"verbatim" => "0",
"gfilter" => "0",
"page" => "1",
"num_result" => "100",
"api_token" => "API_TOKEN",
],
]);
$body = $response->getBody();
print_r(json_decode((string) $body));
curl --location --request POST 'https://api.serphouse.com/serp/live' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": {
"q":"headphones",
"domain":"google.com",
"lang":"en",
"device":"desktop",
"serp_type":"web",
"loc":"Austin,Texas,United States",
"loc_id":1026201,
"verbatim":0,
"gfilter":0,
"page":1,
"num_result":100,
"api_token":"API_TOKEN"
}
}'
require "uri"
require "json"
require "net/http"
url = URI("https://api.serphouse.com/serp/live")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer {token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"data": {
"q": "headphones",
"domain": "google.com",
"lang": "en",
"device": "desktop",
"serp_type": "web",
"loc": "Austin,Texas,United States",
"loc_id": 1026201,
"verbatim": 0,
"gfilter": 0,
"page": 1,
"num_result": 100,
"api_token": "API_TOKEN"
}
})
response = https.request(request)
puts response.read_body
import requests
import json
url = "https://api.serphouse.com/serp/live"
payload = json.dumps({
"data": {
"q": "headphones",
"domain": "google.com",
"lang": "en",
"device": "desktop",
"serp_type": "web",
"loc": "Austin,Texas,United States",
"loc_id": 1026201,
"verbatim": 0,
"gfilter": 0,
"page": 1,
"num_result": 100,
"api_token": "API_TOKEN"
}
})
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.serphouse.com/serp/live',
'headers': {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"data": {
"q": "headphones",
"domain": "google.com",
"lang": "en",
"device": "desktop",
"serp_type": "web",
"loc": "Austin,Texas,United States",
"loc_id": 1026201,
"verbatim": 0,
"gfilter": 0,
"page": 1,
"num_result": 100,
"api_token": "API_TOKEN"
}
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"data\": {\n \"q\":\"headphones\",\n \"domain\":\"google.com\",\n \"lang\":\"en\",\n \"device\":\"desktop\",\n \"serp_type\":\"web\",\n \"loc\":\"Austin,Texas,United States\",\n \"loc_id\":1026201,\n \"verbatim\":0,\n \"gfilter\":0,\n \"page\":1,\n \"num_result\":100,\n \"api_token\":\"API_TOKEN\"\n }\n}");
Request request = new Request.Builder()
.url("https://api.serphouse.com/serp/live")
.method("POST", body)
.addHeader("Authorization", "Bearer {token}")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.serphouse.com/serp/live"
method := "POST"
payload := strings.NewReader(`{
"data": {
"q":"headphones",
"domain":"google.com",
"lang":"en",
"device":"desktop",
"serp_type":"web",
"loc":"Austin,Texas,United States",
"loc_id":1026201,
"verbatim":0,
"gfilter":0,
"page":1,
"num_result":100,
"api_token":"API_TOKEN"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer {token}")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
{
...
"shopping": [
{
"title": "boAt BassHeads 900 On-Ear Wired Headphones with Mic (White) boAt BassHeads 900 On-Ear Wired Headphones with Mic (White) ",
"link": "https://www.amazon.in/Heads-900-Wired-Headphones-White/dp/B078W65FJ7?source=ps-sl-shoppingads-lpcontext&ref_=fplfs&psc=1&smid=A14CZOWI0VEHLG",
"price": "₹599",
"by": "Amazon.in"
},
{
"title": "boAt Rockerz 510 Wireless Bluetooth Headphone with 50mm Dynamic Drivers, 20 Hours Playback Orange boAt Rockerz 510 Wireless Bluetooth Headphone with 50mm Dynamic Drivers, 20 Hours Playback Orange ",
"link": "https://www.boat-lifestyle.com/products/rockerz-510?variant=20342772924514¤cy=INR",
"price": "₹999",
"by": "boAt"
},
{
"title": "Marshall Monitor II A.N.C. Diamond Jubilee Edition Marshall Monitor II A.N.C. Diamond Jubilee Edition ",
"link": "https://www.marshallheadphones.com/in/en/1006258.html",
"price": "₹29,999",
"by": "Marshall Headp..."
},
{
"title": "ZEBRONICS Zeb-Bang Wireless Bluetooth Over The Ear Headphone with Mic and and Playback time 16 hrs (Blue) ZEBRONICS Zeb-Bang Wireless Bluetooth Over The Ear Headphone with Mic and and Playback time 16 hrs (Blue) ",
"link": "https://www.amazon.in/Zebronics-Zeb-Bang-Bluetooth-Headphone-Assistant/dp/B07YNWC1S8?source=ps-sl-shoppingads-lpcontext&ref_=fplfs&psc=1&smid=A14CZOWI0VEHLG",
"price": "₹599",
"by": "Amazon.in"
},
{
"title": "JBL Tune 500 JBL Tune 500 ",
"link": "https://in.jbl.com/JBLT500BLU.html",
"price": "₹1,699",
"by": "JBL India"
},
{
"title": "Oneplus Bullets Z2 Bluetooth Wireless in Ear Earphones with Mic (Magico Black) Oneplus Bullets Z2 Bluetooth Wireless in Ear Earphones with Mic (Magico Black) ",
"link": "https://shop.gadgetsnow.com/headphones-headsets/oneplus-bullets-z2-bluetooth-wireless-in-ear-earphones-with-mic-magico-black-/10029/p_G368734",
"price": "₹1,549",
"by": "Gadgets Now"
},
{
"title": "Wireless Earphone hite Colour Gaming Earbuds Wireless Earphone hite Colour Gaming Earbuds ",
"link": "https://nagarvel.com/product/wireless-earphone-hite-colour-gaming-earbuds/",
"price": "₹99",
"by": "nagarvel"
},
{
"title": "boAt Rockerz 370 On Ear Bluetooth Headphones with Up to 8 Hours of Musical Bliss, 40mm Dynamic Drivers (Buoyant Black) boAt Rockerz 370 On Ear Bluetooth Headphones with Up to 8 Hours of Musical Bliss, 40mm Dynamic Drivers (Buoyant Black) ",
"link": "https://www.vijaysales.com/boat-rockerz-370-on-ear-bluetooth-headphones-with-up-to-8-hours-of-musical-bliss-40mm-dynamic-drivers-buoyant-black/21338",
"price": "₹1,099",
"by": "Vijay Sales"
},
{
"title": "H500 , Black + Dark Silver H500 , Black + Dark Silver ",
"link": "https://www.fingersstore.com/headsets/wired-headsets/h500",
"price": "₹349",
"by": "fingersstore.com"
}
]
...
}
Results for: headphones on mobile

https://api.serphouse.com/serp/live?q=headphones&domain=google.com&lang=en&device=mobile&serp_type=web&loc=Austin,Texas,United States&loc_id=1026201&verbatim=0&gfilter=0&page=1&num_result=100
$client = new \GuzzleHttp\Client();
$response = $client->post("https://api.serphouse.com/serp/live", [
'headers' => [
"Authorization" => "Bearer {token}",
],
'json' => [
"q" => "headphones",
"domain" => "google.com",
"lang" => "en",
"device" => "mobile",
"serp_type" => "web",
"loc" => "Austin,Texas,United States",
"loc_id" => "1026201",
"verbatim" => "0",
"gfilter" => "0",
"page" => "1",
"num_result" => "100",
"api_token" => "API_TOKEN",
],
]);
$body = $response->getBody();
print_r(json_decode((string) $body));
curl --location --request POST 'https://api.serphouse.com/serp/live' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": {
"q":"headphones",
"domain":"google.com",
"lang":"en",
"device":"mobile",
"serp_type":"web",
"loc":"Austin,Texas,United States",
"loc_id":1026201,
"verbatim":0,
"gfilter":0,
"page":1,
"num_result":100,
"api_token":"API_TOKEN"
}
}'
require "uri"
require "json"
require "net/http"
url = URI("https://api.serphouse.com/serp/live")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer {token}"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"data": {
"q": "headphones",
"domain": "google.com",
"lang": "en",
"device": "mobile",
"serp_type": "web",
"loc": "Austin,Texas,United States",
"loc_id": 1026201,
"verbatim": 0,
"gfilter": 0,
"page": 1,
"num_result": 100,
"api_token": "API_TOKEN"
}
})
response = https.request(request)
puts response.read_body
import requests
import json
url = "https://api.serphouse.com/serp/live"
payload = json.dumps({
"data": {
"q": "headphones",
"domain": "google.com",
"lang": "en",
"device": "mobile",
"serp_type": "web",
"loc": "Austin,Texas,United States",
"loc_id": 1026201,
"verbatim": 0,
"gfilter": 0,
"page": 1,
"num_result": 100,
"api_token": "API_TOKEN"
}
})
headers = {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.serphouse.com/serp/live',
'headers': {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"data": {
"q": "headphones",
"domain": "google.com",
"lang": "en",
"device": "mobile",
"serp_type": "web",
"loc": "Austin,Texas,United States",
"loc_id": 1026201,
"verbatim": 0,
"gfilter": 0,
"page": 1,
"num_result": 100,
"api_token": "API_TOKEN"
}
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"data\": {\n \"q\":\"headphones\",\n \"domain\":\"google.com\",\n \"lang\":\"en\",\n \"device\":\"mobile\",\n \"serp_type\":\"web\",\n \"loc\":\"Austin,Texas,United States\",\n \"loc_id\":1026201,\n \"verbatim\":0,\n \"gfilter\":0,\n \"page\":1,\n \"num_result\":100,\n \"api_token\":\"API_TOKEN\"\n }\n}");
Request request = new Request.Builder()
.url("https://api.serphouse.com/serp/live")
.method("POST", body)
.addHeader("Authorization", "Bearer {token}")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.serphouse.com/serp/live"
method := "POST"
payload := strings.NewReader(`{
"data": {
"q":"headphones",
"domain":"google.com",
"lang":"en",
"device":"mobile",
"serp_type":"web",
"loc":"Austin,Texas,United States",
"loc_id":1026201,
"verbatim":0,
"gfilter":0,
"page":1,
"num_result":100,
"api_token":"API_TOKEN"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer {token}")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
{
...
"shopping": [
{
"title": "Headset Wireless Music Headset With Built-in Microphone For Apple, Samsung & Other Mobile Devices,Temu",
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwiat_a61N_9AhXhg1sKHYlKCEsYABAIGgJ5bQ&ae=2&sig=AOD64_2wHRMySODar6OTuG7BrABSfiemtg&ctype=5&q=&ved=2ahUKEwj9z-261N_9AhXvlIkEHdEJDI0Qwg8oAHoECAQQDA&adurl=",
"price": "$22.48"
},
{
"title": "Sony - WH-1000XM4 Wireless Noise-Cancelling Over-the-Ear Headphones - Silver",
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwiat_a61N_9AhXhg1sKHYlKCEsYABAMGgJ5bQ&sig=AOD64_0LlHMNZN4OjteXwSNDrlkKSrahSA&ctype=46&q=&ved=2ahUKEwj9z-261N_9AhXvlIkEHdEJDI0QzzkoAHoECAQQEw&adurl=",
"price": "$349.99"
},
{
"title": "Crusher Wireless Immersive Bass Headphone BLACK/CORAL/BLACK| Color: Black",
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwiat_a61N_9AhXhg1sKHYlKCEsYABALGgJ5bQ&sig=AOD64_15FdlOwCOAaKfR-BlA0GLuhvx0hQ&ctype=5&q=&ved=2ahUKEwj9z-261N_9AhXvlIkEHdEJDI0Qwg8oAHoECAQQHA&adurl=",
"price": "$159.99$200 "
},
{
"title": "Raycon The Everyday Headphones in Rose Gold",
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwiat_a61N_9AhXhg1sKHYlKCEsYABAJGgJ5bQ&ae=2&sig=AOD64_2ZgQEaRjswPNiYbz5nE3OpgtO5RQ&ctype=5&q=&ved=2ahUKEwj9z-261N_9AhXvlIkEHdEJDI0Qwg8oAHoECAQQJA&adurl=",
"price": "$99.99"
},
{
"title": "Bose QuietComfort 45 Wireless Bluetooth Noise-Cancelling Headphones - White",
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwiat_a61N_9AhXhg1sKHYlKCEsYABAOGgJ5bQ&sig=AOD64_1PPMzUXv6oZm7mAgFtFem70fev3w&ctype=46&q=&ved=2ahUKEwj9z-261N_9AhXvlIkEHdEJDI0QzzkoAHoECAQQKw&adurl=",
"price": "$279.99$330 "
}
]
...
}