Shopify Collections — Category Map of Any Store avatar

Shopify Collections — Category Map of Any Store

Pricing

from $2.10 / 1,000 collections

Go to Apify Store
Shopify Collections — Category Map of Any Store

Shopify Collections — Category Map of Any Store

List every collection a Shopify store publishes, with how many products sit in it and how recently it was merchandised. One row per collection, ready for a spreadsheet.

Pricing

from $2.10 / 1,000 collections

Rating

0.0

(0)

Developer

tidyfeed

tidyfeed

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

How does this brand organise what it sells?

Every collection a Shopify store publishes, with how big it is and how recently it was merchandised. One row each, biggest first. It is the fastest way to read a competitor's category structure without clicking through their navigation.

No API key. No login. No Shopify partner account. No proxies.


The number nobody else checks

Shopify publishes a products_count on every collection. It is not the number of products the store actually publishes, and it is not close.

Measured 2 September 2026, cross-checked against each store's own sitemap:

Store"All Products" collection reportsStore actually publishesSitemap agrees
deathwishcoffee.com1,281150149
allbirds.com4,143293293

Every tool that pipes products_count straight into a column called "products" is handing you a number that is wrong by 8x on one of those stores and 14x on the other.

So this actor does two things. It passes Shopify's figure through under the name productsCountReported, which says what it is. And it offers Count the products for real — switch it on and the actor opens every collection and counts what the public feed returns, in a separate productsCountVerified column.


What you get

One row per collection:

ColumnWhat it is
collectionTitleWhat shoppers see
handleThe address it lives at — /collections/<handle>
collectionUrlFull link
productsCountReportedShopify's own figure. Often inflated — see above
productsCountVerifiedWhat the feed really returns. Only when you ask for it
daysSinceUpdatedHow long since the store last changed this collection
updatedAt, publishedAtThe raw dates
imageUrlCollection image, if any
descriptionOptional, as plain text

daysSinceUpdated is the quiet workhorse. A store with 260 collections usually has forty that are live and two hundred that were abandoned after a campaign. This column separates them at a glance.


Typical uses

  • Read a competitor's category tree in one screen instead of crawling their menu.
  • Find the campaign collections. Sort by most recently merchandised and their current promotional push is at the top.
  • Size an assortment honestly. Turn on verified counts and compare real catalog depth across brands.
  • Find the collections worth scraping. Get the handles here, then feed them to tidyfeed/shopify-best-sellers, which reads any collection in the store's own order.

Input

FieldWhat it does
storeUrlsStore addresses. Normal website addresses.
minProductCountHide small and empty collections. Filters on the reported figure. Default 1.
maxCollectionsPerStoreUpper limit per store. Large brands publish several hundred. Default 500.
sortByBiggest first, most recently merchandised first, or A to Z.
verifyProductCountsGo and count what each collection really returns. Slower, and worth it.
includeDescriptionAdd the description as plain text.

What it costs

Billed per collection delivered. Collections filtered out by minProductCount are not charged. A store with no public feed returns nothing and costs nothing beyond the run start.

Verified counting adds requests and time, not price.

Platform usage is included. No proxies are needed, so there are no proxy costs.


How it works

Shopify serves a public collection list at /collections.json on every storefront. This actor walks it 250 at a time. With verification on, it then reads /collections/<handle>/products.json for each one and counts distinct products.

Headless storefronts are followed to their real shop. Brands running a custom front end answer /collections.json with a web page. This actor reads the shop address the site publishes in its own markup and continues there — mejuri.com resolves this way.

No HTML parsing means a theme change cannot break it.


Honest limits

  • productsCountReported is Shopify's number, and it is frequently wrong. It is included because it is what the store publishes, under a name that says so. Use productsCountVerified when the figure matters.
  • Verified counting stops at 5,000 products per collection. Rows that hit the ceiling are flagged with verifiedCountCapped.
  • Collections hidden from the storefront do not appear. This reads what a store publishes, not its admin.
  • A collection can report products and return none. Usually those products are not published to the online store. The verified count shows 0 rather than guessing.
  • No product-level data is returned here — this is the map, not the territory. Use tidyfeed/shopify-best-sellers for a collection's contents in order, or tidyfeed/shopify-product-scraper for a full catalog.
  • Password-protected and pre-launch stores return nothing, with a reason per store.

Scheduling

Merchandising moves in campaigns. Schedule it monthly against a competitor list and the diffs show you exactly when a brand restructured its categories or spun up a seasonal push.


This actor reads only data a Shopify store publishes publicly, at addresses the store itself serves to anyone. It collects no personal data, requires no login, and bypasses no access control. You remain responsible for how you use the exported data.


Questions, or a store that behaves oddly? Open an issue on the actor — issues are read and answered.