How to Use Shopify's /products.json to Spy on Any Competitor
If you want to spy on a Shopify store without expensive software, the fastest place to start is often the public product feed. This 2026 guide shows you how to use Shopify products.json to inspect catalog data, find pricing changes, track launches, and turn messy storefront data into useful competitor intelligence.
Table of Contents
What is /products.json and why does it matter?
The short version: many Shopify storefronts expose a JSON product feed at a predictable URL. Add /products.json to the end of a store domain and you can often see the same product catalog data the storefront itself relies on: titles, handles, vendors, descriptions, product images, variants, pricing, and timestamps.
That matters because great Shopify competitor research is usually about speed, not theory. You do not need a perfect market map on day one. You need a repeatable way to see what your competitors launched, what they priced, which variants disappeared, and which products keep showing up week after week. Shopify store product data gives you that starting point without logging in or touching anything private.
It is also the answer to a common beginner question: how to see Shopify store products without manually clicking through every collection page. For lean operators, agencies, and product teams, the feed is often faster than the storefront UI because it gives you structured data instead of forcing you to browse visually.
One nuance matters here. You should treat this feed as a public storefront artifact, not as a guaranteed forever-API. Some stores keep it wide open, some partially limit it, and some disable it altogether. That does not make it useless. It just means your process should be resilient and you should expect exceptions.
Step-by-step tutorial: how to access a competitor's feed
If your goal is to spy on a Shopify store, start with a simple manual workflow. This is enough to confirm the feed exists, see what fields are available, and decide whether the store is worth tracking more seriously.
Start with the store domain
Open the competitor's storefront and copy the base domain. Then append /products.json. In many cases, that is enough to expose the full product feed.
https://competitor-store.com/products.jsonAdd a limit parameter immediately
You usually want more than the default response size. Add ?limit=250 so each request returns as much Shopify store product data as possible. For smaller stores, that may give you the entire catalog in a single request.
https://competitor-store.com/products.json?limit=250Inspect the fields that actually matter
When people first open Shopify products.json, they often drown in raw JSON. Ignore the noise. Focus on the fields that answer competitive questions.
title
The product name your competitor is merchandising on the storefront.
vendor
Useful when stores mix in wholesale or third-party brands alongside their own products.
created_at
A strong clue for when a product was added to the catalog or first published in Shopify.
variants
Variant-level pricing, SKUs, availability signals, and option structure such as sizes or colors.
images
Hero shots, alternate images, alt text, and CDN asset URLs you can review over time.
published_at
Helps distinguish old products from recent launches when the value is present.
{
"title": "Performance Hoodie",
"vendor": "Competitor Brand",
"created_at": "2026-03-28T10:14:12-04:00",
"published_at": "2026-03-29T08:00:00-04:00",
"variants": [
{
"title": "Black / Large",
"price": "84.00",
"compare_at_price": "98.00",
"available": true,
"inventory_quantity": 17
}
],
"images": [
{
"src": "https://cdn.shopify.com/...",
"created_at": "2026-03-28T10:15:04-04:00"
}
]
}Save the response somewhere you can compare later
One snapshot is interesting. A sequence of snapshots is where the value shows up. Save the feed to a spreadsheet, a local JSON file, Airtable, or your own database. The whole point of Shopify competitor research is to find changes over time, not just stare at one catalog dump once.
This manual process is also how you validate whether a store is even worth monitoring. If the feed is rich, consistent, and easy to parse, automate it. If it is sparse or blocked, you know early and can move on to a different tactic.
ShopSnoop CTA
Want the shortcut instead of manual feed checks?
ShopSnoop turns raw competitor feeds into an ongoing monitoring workflow. Track price changes, new launches, and availability shifts without opening the same JSON endpoint every week.
Pagination: how to pull an entire Shopify catalog
Pagination is where most people give up. The first page makes the trick feel easy. The second, third, and twelfth pages are where you realize manual catalog review does not scale.
For many storefronts, pagination still works with a simple page query string. That means you can walk the catalog one page at a time and ask for the largest page size supported.
https://competitor-store.com/products.json?limit=250&page=1
https://competitor-store.com/products.json?limit=250&page=2
https://competitor-store.com/products.json?limit=250&page=3The pattern is simple: keep increasing page until the response comes back empty or returns fewer products than your limit. That is your stopping condition. If page 4 returns 83 products and your limit is 250, you know you reached the end of the public feed.
Manual pagination checklist
- •Use the largest practical limit so you make fewer requests.
- •Save every page in the same format and combine them before analyzing.
- •Deduplicate by product handle or product ID if you are merging multiple snapshots.
- •Stop immediately if the store starts responding with HTML, challenge pages, or empty payloads.
This is the practical answer to another common search query: how to see Shopify store products at scale. Page one is easy. Pulling the entire catalog, comparing last week versus this week, and flagging only the meaningful changes is the hard part. That is exactly where manual work starts to break down.
What you can actually learn from the data
A raw feed is only valuable if it changes decisions. Here is what Shopify store product data helps you uncover when you review it consistently.
Best-seller candidates
The feed does not literally label a SKU as a best-seller, but repeated checks reveal which products stay in stock, keep expanding variants, appear in featured collections, or get refreshed imagery. That is enough to identify the items your competitor is clearly protecting or promoting.
Pricing trends
Variant prices and compare-at prices make it easy to see who is discounting, who holds margin, and who quietly tests price points. Pull the feed on a schedule and pricing strategy stops being guesswork.
New product launches
New handles, fresh created_at values, newly published products, and image timestamps make launch detection straightforward. If you are doing Shopify competitor research manually, this is often the fastest signal you can get.
Inventory and availability signals
Some stores expose explicit inventory quantities, while others only expose whether a variant is available. Even when quantity is null, stock-outs, restocks, and disappearing variants still tell you a lot about demand.
The biggest mindset shift is this: you are rarely looking for one dramatic insight. You are looking for repeated signals. A single discount could be noise. Three discounts in six weeks is a pricing strategy. One new product is a launch. Ten products published in a tight window may signal a collection refresh or a seasonal bet.
That is why the phrase spy on Shopify store can be misleading. This is not about some hidden backdoor. It is about building disciplined visibility from public data that most operators never bother to organize.
ShopSnoop CTA
Go deeper with the Shopify spy workflow
The free guide covers the core tactics, and the masterclass shows how to turn these signals into an actual competitor monitoring system you can use every week.
Limitations: what /products.json does not do
This technique is useful, but it is not magic. If you oversell it, you will waste time. The right way to think about Shopify products.json is as a strong public-input layer, not a complete competitive intelligence stack.
- •It only exposes public storefront data. You do not get ad spend, conversion rate, traffic, or private admin information.
- •Some stores block, customize, or partially disable the endpoint, especially with headless builds, custom middleware, or bot controls.
- •Inventory quantity is inconsistent. Many stores return `null`, so availability often matters more than exact stock counts.
- •Large catalogs become tedious fast. Manual pagination and spreadsheet comparison is fine once, but painful as a weekly process.
- •Aggressive scraping can run into throttling, WAF rules, or temporary blocks, especially if you hammer many stores at once.
Rate limiting deserves a specific mention. If you check one store by hand once in a while, you will probably be fine. If you try to scrape hundreds of feeds rapidly from the same environment, expect friction. That can show up as slower responses, challenge pages, blocked requests, or inconsistent payloads.
The other trap is overconfidence around inventory. Sometimes you will get exact quantities. Sometimes you will only get available. Sometimes both are useless. Treat stock levels as directional evidence unless you have repeated snapshots and a good feel for how that specific store behaves.
Automating it: why manual monitoring stops working
Manual feed checks are fine for learning. They are terrible as an ongoing operating system. The moment you track more than a handful of stores, the work turns into repetitive catalog collection, cleanup, and comparison.
This is where ShopSnoop becomes more valuable than the raw trick. Instead of asking you to open endpoints, merge pages, and compare JSON by hand, we do the repetitive work for you. You get a clearer answer to the questions that actually matter: who launched something new, who changed price, what went out of stock, and which competitor is moving fastest.
If you want the free path, keep using the feed manually. If you want a repeatable system, use a tool built for competitor monitoring. That is the difference between a clever hack and an actual workflow.
ShopSnoop CTA
Turn the hack into a workflow
Use ShopSnoop to monitor competitor Shopify stores continuously instead of checking products.json by hand. You will spend less time exporting data and more time reacting to useful changes.
Conclusion
Shopify products.json remains one of the simplest ways to begin competitor monitoring. It is fast, public, and structured enough to answer real questions about catalog breadth, pricing strategy, variant depth, and launch timing. If you are learning how to see Shopify store products or starting your first round of Shopify competitor research, it is the right entry point.
The catch is that the trick only gets you to the starting line. The real edge comes from consistent tracking, change detection, and turning a flood of public product data into something you can act on quickly. That is exactly what ShopSnoop is built to do.
Ready to stop checking competitor feeds manually?
Try ShopSnoop free, study the full walkthrough in the masterclass, or grab the free guide if you want the DIY version first.