ECOMMERCESEO TOOLS API MCP READY

Google Shopping API

Product listings from Google Shopping — prices, ratings, sellers, delivery information and discount tags — filterable by price range, sale status, free shipping and device, and localizable to any market with multi-page pagination.

MEDIAN LAGon demand
PARAMETERS12
TOTAL USERS97
MONTHLY ACTIVE36
RUNS SUCCEEDED99.9%
RATING5.0 (3)

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
q string yes Product or keyword, e.g. 'wireless headphones'
location string no Localizes results, e.g. 'Austin, Texas, United States'
gl string no Two-letter country code: us, uk, de, fr, ca, au …
hl string no Two-letter language code: en, es, de, fr, ja …
google_domain string no google.com google.co.uk, google.de, google.fr …
device enum no desktop desktop · tablet · mobile — results and prices can differ
min_price number no Floor in local currency
max_price number no Ceiling in local currency
sort_by integer no 1 = price ascending, 2 = price descending, blank = relevance
free_shipping boolean no false Only offers with free shipping
on_sale boolean no false Only discounted offers
max_pages integer no 1 ~40 products per page. 0 = no limit. — drives your bill

Worked examples

Basic — one keyword, defaults
{ "q": "wireless headphones" }
Price band — floor, ceiling and sort
{
  "q": "mechanical keyboard",
  "min_price": 80,
  "max_price": 250,
  "sort_by": 1
}
Deals only — discounted, free shipping
{
  "q": "running shoes",
  "on_sale": true,
  "free_shipping": true
}
Local market — UK domain and locale
{
  "q": "espresso machine",
  "google_domain": "google.co.uk",
  "gl": "uk",
  "hl": "en"
}
Mobile pricing — device split for the same query
{
  "q": "iphone 15 case",
  "device": "mobile",
  "max_pages": 3
}
POWER-USER TIP
Device changes the result set — Google serves different listings and occasionally different prices to mobile. If you are tracking a competitor's shelf price, pin device explicitly rather than accepting the desktop default, and keep it constant across the series.

Coverage

40
products per page — approximately, before pagination
3
device profiles — desktop · tablet · mobile
5
filter axes — price floor · price ceiling · sale · free shipping · sort order

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~google-shopping-api-google-shopping-products-prices-deals/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"q":"wireless headphones","min_price":50,"max_pages":2}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/google-shopping-api-google-shopping-products-prices-deals").call(
    run_input={"q": "running shoes", "on_sale": True, "free_shipping": True}
)
for p in client.dataset(run.default_dataset_id).iterate_items():
    print(p.get("title"), p.get("price"), p.get("source"))

What people use it for

Alternatives