agentsclimarketplace

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.

Install
npx -y skills add johnisanerd/claude-skill-scrape-google-shopping --skill apify-scrape-google-shopping

Assembled 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_price plus extracted_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, and filters (Google's own filter chips, first page only).

Prerequisites

The Actor

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

  1. Build the query. q is the only required field: a product, brand, or category phrase.
  2. Localize. Set gl (country code), hl (language code), and for non-US markets google_domain and optionally location together, so prices come back in the right currency.
  3. Filter. min_price and max_price bound the price band, sort_by (1 = low to high, 2 = high to low) orders it, and free_shipping or on_sale restrict to those listings.
  4. Bound the volume. max_pages is the cost cap: each page is about 40 products, default 1. Avoid max_pages: 0 (fetch everything) unless the user explicitly wants it.
  5. Estimate cost, then confirm with the user if the run is large. See references/gotchas.md.
  6. Run the Actor and read the dataset. Flatten shopping_results into one row per product for CSV or a sheet, and dedupe on product_id.

Inputs

  • q (string, required): product, brand, or category to search for
  • location (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, default google.com)
  • device (enum: desktop, tablet, mobile; default desktop)
  • min_price plus max_price (numbers): price band in the local currency
  • sort_by (integer): 1 = price low to high, 2 = price high to low
  • free_shipping plus on_sale (booleans, default false): restrict listings
  • max_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_results client-side before exporting to CSV.
  • product_link points at the Google Shopping product page, not always the retailer's own site.
  • multiple_sources is a boolean flag, not a list of sellers; for per-seller offers on one product, chain the Google Immersive Product API using immersive_product_page_token.
  • rating, reviews, snippet, delivery, and sale fields appear only when Google shows them for that listing.
  • The filters array comes back on the first page only.

Troubleshooting

  • Empty shopping_results: broaden the query, or loosen filters; on_sale plus free_shipping together 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, and google_domain together for the target market.
  • Run seems slow with max_pages: 0: some queries have many pages; set an explicit max_pages cap 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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.