Site scraper

Google Shopping Scraper: Shopping Results via API

HTTP $0.50JS rendering $2.00 per 1,000 results or your own scraper from $1.95/GB

ProxyField scrapes Google Shopping with its Web Scraping API: the Shopping results for any query, with JS rendering, cost $2.00 per 1,000 successful results, from $1.00 at volume, and Google's main results page comes as JSON from the Google SERP API at $1.20 per 1,000, from $0.80. Contact sales to start with either API, or run your own Google Shopping scraper on ProxyField residential proxies with the Easy Trial: 1 GB for $2.95.

Web Scraping API per 1,000 successful results
Web Scraping API prices per 1,000 successful results
FetchEntryVolume, from
HTTP$0.50$0.20
JS rendering$2.00$1.00

Billed on successful results only.

Your own scraper on residential proxies
from $1.95/GB Easy Trial: 1 GB for $2.95
gate.proxyfield.io:7000
Data

What Google Shopping shows

Google Shopping collects product offers from thousands of stores, so one query shows you who sells a product and at what price. A scraper reads 4 kinds of shopping results:

WhereWhat it holds
The Shopping tab for a queryA grid of products with title, price, store, rating, review count, shipping and sale labels, sponsored and organic
A product's offers panelThe same product from several stores, each with price, shipping, total and a link to the store
Inline shopping results on the main results pageProduct carousels and shopping ads above or between the web results
Nearby and related resultsProducts in stock at stores near the searcher's location, and related shopping searches

What each scraper returns: the Web Scraping API returns the page, and your parser reads the fields; ProxyField sells no separate Google Shopping API with pre-parsed fields. The API returns the page itself as HTML, Markdown or plain text, or a JSON envelope with the status code, the final URL, the headers, the cookies and the content; it has no parsed Google Shopping fields, so your parser reads them.

Compare

Which ProxyField API for which Shopping data

DataProxyField routePrice per 1,000 successful results
Shopping tab resultsWeb Scraping API with JS rendering$2.00, from $1.00 at volume
A product's offers panelWeb Scraping API with JS rendering$2.00, from $1.00 at volume
Main results page, including any inline shopping unitsGoogle SERP API (the page as JSON)$1.20, from $0.80 at volume
Your own scraperResidential proxies$2.95/GB for 1 GB, from $1.95/GB

The Google SERP API parses the AI Overview, People Also Ask and the local pack, and returns inline shopping results from a normal Google search (title, price, merchant, rating, link); the Shopping tab is not part of it.

How it works

How a request works

You send the URL of a Shopping results page, the one your browser shows after you click Shopping for a query, and ask for JS rendering; the API returns the rendered page. Google sets the country and language of the results from the request's location and the gl and hl parameters of the URL. The API takes a POST to https://api.proxyfield.io/v1/scrape with your API key in an Authorization: Bearer <api_key> header and a JSON body: url, render (false for plain HTTP, true for JS rendering), country and output (html, markdown, text or json). Since the Shopping results build in the browser, wait_for takes a CSS selector to wait for before the rendered page is returned. country sets the country the request comes from (the exit IP), as a two-letter code such as de; the countries it accepts: the proxy pool's 195+ countries. Parameter reference: API documentation.

Shell
# The request the Web Scraping API takes (access through Contact sales)
curl https://api.proxyfield.io/v1/scrape \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.google.com/search?q=noise+cancelling+headphones&tbm=shop&gl=us&hl=en", "render": true, "country": "us", "output": "json"}'

