Apify scrape google shopping
Skill johnisanerd/claude-skill-scrape-google-shopping/apify-scrape-google-shopping
Claude/agent skill: scrape Google Shopping products, prices, and sellers. Installs via npx skills add.
npx -y skills add johnisanerd/claude-skill-scrape-google-shopping --skill apify-scrape-google-shoppingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 18 days oldThe repository was created 18 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Google Shopping scraping into structured JSON with the Apify Google Shopping API Actor (johnvc/google-shopping-api-google-shopping-products-prices-deals). Give a product search query plus optional country, language, and price filters, and get about 40 products per page with title, source seller, price, extracted_price, old_price on sale items, rating, reviews, delivery, thumbnail, and product_link. Use when the user wants to scrape Google Shopping, export Google Shopping results to JSON or CSV, build a product prices dataset, pull listings for a product or category, or asks for google shopping scraping, google shopping data, or product data extraction from Google Shopping. Pay-per-page billing, MCP-ready for Claude and other AI agents.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.1 KB, as published. Nobody here has run it
Google Shopping Scraping: Product Listings to Structured JSON
Scrape Google Shopping into clean JSON with the Apify Google Shopping API. Give it a product query and optional filters, and get about 40 products per page: title, seller, current price, sale price versus old price, rating, review count, delivery note, thumbnail, and a product link.
When to use this skill
- The user wants to scrape Google Shopping results (to JSON, CSV, a sheet, or a database).
- They want product listings and prices for a query, brand, or category as a dataset.
- They want Google Shopping data for research, catalog building, or price comparison.
- They ask for "google shopping scraping", "google shopping data", or "product data extraction".
Not for: recurring price monitoring or deal alerts (use the ecommerce-intelligence skill), deep per-seller offers and specs for one product (use the Google Immersive Product API), or cheap high-volume price checks with fewer fields (use the Google Shopping Lite API).
What you get (one dataset item per page, about 40 products each)
Each dataset item is one page of results, with the products nested in shopping_results:
- Always present per product:
position,title,product_id,product_link,source(seller name),price(display string),extracted_price(number),thumbnail,immersive_product_page_token(hand it to the Google Immersive Product API for full product detail),multiple_sources(boolean, true when several sellers list the product). - Present when Google shows them:
rating,reviews,snippet,delivery(string such as "Free delivery on $35+"),extensions(badge strings such as "62% OFF"),tag(sale badge),old_priceplusextracted_old_price(sale items only),second_hand_condition(used or refurbished listings). - Page level:
search_parameters(q,gl,hl,device,max_pages),search_metadata(results_count,pages_processed,max_pages_set,pagination_limit_reached),search_timestamp,page_number, andfilters(Google's own filter chips, first page only).
Prerequisites
- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=skillrepo).
- Authentication via
apify login, or anAPIFY_TOKENenvironment variable (Apify Console, Settings, Integrations).
The Actor
- Store page: https://apify.com/johnvc/google-shopping-api-google-shopping-products-prices-deals?fpr=9n7kx3&fp_sid=skillrepo
- Actor ID:
johnvc/google-shopping-api-google-shopping-products-prices-deals - Pricing: pay per page of results processed, plus a small per-run setup fee (see
references/gotchas.md).
Run it with the Apify CLI
Scrape the first page for a product query in the US:
apify actors call "johnvc/google-shopping-api-google-shopping-products-prices-deals" -i '{"q":"wireless headphones","gl":"us","hl":"en","max_pages":1}' \
--json \
--user-agent apify-awesome-skills/apify-scrape-google-shopping \
2>/dev/null
Scrape a price band in the UK, cheapest first, two pages:
apify actors call "johnvc/google-shopping-api-google-shopping-products-prices-deals" -i '{"q":"coffee machine","gl":"uk","hl":"en","google_domain":"google.co.uk","min_price":50,"max_price":200,"sort_by":1,"max_pages":2}' \
--json \
--user-agent apify-awesome-skills/apify-scrape-google-shopping \
2>/dev/null
Every call carries the three flags this repo expects: --json, --user-agent apify-awesome-skills/apify-scrape-google-shopping, and 2>/dev/null.
Run it from Claude or another AI agent (MCP)
The Actor is MCP-ready. Add the hosted server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-shopping-api-google-shopping-products-prices-deals
Then ask, for example: "Scrape Google Shopping for standing desks under $400 in the US and export the listings as JSON." MCP setup docs: https://docs.apify.com/platform/integrations/mcp
Workflow
- Build the query.
qis the only required field: a product, brand, or category phrase. - Localize. Set
gl(country code),hl(language code), and for non-US marketsgoogle_domainand optionallylocationtogether, so prices come back in the right currency. - Filter.
min_priceandmax_pricebound the price band,sort_by(1 = low to high, 2 = high to low) orders it, andfree_shippingoron_salerestrict to those listings. - Bound the volume.
max_pagesis the cost cap: each page is about 40 products, default 1. Avoidmax_pages: 0(fetch everything) unless the user explicitly wants it. - Estimate cost, then confirm with the user if the run is large. See
references/gotchas.md. - Run the Actor and read the dataset. Flatten
shopping_resultsinto one row per product for CSV or a sheet, and dedupe onproduct_id.
Inputs
q(string, required): product, brand, or category to search forlocation(string): geographic location, for example "Austin, Texas, United States"gl(string): two-letter country code, for example "us", "uk", "de"hl(string): two-letter language code, for example "en", "es", "de"google_domain(string, defaultgoogle.com)device(enum: desktop, tablet, mobile; default desktop)min_priceplusmax_price(numbers): price band in the local currencysort_by(integer): 1 = price low to high, 2 = price high to lowfree_shippingpluson_sale(booleans, default false): restrict listingsmax_pages(integer, default 1): pages to fetch, 0 = all available
Cost
Billing is per page of results processed (about 40 products per page) plus a small one-time setup fee per run. A default one-page run is a few cents; a five-page run (about 200 products) stays near a dime. Estimate first and confirm large runs; live prices and thresholds are in references/gotchas.md.
Honest limits
- Each dataset item is one page, not one product; flatten
shopping_resultsclient-side before exporting to CSV. product_linkpoints at the Google Shopping product page, not always the retailer's own site.multiple_sourcesis a boolean flag, not a list of sellers; for per-seller offers on one product, chain the Google Immersive Product API usingimmersive_product_page_token.rating,reviews,snippet,delivery, and sale fields appear only when Google shows them for that listing.- The
filtersarray comes back on the first page only.
Troubleshooting
- Empty
shopping_results: broaden the query, or loosen filters;on_saleplusfree_shippingtogether can zero out a niche query. - Fewer than 40 products on a page: normal near the end of the inventory; check
search_metadata.pagination_limit_reached. - Prices in the wrong currency: set
gl,hl, andgoogle_domaintogether for the target market. - Run seems slow with
max_pages: 0: some queries have many pages; set an explicitmax_pagescap instead.
See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.
Related product-data Actors
- Google Shopping Lite API, lower-cost quick price lookups: https://apify.com/johnvc/google-shopping-lite-api?fpr=9n7kx3&fp_sid=skillrepo
- Google Immersive Product API, full product-page detail per listing: https://apify.com/johnvc/google-immersive-product-api?fpr=9n7kx3&fp_sid=skillrepo
- Google Images API, clean product image URLs: https://apify.com/johnvc/google-images-api?fpr=9n7kx3&fp_sid=skillrepo