Shopify Store Leads — Catalog Size, Apps & Contacts
Shopify store leads with the numbers that qualify them — product count, price band, theme, installed apps, publishing cadence, and business contacts. Discover new stores by filter, or enrich domains you already have.
key features
Catalog size, price band, and product types — not just a domain and an email
Installed apps and theme detected per store
Publishing cadence — products per month and days since the last one
Find stores by what they sell through the Shop app's search, or enrich domains you already have
Never charged for a store a filter rejected
Business email, phone, and social profiles where published
Shop app rating and business address for each store listed there
use cases
- B2B prospecting for apps, agencies, and 3PLs selling to Shopify merchants
- Finding stores that have not yet installed a competitor's app
- Market mapping by country, category, and catalog size
- Enriching an existing domain list with catalog and tech-stack data
- Sourcing acquisition targets by trading activity and price band
- Building DTC brand datasets for commerce AI
input parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
storeUrls | array | optional | Domains to profile — set this and discovery is skipped |
query | string | optional | Find stores selling this — searched on the Shop app, which then supplies every store; with useShopApp off, or on your own storeUrls, matched against store name, description, and domain |
category | string | optional | Product category — with no query, searched on the Shop app; otherwise matched against the store's own product types |
countries | array | optional | Two-letter country codes, e.g. US, GB |
minProducts | number | optional | Skip stores with fewer products than this |
activeWithinDays | number | optional | Only stores that published a product this recently |
hasApps | array | optional | Only stores running these apps, by handle |
excludeApps | array | optional | Drop stores already running these apps |
requireEmail | boolean | optional | Only stores publishing a business email address |
maxItems | number | optional | Maximum stores returned — the hard cap on run spend |
useShopApp | boolean | optional | On by default: a keyword or category is searched on the Shop app, and each store gets its Shop app rating and business address |
Output Example
1{
2 "url": "https://www.gorjana.com/",
3 "domain": "www.gorjana.com",
4 "myshopifyDomain": "gorjana.myshopify.com",
5 "name": "gorjana",
6 "country": "US",
7 "province": "California",
8 "city": "Laguna Beach",
9 "address": ["3275 Laguna Canyon Rd Ste R1", "Laguna Beach, California 92651", "United States"],
10 "currency": "USD",
11 "catalog": {
12 "productCount": 983,
13 "collectionCount": 575,
14 "priceMin": 3000,
15 "priceMax": 599000,
16 "priceAvg": 17884,
17 "productTypes": ["Anklets", "Bracelets", "Charms", "Earrings", "Gift Cards", "Hand Chains", "Necklaces", "Rings"],
18 "sizeBand": "medium"
19 },
20 "activity": {
21 "daysSinceLastProduct": 1,
22 "isActive": true,
23 "productsPerMonth": 28.9
24 },
25 "theme": { "name": "[RELEASE] 5.2.0", "id": 166571606147 },
26 "apps": [{ "handle": "klaviyo", "name": "Klaviyo" }, { "handle": "okendo", "name": "Okendo" }],
27 "contacts": {
28 "emails": ["[email protected]"],
29 "phones": ["8668290030"],
30 "socials": { "instagram": "https://www.instagram.com/gorjana", "tiktok": "https://www.tiktok.com/@gorjana" }
31 },
32 "rating": { "average": 4.81, "ratingCount": 18510, "reviewCount": 4610 },
33 "discoveredVia": "input",
34 "scrapedUTC": 1790214009
35}
Two conventions worth knowing: prices are integers in minor units, so 17884 means $178.84, and timestamps are epoch seconds.
Tips
productsPerMonthis the real activity signal. It separates a store publishing 30 products a month from one that published its last 30 over four years —isActivecalls both active.maxItemscaps your spend. It is the hard ceiling on rows a run can return and therefore charge for; raise it only once the rows look right.- Rejected stores are free. Filters are applied before billing, so a tight filter set costs nothing on the stores it discards.
- Combine
excludeAppswithminProductsto build a prospect list of established merchants who have not yet bought what you are selling.
faq
Can I use it on stores I already know?
How do I find stores without a competitor's app?
Why is the policies list sometimes empty?
related in ~/business
Google Ads Scraper — Search, YouTube & Shopping Ads
Every Google ad a competitor runs — by domain, advertiser, or brand.
openAnytime Mailbox Scraper — Virtual Mailbox & CMRA Registry
Virtual mailbox locations worldwide, address-verified into a CMRA registry.
openIndeed Scraper — Jobs, Employers, Reviews & Salaries
Jobs and the employers behind them — descriptions, salaries, reviews, and Q&A.
open