Shopify Products Scraper avatar

Shopify Products Scraper

Pricing

from $3.70 / 1,000 results

Go to Apify Store
Shopify Products Scraper

Shopify Products Scraper

Scrape any Shopify store's full product catalog in seconds - titles, prices, variants, images, tags and descriptions - via the store's own public product feed. No login or proxy needed. Use it as a Task, call the REST/MCP API, or plug it into an AI agent.

Pricing

from $3.70 / 1,000 results

Rating

5.0

(1)

Developer

Pinto Studio

Pinto Studio

Maintained by Community

Actor stats

1

Bookmarked

34

Total users

0

Monthly active users

a day ago

Last modified

Share

Scrape the full product catalog of any Shopify store in seconds - titles, prices, variants, images, tags and descriptions - straight from the store's own public product feed. No login, API key or proxy required. Use it as a one-off Actor run, a ready-made Task, a REST API, or a tool for AI agents via the Apify MCP server.

What does Shopify Products Scraper do?

Give it a store's URL (or bare domain) and it returns every product on that page of the catalog, with the fields that matter for commerce, research and monitoring:

  • Title, Handle, Url - the product name, slug and direct link to its page.
  • Vendor, ProductType, Tags - brand, category and tagging.
  • Price, CompareAtPrice, Available - current price, list price and stock status.
  • ImageUrl, ImagesCount, VariantsCount - the main image and how many images/variants exist.
  • PublishedAt, CreatedAt, UpdatedAt, BodyHtml - timestamps and the full HTML description.
  • Variants, Images, Options - the complete raw arrays for every size, color and image.

Why use this instead of scraping the storefront by hand?

Every Shopify store exposes its catalog at a standard, public /products.json endpoint - this Actor calls that feed directly instead of rendering pages or fighting anti-bot walls, so it's fast, reliable and works the same way on any Shopify store. Results come back as one row per product, ready to feed into a spreadsheet, a pricing dashboard, or an AI agent's research pipeline.

Input parameters

FieldTypeRequiredDescription
urlstringYesThe URL (or bare domain) of the Shopify store, e.g. https://alpineskin.com or just alpineskin.com.
limitintegerNo (default 50)Maximum number of products to return in one page (1-250).
pageintegerNo (default 1)The page of results to fetch. Combine with limit to page through a store's full catalog.

Example input

{
"url": "https://alpineskin.com",
"limit": 50,
"page": 1
}

Example output (dataset item)

{
"Id": 1234567890,
"Title": "Vitamin C Serum",
"Handle": "vitamin-c-serum",
"Url": "https://alpineskin.com/products/vitamin-c-serum",
"Vendor": "Alpine Skin",
"ProductType": "Serum",
"Tags": "bestseller, vitamin-c",
"Price": "34.00",
"CompareAtPrice": "42.00",
"Available": true,
"ImageUrl": "https://cdn.shopify.com/s/files/1/.../vitamin-c-serum.jpg",
"ImagesCount": 4,
"VariantsCount": 1,
"PublishedAt": "2023-02-14T10:00:00-05:00",
"CreatedAt": "2023-02-10T08:30:00-05:00",
"UpdatedAt": "2026-08-01T12:00:00-05:00"
}

Every run also writes a run summary to the key-value store under the OUTPUT key, and each dataset item follows the published dataset schema, so results render as a clean table (with product images) in Apify Console and in any tool that reads Apify's Actor output schema.

Ready-made Tasks

This Actor ships with pre-configured Apify Tasks you can run immediately or trigger via the API without writing any input JSON yourself:

  • Alpine Skin Products - the default example: up to 50 products from alpineskin.com.
  • Gymshark Full Catalog Page 1 - up to 100 products from gymshark.com.
  • Allbirds Products Sample - a quick 20-product sample from allbirds.com.
  • Kylie Cosmetics Products Page 2 - demonstrates pagination: page 2 of kyliecosmetics.com's catalog.

Run it with the Apify API (curl)

curl "https://api.apify.com/v2/acts/pintostudio~shopify-products-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"url": "alpineskin.com", "limit": 50, "page": 1}'

Live HTTP API (Standby mode)

This Actor also runs as an always-on web server (Standby mode), so you can call it like a normal REST API without starting a new run each time:

$curl "https://pintostudio--shopify-products-scraper.apify.actor/products?url=alpineskin.com&limit=50&page=1"

The endpoint, parameters and response shape are fully described by the Actor's published OpenAPI schema, so any OpenAPI-aware client or code generator can consume it directly.

Use it from AI agents (MCP)

Shopify Products Scraper can be called by Claude, ChatGPT and other MCP-compatible agents through the Apify MCP Server, so an agent can pull a live product catalog as one of its tools instead of guessing from stale training data:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "pintostudio/shopify-products-scraper"],
"env": {
"APIFY_TOKEN": "YOUR_TOKEN"
}
}
}
}

Frequently asked questions

Does this work on any Shopify store, or only specific ones?

It works on any store built on Shopify that has not disabled its public product feed - just pass the store's URL or domain. Most Shopify stores expose this feed by default.

Where does the data come from? Is this against Shopify's terms?

The Actor reads the store's own public /products.json feed - the same catalog data Shopify serves to shoppers and to legitimate apps. No login, private API key or protected page is accessed.

Can I get a store's entire catalog, not just one page?

Yes. Set limit to the page size (up to 250) and increment page on successive runs (or Standby calls) to page through the whole catalog, the same way the "Kylie Cosmetics Products Page 2" task demonstrates.

Why is Price a plain number instead of showing a currency?

Shopify's public product feed returns prices without a currency code attached. Check the store's storefront directly (or its locale) to confirm which currency that price is in.

Can I call this without starting a new Actor run each time?

Yes. The Actor supports Standby mode, which keeps an HTTP server warm so GET /products requests are answered immediately, the same way you'd call any REST API.

Can AI agents use this Actor as a tool?

Yes. It is compatible with the Apify MCP Server, so agents built with Claude, the OpenAI Agents SDK, LangChain or similar frameworks can pull live product data directly instead of relying on outdated training data.

What happens if a store has no products or blocks the request?

The run still succeeds; it returns as many products as the feed provides (which may be zero for an empty or fully private catalog) rather than failing the whole run.