Example response (shortened; content is the rendered page's HTML):

JSON
{
  "metadata": {"id": "req_d01222c435572758", "api": "web_scrape", "status": "success", "billed": true},
  "status_code": 200,
  "final_url": "https://www.google.com/search?q=noise+cancelling+headphones&tbm=shop&gl=us&hl=en",
  "content_type": "text/html; charset=UTF-8",
  "content": "<!doctype html><html lang=\"en\">…</html>"
}

Plain HTTP is $0.50 per 1,000, from $0.20, but Google answers plain HTTP clients without a browser with a page that needs JavaScript, so Shopping results need JS rendering.

Pricing

Pricing: $2.00 per 1,000 Shopping pages, from $1.00

You pay only for successful results. The volume price starts at 10,000 successful results in one purchase.

Billed: a page Google answered with a 2xx status. Not billed: blocked requests, timeouts and errors on our side; a blocked request is retried on new IPs, and the retries are not billed. Every response says whether it was billed. A target's 404 or 410, and a sign-in page the site serves with a 200 status, count as billed results. Contact sales through the sales team on our 24/7 live chat.

Payment and balance for the API: the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. All prices: pricing.

Through the sales team on our 24/7 live chat

Workload (30-day month)
Workload (30-day month), Pages a month, JS rendering $2.00, JS rendering $1.00 (volume)
Workload (30-day month)Pages a monthJS rendering $2.00JS rendering $1.00 (volume)
500 products' offers, daily15,000$30$15
200 queries in 5 countries, daily30,000$60$30
2,000 queries, weekly (4 runs)8,000$16$8
Compare

Does Google have an API for Shopping results?

No. Google's Merchant Center APIs let merchants upload and manage their own products and see their own performance; they do not return the Shopping results for a query or other stores' prices. That view comes from the results pages themselves, which is what a Google Shopping scraper reads.

Good to know

Why Google Shopping scrapes fail

Two things stop most attempts. Plain HTTP requests get a page that needs JavaScript instead of the results, and fast or repetitive traffic, especially from datacenter IPs, gets Google's "unusual traffic" page. Render the page in a browser, keep a pause between queries per IP, and use residential IPs. With the Web Scraping API you pay only for successful results.

Country, city and nearby results

Prices, stores and currency on Google Shopping follow the searcher's country, and nearby results follow the location Google has for the searcher. Fetch each market from an IP in its country and keep the country and language in every row. ProxyField has 412M+ residential IPs in 195+ countries, with targeting by country, region (state) and city, so the IP Google sees can sit in the city whose nearby results you want. The pool is clean for Google, checked and segmented.

Use cases

What teams use Google Shopping data for

  • Price comparison: what every store charges for your products and competitors' products.
  • Share of shelf: how often your products and stores appear for your category's queries, sponsored and organic.
  • Minimum advertised price checks across the stores that list your brand.
  • Market entry research: prices and sellers in a new country before you launch there.

For proxies for Google work in general, see proxies for Google; for prices directly from store pages, price scraping.

Do it yourself

Scrape Google Shopping with Python and ProxyField proxies

Shopping results build in the browser, so this script opens the Shopping results for a query in Playwright through a US residential IP and prints the page's product titles and prices. Google changes its markup often: treat the selectors as a starting point and check what the page actually contains.

Python
from urllib.parse import quote_plus
from playwright.sync_api import sync_playwright

proxy = {"server": "http://gate.proxyfield.io:7000",
         "username": "<login>-country-us-city-new_york", "password": "<password>"}
query = "noise cancelling headphones"
url = f"https://www.google.com/search?q={quote_plus(query)}&tbm=shop&gl=us&hl=en"
with sync_playwright() as p:
    browser = p.chromium.launch(proxy=proxy)
    page = browser.new_page(locale="en-US")
    page.goto(url, wait_until="networkidle", timeout=60000)
    if "unusual traffic" in page.content().lower():
        print("Google's unusual-traffic page: slow down and use a new IP")
    else:
        for card in page.locator("h3").all()[:20]:
            box = card.locator("xpath=ancestor::div[1]/..")
            print(card.inner_text(), "|", box.inner_text()[:120].replace("\n", " "))
    browser.close()

The script uses the tbm=shop form of the Shopping URL; if Google opens Shopping under another URL in your browser, use that one. ProxyField gives you a new IP on every request or a sticky session from 30 s to 36 h, over HTTP, HTTPS or SOCKS5. Residential proxies cost $2.95/GB for 1 GB and from $1.95/GB at volume; the traffic never expires, and all purchases are final. Browser set-up: Playwright with ProxyField.

More scrapers

More scrapers

FAQ

Google Shopping Scraper FAQ

24/7 support by live chat, including help with setup and integration.

What is a Google Shopping scraper?

ProxyField's Google Shopping scraper is its Web Scraping API with JS rendering: it fetches the Shopping results for any query for $2.00 per 1,000 successful results, from $1.00 at volume. In general, a Google Shopping scraper collects the products, prices, stores and ratings Google shows for a shopping query, so you can compare offers across stores.

How do I scrape Google Shopping?

Open the Shopping results for your query in a real browser, or send that URL to a scraping API with JS rendering, then read each product's title, price, store and rating. Fetch from an IP in the country whose prices you need, keep a pause between queries, and store the query, country and date with every row.

How do I scrape Google Shopping results with Python?

Use Playwright, since the results build in the browser: open the Shopping results URL for your query through a residential proxy, wait for the products to load, and read titles and prices from the page. The example on this page does that through gate.proxyfield.io:7000; check for Google's unusual-traffic page before you parse.

Can I scrape Google Shopping prices across stores?

Yes: a product's offers panel lists the same product from several stores, each with price, shipping and total, so one page gives you the price spread. Scrape it daily for the products you track and keep the store name with each price.

What are inline shopping results, and can a scraper API collect them?

Inline shopping results are the product carousels and shopping ads Google places on the main results page, between or above the web results. They are part of that page, so a scraper that fetches the main results page receives them; ProxyField's Google SERP API returns the main results page as JSON for $1.20 per 1,000 successful results.

Can I scrape the nearby shopping results on Google?

Yes, but they depend on where Google thinks the searcher is, so fetch them from an IP in the city you care about. ProxyField residential proxies target by country, region (state) and city.

Is a Google Shopping crawler different from a scraper?

A crawler discovers pages by following links; a scraper extracts data from pages you choose. For Google Shopping you usually scrape: you know your queries or products, so you fetch their result pages directly rather than crawling.

Does ProxyField's Google SERP API cover Google Shopping?

ProxyField's Google SERP API returns Google's main results page as JSON, with the AI Overview, People Also Ask and the local pack parsed, for $1.20 per 1,000 successful results. For the Shopping results themselves, send the Shopping URL to the Web Scraping API with JS rendering, at $2.00 per 1,000.

What does a Google Shopping results scraper API cost?

On ProxyField, Shopping pages with JS rendering cost $2.00 per 1,000 successful results, from $1.00 at volume. Checking 200 queries in 5 countries every day is 30,000 pages a month: $60, or $30 at the volume price.

Show 5 more questionsShow fewer questions

Can I scrape Google Shopping without paying for an API?

Yes, with your own browser script, as long as you handle rendering and Google's traffic checks yourself; a few queries from your own connection work. For daily runs you pay for something either way, either for an API or for proxies: ProxyField residential proxies start with the Easy Trial, 1 GB for $2.95.

Does Google Shopping need JavaScript rendering?

Yes: plain HTTP requests get a page that needs JavaScript instead of the results. Render it in a browser such as Playwright, or use the Web Scraping API with JS rendering.

How do I scrape multiple Google Shopping search terms?

Keep a list of queries and the countries you need, build one Shopping URL per pair with the URL's gl (country) and hl (language) parameters set to match, and send each from an IP in that country, a few seconds apart per IP. ProxyField has residential IPs in 195+ countries, such as 61.2M+ in the United States and 16.6M+ in the United Kingdom; store the query, country and date with every row.

Is there an official Google Shopping API?

Not for results: Google's Merchant Center APIs let merchants upload and manage their own products and see their own performance. Other stores' prices and the results for a query come only from the results pages.

How often should I scrape Google Shopping results?

Daily for prices you actively compete on, weekly for share-of-shelf tracking across many queries. Run at the same hour each time, because sponsored results and offers change during the day.

Collect Google Shopping pages with the Web Scraping API

Billed on successful results only. Contact sales for the Web Scraping API and the volume you need, or run your own scraper on residential proxies. 24/7 live chat helps with setup and integration.