E-commerce & Marketplaces

Shopify Store API API

The Shopify Store API returns products, variants, prices and collections from any public Shopify store as clean JSON.

9 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary products endpoint returns each product's id, title, handle, vendor, type, tags, description, options and variants (price, SKU, availability, compare-at price) — a store's full catalog. You can also pull a single product, collections and their products, run a search, get recommendations and read store_info. It is built for competitor-catalog monitoring, price tracking and dropshipping tools that need Shopify store data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, products, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/shopify/v1/products",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "store": "allbirds.com",
    "limit": 5
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "shopify",
    "endpoint": "products",
    "mode": "live",
    "latency_ms": 739.4,
    "record_count": 5,
    "bytes": 37799,
    "cache_hit": false,
    "stop_reason": "limit_reached",
    "store": "https://allbirds.com",
    "page": 1,
    "limit": 5,
    "has_more": true,
    "filters_applied": [],
    "pagination": {
      "page": 1,
      "has_more": true
    }
  },
  "data": {
    "__trimmed": "response capped for page display"
  }
}
Actions

What the Shopify Store API API does

ActionDescriptionConcrete use caseKey params
productsPaginated product catalog from any public Shopify store: title, vendor, variants, prices, inventory status, tags, and images.Pricing teams call products to get paginated product catalog from any public Shopify store.store, page, limit, max_items, vendor, ...
productFull detail for a single Shopify product by its handle (URL slug) or product page URL: title, vendor, variants, prices, images, and inventory.Marketplace operators call product to get full detail for a single Shopify product by its handle (URL slug) or product page URL.store, handle
collectionsPaginated list of public collections from a Shopify store: collection id, title, handle, description, and cover image.Catalog enrichment teams call collections to get paginated list of public collections from a Shopify store.store, page, limit, max_items
collection_productsPaginated products within a specific Shopify collection — same product shape as the products action, filterable and sortable.Retail analysts call collection_products to get paginated products within a specific Shopify collection.store, handle, page, limit, max_items, ...
searchPredictive search across a Shopify store: matching products (title, price, variants, image) plus optional collection, page, and autocomplete query suggestions.Pricing teams call search to get predictive search across a Shopify store.store, query, limit, page, max_items, ...
recommendationsRelated or complementary products that a Shopify store recommends for a given product — the store's own 'you may also like' / 'goes well with' set, same rich product shape.Marketplace operators call recommendations to get related or complementary products that a Shopify store recommends for a given product.store, handle, intent, limit
collectionMetadata for a single Shopify collection by handle: title, description, cover image, published/updated dates, and product count.Catalog enrichment teams call collection to get metadata for a single Shopify collection by handle.store, handle
pagesContent pages published on a Shopify store (About, FAQ, Shipping, size guides, etc.): title, handle, URL, and HTML/plain-text body.Retail analysts call pages to get content pages published on a Shopify store (About, FAQ, Shipping, size guides, etc.).store, page, limit, max_items
store_infoRich profile for a Shopify store: name, currency, country/city, product & collection counts, accepted card brands, social links, myshopify domain, and platform confirmation.Pricing teams call store_info to get rich profile for a Shopify store.store
Code samples

Call products from your stack

curl -X POST https://api.reefapi.com/shopify/v1/products \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"store":"allbirds.com","limit":5}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.shopify.products with {"store":"allbirds.com","limit":5}.
Use cases

Who uses this API and why

  • Price-monitoring tools call products to track a competitor Shopify store's prices and stock across variants.
  • Dropshipping and catalog tools use collection_products to mirror a store's product structure.
  • Market researchers pull store_info and products to profile a brand's full Shopify catalog.
FAQ

Questions developers ask before integrating

What is the Shopify Store API API?

Shopify Store API API is a ReefAPI endpoint group for shopify store api It returns live JSON through POST requests under /shopify/v1.

Is the Shopify Store API API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Shopify Store API calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Shopify Store API login or account?

No login to Shopify Store API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Shopify Store API data?

The page example is captured from a live products call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Shopify Store API API use?

Shopify Store API actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Shopify Store API from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call shopify actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Shopify Store API API a Shopify Store API scraper?

It is the managed alternative to a DIY Shopify Store API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same shopify store api back as clean JSON.

Why does my Shopify Store API scraper keep getting blocked?

Most Shopify Store API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / shopify

Shopify Store API

Shopify Store API

base /shopify/v19 endpoints
post/shopify/v1/products1 credit

