Google Shopping stores API: every store and price for one product
Keep paging through the stores that sell one product on Google Shopping: store name, price, discount, shipping, rating and a link to each listing. €0.0015 per page of stores.
- per 1,000 calls
- €1.50
- per call
- €0.0015
- 0.15 cents
- rows per call
- up to 1
- per 1,000 rows
- ≈ €1.50
The full seller list for one product, page by page
The Google Shopping stores API returns the next page of stores selling one product on Google Shopping. For each store you get the name, a link to its listing, its rating, the price as text and as a number, any discount, the shipping note and a merchant ID. Each page is one call at €0.0015, so 1,000 pages cost €1.50. Prices for every other source are on our page of all data APIs and prices. Every page of stores you pull is saved in your Scrapewise account, so the table, Excel, your AI assistant and the API all read the same rows.
A product can have more stores than fit on the first page. The Google Shopping product API gives you the first page of stores and a page token. This API takes the catalog ID and that token and returns the next page, with a new token if there's more. Keep calling until no token comes back, and you have the whole list.
Think of it as the open-web version of the Amazon offers API. On Amazon you check every seller on one listing. Here you check every web store that sells the same product through Google Shopping. Use it to check pricing and to find stores you never approved.
Who uses the Google Shopping stores API
Brand owners
Get the full list of shops selling your product and compare it with your approved dealer list. Any name that isn't on your list is a lead to follow up.
MAP and pricing teams
Flag every store selling under your minimum advertised price, including the ones on page three that nobody checks by hand.
Resellers and buyers
Find the cheapest place to buy stock by comparing price and shipping across every page of stores.
Distributors looking for retailers
Collect store names and links for a product category and build a list of shops to contact.
How it works
Open the product
Call the Google Shopping product API with a catalog ID. The row includes the first stores and a page token.
Page through the stores
Send the catalog ID and the token here. Each page is one call at €0.0015 and returns a new token while more stores remain. Use each token soon after you get it. Every page is saved with its date.
Combine and check
Sort by price or filter by store in the table or Excel, pull rows by API, or ask your AI assistant: 'which stores sell this product below my price today?'
Set it up once. The data keeps coming.
Save your search once and it runs by itself. Every run lands in your own Scrapewise database, and you pick how to read it.
Set it up once
Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.
Runs on your schedule
Pick daily, weekly on the days you choose, every few days, or the first or last day of the month. Scheduled runs start at night, European time. Need it more often? Start runs from your own code.
Saved in your database
Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.
Use it your way
Open the table in the web app and download the latest run as an Excel file. Ask your own AI assistant about it. Or pull the rows into your code with an API key.
Ask your AI assistant about your own data
Connect Claude Desktop, Claude Code or another MCP app with a read-only key. The assistant reads the rows you've already collected, at no extra cost on Scrapewise. With a full-access key it can start a run for you too.
- Which of my ASINs lost the Buy Box this week?
- Which competitor cut prices the most since Monday?
- Show the keywords where I dropped out of the top 10.
What you send and what you get
Send the catalog ID and the page token from the Google Shopping product API. Both are required. You get one row per page of stores, with numbered columns for each store and a token for the next page.
- Google Shopping catalog IDrequired
2713180287238039708 - Continuation token from Shopping Productrequired
eyJ2Ijoic3RvcmVzLTEi…
Up to 1 rows per call, 75 columns each
- sw status
- sw source url
- sw title
- sw external id
- sw id kind
- sw price
- sw currency
- sw price unit
- sw seller
- sw location
- sw locale
- sw fetched at
- +63 more, see all columns
Sample rows: a later page of stores
Built from real store offers for coffee grinders on Google Shopping in the US, collected on 16 September 2026. Store names and prices are real; the rows show how they appear as a later page, starting at position 6. Scroll sideways to see every column.
sw status_sw_statusResult of this row: OK, no results, or an error | sw source url_sw_source_urlThe input you gave: a link, keyword or ID | sw title_sw_titleMain name of the item | sw external id_sw_external_idThe site's own ID for this item | sw id kind_sw_id_kindWhat kind of ID the external ID is | sw price_sw_pricePrice as a number | sw currency_sw_currencyCurrency of the price | sw price unit_sw_price_unitWhat the price covers: item, night, trip, offer | sw seller_sw_sellerWho sells or publishes it | sw location_sw_locationPlace the result is priced or ranked for | sw locale_sw_localeLanguage and country used for the request | sw fetched at_sw_fetched_atWhen we collected this row (UTC) | product_idproduct_idProduct id | next_page_tokennext_page_tokenNext page token | sourcesourceSource |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OK | https://www.google.com/search?ibp=oshop&prds=catalogid:2713180287238039708 | 2713180287238039708 | 2713180287238039708 | google_product_id | 45.59 | USD | item | Walmart | en-US | en-US | 2026-09-16T10:10:02Z | 2713180287238039708 | catalog_oapv_more | |
| OK | https://www.google.com/search?ibp=oshop&prds=catalogid:16505465140204459456 | 16505465140204459456 | 16505465140204459456 | google_product_id | 14.53 | USD | item | Walmart - CANS Global Inc | en-US | en-US | 2026-09-16T10:10:39Z | 16505465140204459456 | catalog_oapv_more | |
| OK | https://www.google.com/search?ibp=oshop&prds=catalogid:1158949594249714284 | 1158949594249714284 | 1158949594249714284 | google_product_id | 95.99 | USD | item | Target | en-US | en-US | 2026-09-16T10:11:16Z | 1158949594249714284 | catalog_oapv_more | |
| OK | https://www.google.com/search?ibp=oshop&prds=catalogid:16729051016719874545 | 16729051016719874545 | 16729051016719874545 | google_product_id | 127.2 | USD | item | Timemore | en-US | en-US | 2026-09-16T10:11:53Z | 16729051016719874545 | catalog_oapv_more | |
| OK | https://www.google.com/search?ibp=oshop&prds=catalogid:8995058965890077674 | 8995058965890077674 | 8995058965890077674 | google_product_id | 94.99 | USD | item | normcorewares.com | en-US | en-US | 2026-09-16T10:12:30Z | 8995058965890077674 | catalog_oapv_more |
Column guide
Each row is one page of stores. Stores on the page are numbered from 0, so stores[0] is the first store on that page, even when its position on Google is 6. The sw columns (shown as sw price, sw seller and so on) carry the first store's price and name, with the same names as on every Scrapewise data API.
Standard columns shared with every API
sw external id is the catalog ID, sw price and sw seller come from the first store on the page, and sw locale is the language and country.
- sw status
- sw source url
- sw title
- sw external id
- sw id kind
- sw price
- sw currency
- sw price unit
- sw seller
- sw location
- sw locale
- sw fetched at
Product and paging
The product ID, where the data came from on Google's side, and the token for the next page. An empty token means this was the last page.
- product_id
- source
- next_page_token
First store on the page
Position on Google, store name, link, listing title, rating, price as shown and as a number, tag, shipping note and merchant ID. Discount, original price, shipping as a number and the total are filled when the store shows them.
- stores[0]_position
- stores[0]_name
- stores[0]_link
- stores[0]_title
- stores[0]_rating
- stores[0]_price
- stores[0]_extracted_price
- stores[0]_tag
- stores[0]_shipping
- stores[0]_merchant_id
- stores[0]_original_price
- stores[0]_extracted_original_price
- stores[0]_old_price
- stores[0]_extracted_old_price
- stores[0]_discount
- stores[0]_shipping_extracted
- stores[0]_total
- stores[0]_extracted_total
Next stores on the page
The same store fields for the following stores. Discount columns appear when a store shows a markdown.
- stores[1]_position
- stores[1]_name
- stores[1]_link
- stores[1]_title
- stores[1]_rating
- stores[1]_price
- stores[1]_extracted_price
- stores[1]_original_price
- stores[1]_extracted_original_price
- stores[1]_old_price
- stores[1]_extracted_old_price
- stores[1]_discount
- stores[1]_shipping
- stores[1]_merchant_id
- stores[2]_position
- stores[2]_name
- stores[2]_link
- stores[2]_title
- stores[2]_rating
- stores[2]_price
- stores[2]_extracted_price
- stores[2]_shipping
- stores[2]_shipping_extracted
- stores[2]_merchant_id
- stores[3]_position
- stores[3]_name
- stores[3]_link
- stores[3]_title
- stores[3]_rating
- stores[3]_price
- stores[3]_extracted_price
- stores[3]_shipping
- stores[3]_merchant_id
- stores[4]_position
- stores[4]_name
- stores[4]_link
- stores[4]_title
- stores[4]_rating
- stores[4]_price
- stores[4]_extracted_price
- stores[4]_shipping
- stores[4]_merchant_id
What brands and sellers do with the store list
Find unauthorized retailers
Stack all pages for your product and compare the store names against your approved dealer list. New names go on a follow-up sheet with their link.
Check MAP pricing across stores
Filter the extracted price columns for anything under your minimum advertised price. The link column takes you straight to the listing for a screenshot.
Find the cheapest source
Add price and shipping for each store. The shipping note and, for the first store on a page, the total column help you compare the real cost.
Track discounting
The original price, old price and discount columns show which stores are marking the product down and how deep, for example 34% off.
Build a retailer outreach list
Export store names, links and merchant IDs. Match merchant IDs across your products to see which stores carry several of your items.
Real setups and what they cost
Weekly MAP check
A brand checks 30 products every week. Each needs the product call plus about 3 more pages of stores, so 4 calls per product. About 520 calls a month, €0.78.
- calls per month
- 520
- cost per month
- €0.78
Daily dealer watch on hero items
A brand follows 10 hero products every day, 5 calls each to reach the end of the store list. 1,500 calls a month, €2.25.
- calls per month
- 1,500
- cost per month
- €2.25
One-off retailer list
A distributor maps the stores for 300 products in one category, about 3 pages each. The 900 store calls cost €1.35, plus €0.45 for the 300 Shopping Product calls that run first.
- calls per month
- 900
- cost per month
- €1.35
Why brands pick this API
It reaches the stores nobody checks
Paging takes you past the first page, so a store listed in position 12 gets checked like the one in position 1.
You pay per page
€0.0015 per page of stores, whatever the number of stores on it. Stop paging when you have what you need.
Same job as Amazon offers, on the open web
The same MAP and seller checks you run on Amazon listings, for every web store on Google Shopping.
What your store checks would cost
Enter how many products you check, how many pages of stores each has, and how often. Each page is one call at €0.0015. Compare all data APIs
- Rows (up to)
- 1,000
- You pay
- €1.50
Frequently asked questions
The catalog ID and a page token. You get the catalog ID from the Google Shopping API and the first token from the Google Shopping product API. Every page you fetch here returns the token for the page after it.
Ready to pull Google data into your stack?
Try it with your 5 free requests. After that, top up from €5 and pay €0.0015 per page of stores. See pay-as-you-go pricing for the details.