Shopify Variant Catalog Export – SKU, Price & Stock avatar

Shopify Variant Catalog Export – SKU, Price & Stock

Pricing

$1.50 / 1,000 exported variants

Go to Apify Store
Shopify Variant Catalog Export – SKU, Price & Stock

Shopify Variant Catalog Export – SKU, Price & Stock

Paste public Shopify storefront URLs (domain only) and get one row per variant: product, size or color, SKU, price, compare-at price, availability and variant link. Up to 10 stores and 1,000 rows per run as CSV or JSON. Non-Shopify or blocked stores are reported, not charged.

Pricing

$1.50 / 1,000 exported variants

Rating

0.0

(0)

Developer

kalle walle

kalle walle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

Shopify Variant Catalog Export – SKU, Price & Stock

Give it public Shopify storefront URLs (domain only) and get one row per variant: product, variant title, SKU, price, compare-at price, availability and a direct variant link. Up to 10 stores and 1,000 variant rows per run, as OUTPUT.csv or dataset JSON, CSV or Excel.

The Actor reads the storefront's public /products.json catalog. No browser, login, paid proxy or AI model is used. Stores that are not Shopify, are password-protected or block the request are reported in REPORT and are not charged.

What it is for

  • Catalog comparison at variant level: sizes and colors as separate rows with SKU and price, ready for a spreadsheet.
  • SKU matching for resellers and agencies: check which variants carry a SKU and whether it matches your own list.
  • Availability snapshot: see which variants a store shows as available or sold out at the time of the run.
  • AI agents and pipelines: call it through the Apify API or the Apify MCP server.

What it does not do: inventory quantities, reviews, private Admin API data, order or customer data, price history across runs, or the market currency (always empty, see below). Each run is a snapshot, not monitoring.

Example

Input:

{
"stores": ["https://example.com", "https://www.allbirds.com"],
"maxPagesPerStore": 1,
"maxItems": 12
}

Output from a real local run on 25 October 2026, first rows (selected columns):

titlevariantTitleskupricecompareAtPriceavailable
Women's Allbirds Flip Flop - Dusty Pink5A12513W05025.0050.00false
Women's Allbirds Flip Flop - Dusty Pink10A12513W10025.0050.00true
Men's Canvas Runner NZ - Deep Navy Stripes (Blizzard Sole)8.5A12498M085100.00true

REPORT for the same run: 12 rows, stop reason max_items, and one error: https://example.com returned http_404 because it has no Shopify catalog. That store produced no row and no charge. The store in the example was chosen only because its catalog is public; this Actor is not affiliated with it.

How to run

  1. Enter one to ten storefront origins in Shopify storefront origins, such as https://www.example-store.com (HTTPS, no path or query).
  2. Maximum catalog pages per store defaults to 2; each page holds up to 250 products.
  3. Maximum output rows defaults to 100; raise it up to 1,000. Set your maximum charge in Apify.
  4. Start the run and download OUTPUT.csv from the key-value store, or export the dataset.

Input

FieldDefaultBehavior
storesRequired1–10 public HTTPS storefront origins, no path or query; identical entries are fetched once, and rows already emitted in the run are not charged twice
maxPagesPerStore21–10 catalog pages per store, up to 250 products each; stops on an empty, short or non-advancing page
maxItems1001–1,000 variant rows per run
maxRunSeconds12030–600 seconds, checked before each request or output row

Output

One dataset row per variant:

FieldMeaning
recordIdStore host and variant ID
storeUrlStorefront origin
productId, variantIdShopify IDs as strings
titleProduct title
variantTitleVariant name, for example a size or color
skuVariant SKU as published, or null
price, compareAtPriceDecimal strings as published; compareAtPrice is null when not set
availableAvailability flag as published (true/false), not a quantity
currencyAlways null: the public catalog response does not reliably state the market currency, so none is guessed
productUrlLink to the product page with the variant preselected
retrievedAtTime of the observation

The key-value store contains OUTPUT.csv, REPORT (product, emittedCount, errors with the affected store, stopReason and paymentsVerified=false) and STATE (recovery checkpoint for the same run and parsed input). OUTPUT.csv quotes values and escapes potential spreadsheet formulas; other exporters may behave differently. Source values and observation times are preserved rather than invented.

Pricing

$0.0015 per variant row ($1.50 per 1,000 rows), with no start event. Invalid input, failed fetches and duplicates already emitted in the same run are not charged. Check the Pricing tab before a run and set your maximum charge in Apify.

Use it from an AI agent

The Apify MCP server can load this Actor as a tool. Add this server URL to an MCP client such as Claude, Cursor or VS Code:

https://mcp.apify.com?tools=wavy_toucanet/shopify-variant-catalog-export

You sign in to Apify in the browser on first connection (OAuth); runs are billed to your Apify account.

Limits and recovery

Only HTTPS storefront origins are accepted, and the store must expose /products.json. Password-protected, blocked and non-Shopify stores are reported without result rows. Pagination is bounded, so a run does not guarantee a complete catalog. Prices are observations, not purchase recommendations.

Requests are sequential, bounded and rate-limited. Only public targets on standard ports are allowed, with DNS address validation and pinning. No retries against blocked pages and no paid proxies. On restart, existing rows are checked against a pending-write checkpoint; an uncertain missing write stops for review. This is not an exactly-once billing guarantee. Inputs must stay identical on recovery; a fresh run is a new paid batch. Error reports may contain the supplied store URLs; do not include secret-bearing URLs.

FAQ

Can't I just open /products.json in my browser? Yes, for one page of one store. The Actor flattens every variant into its own row, follows pagination, handles several stores, reports failures and writes a spreadsheet-safe CSV.

Why is the currency empty? The public catalog does not reliably say which market currency the prices are in. The Actor leaves it empty instead of guessing.

Source and support

Data comes from each store's public catalog. Only process sources you have permission to access and reuse; public accessibility does not by itself grant redistribution rights. This is an independent tool, not affiliated with or endorsed by Shopify. Report reproducible issues through the Issues tab with a run ID and error code; never include credentials.