Paginated product catalog from any public Shopify store: title, vendor, variants, prices, inventory status, tags, and images.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
page = 1optional1–Page number (1, 2, 3…).
limit = 50optional1–250Items per page (1–250; larger values are capped at 250).
max_itemsoptional1–Auto-walk pages until this many items are collected (overrides single-page mode; recommended when using filters).
vendoroptionalOnly products whose vendor/brand contains this text (filter, post-fetch).
product_typeoptionalOnly products whose type contains this text (filter, post-fetch).
tagsoptionalOnly products carrying at least one of these tags (comma-separated or a list; filter, post-fetch).
title_containsoptionalOnly products whose title contains this text (filter, post-fetch).
sku_containsoptionalOnly products with a variant SKU containing this text (filter, post-fetch).
min_priceoptional0–Only products priced at or above this (store currency; post-fetch).
max_priceoptional0–Only products priced at or below this (store currency; post-fetch).
only_on_sale = falseoptionalOnly products with at least one discounted variant.
only_in_stock = falseoptionalOnly products with at least one available variant.
new_arrivals_daysoptional1–Only products published within the last N days.
Try in playground →
post/shopify/v1/product1 credit

Full detail for a single Shopify product by its handle (URL slug) or product page URL: title, vendor, variants, prices, images, and inventory.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
handlerequiredProduct handle — the slug in the product URL (…/products/<handle>); a full product URL also works.
Try in playground →
post/shopify/v1/collections1 credit

Paginated list of public collections from a Shopify store: collection id, title, handle, description, and cover image.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
page = 1optional1–Page number (1, 2, 3…).
limit = 50optional1–250Items per page (1–250; larger values are capped at 250).
max_itemsoptional1–Auto-walk pages until this many items are collected (overrides single-page mode; recommended when using filters).
Try in playground →
post/shopify/v1/collection_products1 credit

Paginated products within a specific Shopify collection — same product shape as the products action, filterable and sortable.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
handlerequiredCollection handle — the slug in the collection URL (…/collections/<handle>); take it from the collections action. A full collection URL also works.
sort_byoptionalrelevance · price-ascending · price-descending · created-descending · best-selling · title-ascendingRequested ordering — passed to the store's collection endpoint, but MANY stores ignore it (theme-dependent); ordering is not guaranteed. Aliases like priceAsc/newest are also accepted.
page = 1optional1–Page number (1, 2, 3…).
limit = 50optional1–250Items per page (1–250; larger values are capped at 250).
max_itemsoptional1–Auto-walk pages until this many items are collected (overrides single-page mode; recommended when using filters).
vendoroptionalOnly products whose vendor/brand contains this text (filter, post-fetch).
product_typeoptionalOnly products whose type contains this text (filter, post-fetch).
tagsoptionalOnly products carrying at least one of these tags (comma-separated or a list; filter, post-fetch).
title_containsoptionalOnly products whose title contains this text (filter, post-fetch).
sku_containsoptionalOnly products with a variant SKU containing this text (filter, post-fetch).
min_priceoptional0–Only products priced at or above this (store currency; post-fetch).
max_priceoptional0–Only products priced at or below this (store currency; post-fetch).
only_on_sale = falseoptionalOnly products with at least one discounted variant.
only_in_stock = falseoptionalOnly products with at least one available variant.
new_arrivals_daysoptional1–Only products published within the last N days.
Try in playground →
post/shopify/v1/recommendations1 credit

Related or complementary products that a Shopify store recommends for a given product — the store's own 'you may also like' / 'goes well with' set, same rich product shape.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
handlerequiredProduct handle — the slug in the product URL (…/products/<handle>); a full product URL also works.
intent = relatedoptionalrelated · complementaryWhich Shopify recommendation set to return. 'related' = similar products (works on every store); 'complementary' = goes-well-with picks (only on stores that configured Search & Discovery — falls back to related).
limit = 10optional1–250How many recommended products to return (1–250).
Try in playground →
post/shopify/v1/collection1 credit

Metadata for a single Shopify collection by handle: title, description, cover image, published/updated dates, and product count.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
handlerequiredCollection handle — the slug in the collection URL (…/collections/<handle>). A full collection URL also works.
Try in playground →
post/shopify/v1/pages1 credit

Content pages published on a Shopify store (About, FAQ, Shipping, size guides, etc.): title, handle, URL, and HTML/plain-text body.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
page = 1optional1–Page number (1, 2, 3…).
limit = 50optional1–250Items per page (1–250; larger values are capped at 250).
max_itemsoptional1–Auto-walk pages until this many items are collected (overrides single-page mode; recommended when using filters).
Try in playground →
post/shopify/v1/store_info1 credit

Rich profile for a Shopify store: name, currency, country/city, product & collection counts, accepted card brands, social links, myshopify domain, and platform confirmation.

ParameterAllowed / rangeDescription
storerequiredShopify store domain or URL (e.g. allbirds.com or https://shop.example.com) — works for ANY Shopify-powered store.
Try in playground →