John Cole

Jul 14, 2026 • 4 min read

How to Track a Product's Price Across Every Retailer With One API

Use the Google Shopping API to pull live prices, sellers, and deals for any product as clean JSON, on a schedule or from Claude via MCP.

The problem: prices move, and you find out late

If you sell online or shop for the best deal, the price you saw yesterday is already stale. A competitor drops their price, a retailer starts a sale, an item sells out at one store and appears cheaper at another. Checking each site by hand does not scale. What you want is one call that returns every seller's live price for a product, as data you can store and compare.

What the Google Shopping API is

The Google Shopping API is a hosted scraper that turns a Google Shopping search into structured JSON: for any product query it returns the current listings with prices, sellers, ratings, delivery, and sale tags. It runs on Apify with pay-per-event pricing, roughly $0.04 for a page of about 40 products.

What it returns

Each product row includes:

  • Title and product ID

  • Display price and a numeric extracted price

  • Old price and extracted old price on sale items

  • Seller name, rating, and review count

  • Snippet, badge extensions like "20% off", and delivery info

  • Thumbnail image and the product link

You can filter by minimum and maximum price, sort cheapest or most expensive first, and restrict to free-shipping or on-sale items. It reads what Google Shopping publicly shows, prices are localized by your country and language settings, and the filters list comes back on the first page only.

Run it in three steps

  1. Open the Google Shopping API and click Try for free.

  2. Enter a query in the q field, for example wireless headphones, and set gl, hl, and location for your market.

  3. Run it. Results appear as JSON in the Output tab, with CSV export built in.

Use it as a REST API

Prefer to call it yourself? Run the actor over the Apify API and get the dataset back in one request. Send the input as a JSON body to the run-sync endpoint:

POST /v2/acts/johnvc~google-shopping-api-google-shopping-products-prices-deals/run-sync-get-dataset-items
{"q": "wireless headphones", "gl": "us", "hl": "en", "max_pages": 1}

Wire it into Claude with MCP

The API is available to any AI agent connected to the Apify MCP server. Once connected, the agent finds it, reads its input schema, and runs it with the right filters. Ask "what is the cheapest wireless headphone on Google Shopping right now?" and it returns structured rows, no scraping code. It works in Claude, Cursor, VS Code, Cline, and Windsurf.

What people build with it

Price monitors, repricing models, deal alerts, and MAP-violation checks all run off the same rows. See the 31 runnable examples, from air fryer deal tracking to MAP violation monitoring, or open the project on Peerlist.

FAQ About Scraping Google Shopping

Where does the Google Shopping scraper get its data?

It returns the product listings Google Shopping publicly shows for your query, localized by the country, language, and location you set. Data is fetched live at run time, so prices and sale tags reflect what is on Google Shopping when the run executes.

How do I call the Google Shopping API and what does it cost?

Call it over the Apify API by POSTing a JSON body with your query and filters to the run-sync endpoint, and read the dataset back as JSON. Pricing is pay-per-event: about $0.04 for one page of roughly 40 products, so five pages of about 200 products cost around $0.12. No subscription.

Can I use the Google Shopping scraper from Claude or another AI agent via MCP?

Yes. Add it as a tool through the Apify MCP server and any MCP client, Claude, Cursor, and others, can call it on request with live data. No client code is required.

Can I schedule the Google Shopping scraper to run automatically?

Yes. Save a task with your query and filters, then attach a schedule from the actor's Actions, then Schedule menu. Useful cron strings are

 0 7 * * * 

for daily at 7 AM and

0 */6 * * * 

for every six hours. One schedule can trigger many tasks at once, so a whole watchlist refreshes in a single tick and you build a price history over time.

Issues get a same-day response, and every field above comes straight from the actor's documented output.

Join John on Peerlist!

Join amazing folks like John and thousands of other builders on Peerlist.

peerlist.io/

It’s available... this username is available! 😃

Claim your username before it's too late!

This username is already taken, you’re a little late.😐

2

1

0