Monitors are live: get a webhook when any Shopify store changes a price, sells out, or starts a promo

[ BLOG ]

All posts

Research ·

How to Find Which Theme a Shopify Store Uses

Find a Shopify store's theme from the browser console, the page source or an API, and learn why a custom or renamed theme sometimes hides its real name.

To find which theme a Shopify store uses, open the store in a desktop browser, open the developer console and type Shopify.theme. The console prints an object with the theme's name and its schema_name. The schema_name is the name of the original theme the store started from, even when the merchant has renamed their copy to something like "Main theme v3". That one command answers the question for most stores.

What you need

  • A desktop browser with developer tools.
  • The address of the store. It must already be a Shopify store; if you aren't sure, [check if the website is built on Shopify](/blog/check-if-website-is-shopify) first.
  • About two minutes per store, or a script if you have a list.

Steps to find the theme

  1. Open the store's home page in Chrome, Firefox, Edge or Safari.
  2. Open the developer console (F12, or Cmd+Option+J in Chrome on a Mac).
  3. Type Shopify.theme and press Enter.
  4. Read schema_name and schema_version first, then name.
  5. If schema_name is missing, search the page source for theme_store_id and Shopify.theme.
  6. Look the name up in the [Shopify Theme Store](https://themes.shopify.com) to see the theme's page, price and demo.

Step 1: read the Shopify object

Every Shopify storefront defines a global Shopify object, and Shopify.theme describes the published theme. A typical result looks like this:

javascript
Shopify.theme
// {
//   name: "Dawn - Summer 2026",
//   id: 141234567890,
//   schema_name: "Dawn",
//   schema_version: "15.0.0",
//   theme_store_id: 887,
//   role: "main"
// }

The fields mean different things:

  • name is whatever the merchant called their copy of the theme. Merchants rename themes all the time, so this field is the least reliable.
  • schema_name comes from the theme's settings file and keeps the original theme name unless a developer edited it.
  • schema_version tells you which release of the theme the store runs. An old version can mean the store hasn't been redesigned in years.
  • theme_store_id is the theme's ID in the Shopify Theme Store. When it is present, the store bought or installed the theme from the Theme Store.
  • role: "main" confirms this is the published theme, not a preview.

Step 2: fall back to the page source

Some stores load the object late, and some browser extensions block the console. In that case, view the page source (Ctrl+U or Cmd+Option+U) and search for Shopify.theme =. The same JSON object appears in an inline script near the top of the page. You can also search for theme_store_id.

The asset paths are a second clue. Stylesheets and scripts load from cdn.shopify.com/s/files/.../t/<number>/assets/, and file names such as base.css or component-cart.css are typical of themes built on Dawn. File names alone don't prove anything, but they help when the theme was renamed.

Step 3: tell a Theme Store theme from a custom build

Three cases cover most stores:

  • A Theme Store theme, unchanged or lightly edited. schema_name matches a theme in the Theme Store and theme_store_id is set. You can buy the same theme and get the same layout.
  • A renamed or forked Theme Store theme. schema_name still matches a Theme Store theme, but theme_store_id is null or the name has been changed. The store started from that theme and a developer customized it. Buying the theme gets you the starting point, not the finished store.
  • A custom theme. schema_name is something like "Example Brand Theme" or a generic word, and nothing in the Theme Store matches. An agency or in-house team built it. Some of these are built on top of Dawn, which you can often spot from its file names.

Headless stores are a fourth case. They don't run a Liquid theme at all, so Shopify.theme is undefined on the storefront even though the checkout runs on Shopify.

Step 4: check many stores at once

For a list of stores, reading the console by hand doesn't scale. You can fetch each home page and extract the Shopify.theme object with a regular expression, but you will spend your time on redirects, bot protection and stores that changed their markup.

ShopLens returns the theme in the shopifyTheme field of each store profile. It is only filled in for official Theme Store themes, so a custom theme comes back as null. That is useful on its own: a list of stores with a null theme is a list of stores that paid for a custom build.

bash
curl -s -H "Authorization: Bearer $SHOPLENS_API_KEY" \
  https://data.shoplens.dev/api/v1/shops/example-store.com \
  | jq '{domain, shopifyTheme, isShopifyPlus, productsCount}'
json
{
  "domain": "example-store.com",
  "shopifyTheme": "Dawn",
  "isShopifyPlus": false,
  "productsCount": 214
}

Each lookup costs one credit. The docs list every field in the profile.

Why the theme matters for research

The theme tells you more than what a store looks like:

  • Agencies use it to qualify leads. A store on an old version of a free theme is a redesign prospect. A store on a custom theme already has a developer and needs a different pitch.
  • Theme and app developers use it to size their market, for example how many stores in a category use a theme their app integrates with.
  • Merchants researching competitors use it to find a layout they like and see what it would cost to start from the same theme.

Finding the theme's version and age

The schema_version field is worth a second look. Theme Store themes publish new versions several times a year, and merchants have to update their copy themselves, so many stores run a version that is one or two years old. Compare the version you found with the latest release listed on the theme's page in the Theme Store. A large gap usually means nobody has touched the theme's code in a while. For an agency that sells redesigns or theme updates, that gap is the opening line of a pitch: the store is missing features and fixes that the current version ships with.

Common mistakes

  • Trusting the name field. It is free text. "Dawn copy (2)" and "Live theme" are both common.
  • Checking a preview link. A URL with preview_theme_id shows an unpublished theme. Remove the parameter and reload.
  • Assuming the same theme means the same store. Two stores on the same theme can look completely different after section settings, apps and custom code.
  • Missing headless storefronts. An undefined Shopify.theme doesn't mean the site isn't on Shopify. Check the checkout before you conclude anything.

How to check it worked

Search the Theme Store for the schema_name you found and open the theme's demo. If the header, product page layout and cart drawer match the store you were looking at, you have the right theme. If only the general structure matches, the store is running a customized copy, and the theme is the starting point the developer used.

[ GET STARTED ]

Start building on Shopify data

Get an API key and make your first store lookup in a few minutes.