Skip to main content
Glama
E-commerce Search & Rankings MCP

E-commerce Search & Rankings MCP

Shopify Scraper - Products, Prices, Stock & Inventory

autofacts--shopify
Read-only

Scrape any public Shopify store's catalog to get product variants, prices, SKUs and stock status, plus barcodes and inventory counts, from a store URL, collection or keyword search.

Instructions

Shopify Scraper - Products, Prices, Stock & Inventory. A Shopify product scraper for any public Shopify store: every variant's price, SKU and stock status, with barcodes, real inventory counts, videos and subscription plans where available. Crawl a whole catalog, a collection, one product URL or a keyword search. No API key needed.

When to use: Use when you need the product catalog of a public Shopify store: variants, prices, SKUs and stock.

Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.

Behavior: starts one run of the Apify Actor "autofacts/shopify" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/autofacts/shopify

Input Schema

NameRequiredDescriptionDefault
proxyNoSelect proxies to be used by your crawler.
queryNoSearch query to find products.
startUrlsYesStart URLs of Shopify site to start the actor. Site root url, category page urls, product page urls are all supported. Example: [{"url":"https://kith.com/collections/kith-tops"}]
maxResultsNoMaximum number of results to return. Hidden parameter, overrides maxRequestsPerCrawl if set.
grabRealInventoryNoFetch each product's real per-variant inventory count from its product JSON. Billed as a separate event for every product that comes back with a real stock count. On collection crawls it also adds one request per product. Only works for stores that expose inventory in their storefront JSON — others report inventory as unknown, and are not billed for it. Off by default.
grabContentSectionsNoAlso return the labelled information panels the store shows outside the description - tabs and accordions such as Features, Includes, Materials or Care - as the site renders them, in a `contentSections` field. Labels are kept exactly as shown, so panels like Shipping or Returns come along too and are yours to filter. Costs one extra page request per product on stores that have them; stores that have none are detected and skipped. Billed per product that actually returns panels.
maxInventoryFetchesNoHard cap on the extra per-product detail fetches used to read inventory on collection crawls. Advanced, not shown in the form: unlimited unless set. Pass a number in the JSON input to cap the run. Only applies when 'Grab real inventory' is enabled.
maxRequestsPerCrawlNoThe maximum number of records saved to the dataset. Each record is one billed result, so this is also the run's cost cap. The scraper stops when the limit is reached. If set to 0 , there is no limit — use the run's Max total charge setting to bound spend instead.
grabStorefrontDetailNoFetch each product's storefront payload for selling plans (subscriptions, pre-orders), video media, and the product's price span. Applies to collection crawls only — product URLs always fetch this payload, because it is where their stock availability comes from. Costs one extra request per product on collection crawls, and is not billed as a separate event. Off by default.
maxStorefrontFetchesNoHard cap on the extra per-product storefront fetches on collection crawls. Advanced, not shown in the form: unlimited unless set. Pass a number in the JSON input to cap the run. Only applies when 'Grab storefront detail' is enabled; product URLs are already bounded by the record limit.
maxContentSectionFetchesNoCaps how many product pages the panel extraction may fetch in one run. Advanced, not shown in the form: unlimited unless set. Pass a number in the JSON input to cap the run. Only applies when "Grab product information panels" is on; a product URL is not capped by this.
maxRecommendationsPerProductNoThe maximum number of recommended products to fetch per product. Recommendations are returned nested inside the product record and are billed per recommended product, so a value of 20 can cost up to 20 extra events per product. Set to 0 to disable. Default is 0, max is 20.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, openWorldHint, non-destructive), the description discloses that the call starts a run on Apify's hosted gateway, requires the caller's own APIFY_TOKEN, spends the caller's Apify account credits, and returns dataset rows plus run/dataset IDs for paging. It does not describe run latency or whether the call blocks until the run completes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the capability, then segmented into When to use / Returns / Behavior / Docs, so an agent can scan the decision-relevant part first. No sentence is filler; the only redundancy is the title echoed as the opening line, which is minor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter actor with no output schema, the definition still covers what comes back (one JSON row per result, plus run/dataset IDs for paging), the auth model, cost implications, and read-only safety. It leaves the mechanics of paging a dataset with those IDs unstated and gives no sense of run duration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the per-parameter descriptions are unusually rich (billing events, caps, defaults, interactions between flags), so the schema already carries the semantics. The prose names no parameter and adds no syntax, only loosely implying that optional flags exist for inventory, videos and subscription plans. Baseline 3 is appropriate when the schema does this much work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ("A Shopify product scraper for any public Shopify store") and enumerates the payload (variant price, SKU, stock, barcodes, inventory counts, videos, subscription plans) plus the four supported crawl modes. Because every sibling in the list is tied to a different marketplace (Amazon, eBay, Walmart, AliExpress, Etsy, Google Shopping), naming Shopify alone is sufficient differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides an explicit "When to use" clause scoped to public Shopify stores and need for catalog/pricing/stock data, and it clarifies the input modes (whole catalog, collection, single product URL, keyword search). It stops short of stating when NOT to use it or naming an alternative tool for private/admin APIs or non-Shopify stores.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.