Shopify API. Public storefronts, one JSON shape.
Products, variants, collections, pages, articles, search, reviews and store details from public Shopify storefronts. Name the domain, get JSON.
- Public Shopify stores
- 25 read-only routes
- 1 credit per request
- Failed requests aren't charged
Teams running monitoring, research, and enrichment pipelines
Why Social Fetch
Shopify data as JSON. You build the product.
Live Shopify data in one response shape, with platform changes handled for you.
Shopify, plus every other platform
One key and one response envelope for Shopify and 56 more platforms.
Pricing you can reason about
One request, one credit. Know how far your balance will go before you run your next batch.
Live data on every request
Fetch public data when you ask for it.
Nothing to maintain
We handle platform changes and breakages.
Built for production jobs
Run concurrent workloads with explicit statuses and request IDs.
Regular jobs. Better rates.
Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.
What Shopify data can you get?
25 endpoints, one API key. Every response comes back as live JSON in the same envelope.
- +2 more store endpoints
Store
- +2 more products endpoints
Products
Collections
Discover
- +1 more content endpoints
Content
Reviews
Browse all 25 Shopify endpoints
Store
Products
Collections
Discover
Content
Reviews
What teams build with Shopify data
Monitoring, enrichment, research and content workflows on Shopify data, on the same API as every other platform.
How it works
Your first request in three steps.
Use TypeScript or your automation tool of choice.
Sources
+ 51 more platforms
One request
GET/v1/tiktok/profiles/
x-api-key: sk_live_••••••••
Same JSON shape
{
"data": {
"lookupStatus": "found",
"profile": {
"platform": "tiktok",
"handle": "charlidamelio",
"displayName": "charli d’amelio",
"verified": true
},
"metrics": {
"followers": 160263648
}
}
}Step 1
Create your free account
Get an API key with 100 requests included.
Step 2
Choose an endpoint
Pass a username, URL, keyword, or post ID.
Step 3
Get clean JSON
Use the response immediately or send it into your pipeline.
Works with your stack
Code, automate, or connect your AI.
TypeScript
n8n
- Make
- Apify
- MCP
- AI clients
Pricing
Social data, priced simply.
Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.
Starter
18,000credits
$1.61 per 1k · $0.00161 per request
- Top up from $1.61 / 1k if you run out
- Up to 25 monitors
Growth
50,000credits
$1.58 per 1k · $0.00158 per request
- Top up from $1.58 / 1k if you run out
- 5 team seats
- Up to 100 monitors
Scale
150,000credits
$1.50 per 1k · $0.00150 per request
- Top up from $1.50 / 1k if you run out
- 25 team seats
- Up to 250 monitors
- Cancel anytime
- 30-day money-back guarantee
- Price locked while you stay
Need 1M+ credits, invoicing, or volume rates? Talk to us
Trust signals
DevHunt
Product Hunt
Uneed
Customers
Teams building on Social Fetch.
“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”
“Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”
“Live profile data on every request. We never flag accounts from a stale cache.”
“Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”
Shopify API: common questions
Is there a Shopify API for public storefront data?
Yes. Social Fetch has 25 Shopify routes under /v1/shopify for products, variants, collections, search, suggestions, pages, blogs, articles, reviews, pickup availability and store details. Authenticate with your Social Fetch API key in x-api-key.
How do I name the store?
Pass the domain as store: allbirds.com, www.allbirds.com, weareallbirds.myshopify.com or a full URL. A full URL is reduced to its host. Only public storefront hosts are accepted.
What does lookupStatus mean?
found means the lookup succeeded. not_found means the store or entity does not exist or is not a Shopify store. private means the storefront is password-protected. restricted means it is paused or frozen. HTTP 200 only means the request finished, so branch on lookupStatus.
How do I page through a large catalogue?
Read data.page.hasMore and pass data.page.nextCursor back as cursor with the same filters. Lists also return truncated when they stop at the 25,000-item list limit; narrow the range with createdBefore or createdAfter to reach the rest.
What does a product response include?
On found, product carries id, handle, title, vendor, product type, tags, description, options, variants, images, media, collections, SEO, price range and compare-at range. variants include SKU, barcode, options, weight, price and an image. inventoryQuantity and inventoryPolicy are filled only when the store exposes them; stockAvailable false means the fields are null for that answer, not that stock is zero.
Can I get product reviews and store reviews?
The review routes return the reviews the storefront publishes through its review widget. When the store has no supported widget, reviewsAvailable is false and reviews is empty. A store that mounts its widget only on product pages can still return store-wide reviews as unavailable. Review rows can belong to related products, so check each row's productHandle when you need the requested product. Sorts are requests, not guarantees: a widget that does not support a sort keeps its own order.
Can I read metafields?
Yes, for metafields the merchant exposes to the storefront. Call GET /v1/shopify/products/{handle}/metafields and optionally pass keys such as reviews.rating or global.title_tag. An empty list means the store did not expose those fields, not that the product has none.
Do you return stock levels and pickup availability?
Stock fields are best effort: exact inventoryQuantity, inventoryPolicy and inventoryManagement appear when the store exposes them. Pickup availability returns locations with available and pickUpTime for each variant, and the route does not require a store login.
What if the store is password-protected or paused?
The response is still HTTP 200 with lookupStatus private or restricted and the operation's empty payload. A store that is not a Shopify store returns not_found. These are completed lookups and are billed as the operation documents; confirm every response with meta.creditsCharged.
How much does the Shopify API cost?
Most routes charge 1 credit per completed request, and the batch route charges one credit per requested handle, up to 25. Each page is billed separately. Check meta.creditsCharged on every response. New accounts start with 100 free credits.
Can I use the Shopify routes from agents or MCP?
Yes. Every Shopify route is a typed MCP tool and is reachable through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.
The Shopify API in detailHow the Shopify routes work, what they cost, and how they differ from the official API.
Why teams use Social Fetch for Shopify
Social Fetch exposes 25 read-only routes under /v1/shopify, and every one starts with a store query: allbirds.com, www.allbirds.com, weareallbirds.myshopify.com or a full URL. The same account covers public Shopify storefronts without a store login or an app install. A storefront that is unavailable returns a temporary error and is not charged.
Catalogue routes cover products with variants, options, images, collections and price ranges; a single product also gets stock fields where the store exposes them. Collection routes return the store's filter facets with counts, so you can build the same category pages the store shows. Search returns products, articles and pages in one answer, with the store's own totalCount and facets.
Content routes cover pages, blog lists and articles with full text. Store routes cover identity and market settings, policy text, locations, navigation menus, redirects, sitemaps and pickup availability. Review routes return the product or store reviews the storefront publishes.
Every response uses the { data, meta } envelope and starts with data.lookupStatus. A store or entity that does not exist comes back as not_found, a password-protected storefront as private, and a paused or frozen store as restricted, all with HTTP 200. Lists page with page.nextCursor and page.hasMore, and meta.creditsCharged is the billing source of truth.
How to call the Shopify API
1. Create an API key
Sign up at Social Fetch and copy a key (
sfk_…). New accounts get 100 free credits, enough to try every Shopify route on a few stores.2. Pick a store and route
Use the store's domain, for example
GET /v1/shopify/products?store=allbirds.comorGET /v1/shopify/products/mens-wool-runners?store=allbirds.com. Sendx-api-keyon every request.3. Branch, page and bill
Check
data.lookupStatusbefore storing a row, keep requesting withpage.nextCursorwhilepage.hasMoreis true, and bill frommeta.creditsCharged.
What each Shopify route returns
- Products with variants, options, SKUs, barcodes, prices, images, SEO and collection membership.
- Collection lists and a single collection with its filter facets and product counts.
- Store search across products, articles and pages, plus a separate suggestion route.
- Pages and blog articles with plain text, HTML, authors, tags and comments.
- Store identity, market and payment settings, policies with full text, locations and menus.
- Sitemap index and typed child sitemaps, plus the store's redirect table.
- Product and store reviews with ratings, media and merchant replies where the store publishes them.
- Pickup availability by variant and location for one product.
How much does the Shopify API cost?
Most Shopify routes charge 1 credit per completed request, and the product batch route charges one credit for each requested handle, up to 25. Each page of a list is its own request. Credits never expire on pay-as-you-go packs, and meta.creditsCharged on every response is the billing source of truth.
Social Fetch vs the official Shopify API
Shopify's own Admin API is built for the store's owner: it needs an app, credentials and permissions on that store. Social Fetch returns public storefront data instead, so you can start with a domain and no merchant setup. The trade is scope: the Admin API can read private store data, while these routes return what the public storefront publishes, and some fields are null when the store does not expose them.
Pull your first Shopify data.
Run a live Shopify request in the playground. 100 free credits, no card, JSON back in seconds.
No credit cardSign up in 30 seconds withGoogleGitHub
