StoreCheck Visibility · Guides

Is my Shopify store public? — storefront data surfaces

Shopify · Data exposure

In short: Yes — a standard Shopify store exposes a surprising amount of data by design: your full catalog with prices and timestamps at /products.json, store identity and geography at /meta.json, installed apps in the page source, and your myshopify backend domain via the /admin redirect. These are platform behaviours you cannot disable — but you control which data you put where.

Which data is public on a Shopify store?

On a stock Shopify storefront the following URLs work with no login and no API key:

Some of these (like /cart.js and search suggestions) are documented Ajax APIs; bulk endpoints such as /products.json and /meta.json are undocumented legacy surfaces that Shopify intentionally keeps serving — staff have acknowledged this on the community forums.

Is this a security vulnerability?

No — technically this is deliberate platform design, not a flaw. Shopify serves this data publicly so themes and apps can function; there is no per-store switch to disable it. That is why scan reports flag these as "public surfaces", not vulnerabilities.

But "not a bug" doesn't mean "irrelevant": because the data is public, the question of who reads it and what they infer is a competitive-position question — and that part is in your control.

What can a competitor do with it?

Practical scenarios:

Verify it yourself

Three commands against your own store:

curl -s "https://yourstore.com/meta.json" — returns country, currency, backend domain and catalog counts.

curl -s "https://yourstore.com/products.json?limit=5" — lists your product records with prices and timestamps.

curl -sI "https://yourstore.com/admin" | grep -i location — shows your myshopify.com backend address.

Also open the page source (Ctrl+U) and search for extensions/ — you will see your installed apps the same way a competitor does.

What you can and cannot change

You cannot disable these endpoints — on standard Shopify there is no control; on Plus/headless setups they can be partly turned off but that is the exception.

You can:

Related check in our scan: Store metadata is public (TR-META-EXPOSURE) · Installed-app inventory (TR-APP-FINGERPRINT) · Public catalog JSON (TR-CATALOG-EXPOSURE)
We measure this technically on your site — findings land in the report with evidence.

Frequently asked

Can I disable products.json entirely?

Not on standard Shopify — the endpoint is served by the platform. What you can do is move sensitive data to metafields and limit what leaks through sort/collection settings.

Would a competitor actually use this?

The data is one GET request away, so price-tracking tools and scraping services use it routinely. Even if you're not individually targeted, being included in bulk crawls is normal.

Does this count as a data-protection violation?

The endpoints themselves are platform behaviour; however if product/page fields contain personal data (addresses, notes, order info), that content is public and becomes a separate compliance risk — keep personal data out of product text.

How do I measure this on my store?

Our free scan checks three things: meta.json exposure, the installed-app inventory (including consent gaps) and catalog/backend exposure — findings land in the report with evidence.

Test your site freeResearch data

This page is technical guidance; no ranking or AI citation guarantee is claimed.