Shopify Data Extraction
Extract publicly available data from Shopify at scale using AlterLab's API — JavaScript rendering, structured extraction, and automatic retries in one request.
Website Compatibility Notes
Shopify stores vary widely in protection level. The platform itself applies minimal bot protection, though individual stores may layer on Cloudflare or other services. Most product pages are accessible with basic rendering. The /products.json endpoint (available on most Shopify stores) provides structured data directly without rendering. Individual store protection depends on the merchant's configuration.
Technical Context
Shopify's /products.json endpoint (mystore.com/products.json) is accessible on most stores and returns complete product catalogs in structured JSON without any rendering. Pagination is handled via page parameter (/products.json?page=2). Product handles (slugs) in URLs are stable identifiers. The /products/{handle}.json endpoint returns individual product data. This makes Shopify one of the most straightforward platforms for systematic data collection.
Common Data Fields
Typical fields available when extracting data from Shopify:
Responsible Use
AlterLab is designed for extracting publicly available data. Always review the terms of service for any website you access, respect robots.txt directives, and ensure your use case complies with applicable laws in your jurisdiction. Do not use this service to access non-public, authenticated, or personally identifiable data without appropriate authorization.
Quick Start — Extract from Shopify
# Always verify the target site's robots.txt and terms of service before extracting data.
curl -X POST https://alterlab.io/api/v1/scrape \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://store.example.com/products/sample-product.json",
"advanced": { "render_js": true }
}'Need an API key? — no credit card required.
Python Example
import requests
# Always verify the target site's robots.txt and terms of service before extracting data.
response = requests.post(
"https://alterlab.io/api/v1/scrape",
headers={
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"url": "https://store.example.com/products/sample-product.json",
"advanced": {"render_js": True},
},
)
data = response.json()
print(data["content"][:500]) # First 500 chars of extracted contentFrequently Asked Questions
How do I extract product data from Shopify stores?
Many Shopify stores expose a /products.json endpoint with structured product data. Alternatively, send any Shopify product page URL to AlterLab for full HTML rendering with product details, variants, and pricing.
Can I extract inventory and variant data from Shopify?
Yes. Shopify product pages include variant information (sizes, colors, availability). AlterLab renders the full page to capture all variant details and stock status.
Does AlterLab work with password-protected Shopify stores?
AlterLab is designed for publicly accessible data only. Password-protected stores require authentication and are outside the scope of the service. Only use AlterLab for publicly visible storefront pages.
What is the Shopify products.json endpoint?
Most Shopify stores expose a machine-readable product catalog at /products.json (e.g., mystore.com/products.json). This returns all products as JSON without any JavaScript rendering needed, making it the most efficient way to collect Shopify catalog data.
How do I identify if a store runs on Shopify?
Shopify stores typically include 'Shopify' in their HTML source, use cdn.shopify.com for assets, and expose the /products.json endpoint. AlterLab can render the page regardless of platform — you don't need to identify the CMS beforehand.
Can I collect data from multiple Shopify stores simultaneously?
Yes. Each Shopify store is a separate domain, so collection from multiple stores is independent. Use AlterLab to request /products.json from each store's domain to build a cross-store product database.
How do I extract product data from Shopify stores?
Many Shopify stores expose a /products.json endpoint with structured product data. Alternatively, send any Shopify product page URL to AlterLab for full HTML rendering with product details, variants, and pricing.
Can I extract inventory and variant data from Shopify?
Yes. Shopify product pages include variant information (sizes, colors, availability). AlterLab renders the full page to capture all variant details and stock status.
Related Use Cases
Shopify for a Specific Use Case
Business Data Guide
Developer Scraping Resources
How to Scrape Shopify Data: Complete Guide
Step-by-step tutorial with Python and Node.js code examples, structured extraction, and cost breakdown for Shopify scraping.
How to Handle Bot Protection Challenges
All 6 detection layers explained: TLS fingerprinting, JS challenges, Turnstile, and more.
JavaScript Rendering API
Full browser rendering for SPAs, React, and dynamic content.
Python Web Scraping API
pip install alterlab — async-ready Python SDK with 5,000 free scrapes.
Pricing
From $0.0002/request. No subscriptions. Balance never expires.
Your first scrape.
Sixty seconds.
$1 free credit — up to 5,000 scrapes. No credit card.
Just a POST request.
No credit card required · $1 free credit, up to 5,000 scrapes · Balance never expires