Shopify Store Opportunity Intelligence
Pricing
from $2.00 / 1,000 store intelligence records
Shopify Store Opportunity Intelligence
Analyze Shopify stores for products, pricing, tech stack, public contacts, competitor monitoring, and agency lead opportunities.
Pricing
from $2.00 / 1,000 store intelligence records
Rating
0.0
(0)
Developer
Inus Grobler
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Share
Analyze public Shopify storefronts to extract products, pricing, discounts, tech stack, social links, public business contact info, and opportunity scores for lead generation, competitor monitoring, and e-commerce research.
Use it as a Shopify store analyzer, Shopify lead finder, Shopify product scraper, Shopify competitor monitoring tool, and Shopify tech stack research actor.
What this actor does
- Detects whether a public storefront is likely Shopify.
- Returns one clean store intelligence record per valid store.
- Analyzes public product catalogs, prices, discounts, variants, collections, and availability.
- Detects visible Shopify apps and e-commerce tools from public storefront evidence.
- Scores agency, CRO, SEO, email/SMS, reviews, subscription, app-sales, and competitor-monitoring opportunities.
- Optionally outputs one row per public product.
- Optionally extracts public business contact information when visibly published.
- Monitors product, price, discount, availability, collection, and tech-stack changes across runs.
Who should use it
- Shopify agencies
- CRO and SEO agencies
- Paid ads agencies
- Shopify app sales teams
- E-commerce consultants
- DTC brands monitoring competitors
- Lead generation teams
- E-commerce investors and acquirers
- Market researchers
Use cases
- Find Shopify agency leads.
- Build Shopify store lead lists.
- Find Shopify app sales prospects.
- Monitor competitor products and prices.
- Track discounts and availability.
- Analyze Shopify tech stacks.
- Research DTC brands.
- Audit e-commerce stores for CRO and SEO opportunities.
- Monitor product catalog changes.
Run it in 30 seconds
Paste one or more Shopify store URLs:
{"storeUrls": ["https://colourpop.com"]}
That is enough for store opportunity analysis.
The input form is intentionally short. analysisType controls the extra behavior automatically:
storeOpportunitiesreturns store profiles: one row per Shopify store.productCatalogreturns a product list: one row per public product, with product fields as separate columns.agencyLeadsincludes visibly published public business contact fields.competitorMonitoringcompares against the previous run.
To get a list of products, choose Product list - one row per product in the input form, or set "analysisType": "productCatalog" in the API input.
Simple input examples
Agency lead scoring:
{"analysisType": "agencyLeads","storeUrls": ["https://colourpop.com","https://www.tentree.com"]}
Competitor price monitoring:
{"analysisType": "competitorMonitoring","storeUrls": ["https://colourpop.com"]}
Product list, one row per product:
{"analysisType": "productCatalog","storeUrls": ["https://colourpop.com"],"maxProductsPerStore": 500}
Output overview
The actor has two main output shapes:
- Store profiles: one row per store, with flat lead, catalog, pricing, tech-stack, and opportunity fields.
- Product list: one row per product, with flat product columns such as
productTitle,productUrl,minVariantPrice,isDiscounted,available, andfeaturedImage.
The default store-profile output is one row per store, with important flat fields for CSV/Excel plus nested intelligence fields.
{"recordType": "store","storeDomain": "example-store.com","storeName": "Example Store","platform": "Shopify","platformConfidence": 0.98,"productCountEstimate": 428,"productsAnalyzed": 10,"averagePrice": 38.4,"discountedProductsPercent": 22.5,"reviewApp": "Judge.me","emailMarketing": "Klaviyo","overallOpportunityScore": 86,"agencyFitScore": 91,"topOpportunityTitle": "Subscription opportunity","estimatedStoreSize": "medium"}
Product-list mode outputs product records as the main dataset rows. Each product has separate spreadsheet columns for title, handle, URL, vendor, product type, tags, prices, compare-at prices, discount status, availability, variant counts, images, and source route. The full nested product object is also kept for API users who want the complete structure.
Monitoring mode outputs change records for new products, removed products, price changes, availability changes, discount changes, new or removed collections, and visible tech-stack changes.
The Apify Output tab includes focused dataset views:
- Store overview: one-row-per-store lead intelligence.
- Agency leads: scores, public contact fields, and social links.
- Product rows: one row per product with spreadsheet-friendly product columns.
- Monitoring changes: price, product, availability, collection, and app changes.
- Run health: warnings, validation, cost, and charge counters.
Store opportunity scores explained
Scores are deterministic and evidence-based. The actor does not claim revenue, traffic, conversion rate, or inventory quantity unless publicly visible.
overallOpportunityScore: combined B2B usefulness score.agencyFitScore: active store, meaningful catalog, public contact routes, and lead quality.croOpportunityScore: review gaps, discounting, policy/page gaps, upsell gaps, and product metadata.seoOpportunityScore: product/page coverage, blog/content signals, metadata, and schema evidence.emailSmsOpportunityScore: catalog size, DTC fit, discounts, and missing visible email/SMS tools.reviewsOpportunityScore: product pages with no visible review app or widget.subscriptionOpportunityScore: replenishable categories without a visible subscription app.appSalesOpportunityScore: Shopify fit, active store signals, and missing competing app category.competitorMonitoringValueScore: catalog size, discounting, and public price/availability data.
Tech-stack detection
The actor detects common storefront tools from public scripts, DOM markers, app snippets, CSS classes, globals, and visible widgets.
Examples include Judge.me, Loox, Yotpo, Okendo, Klaviyo, Omnisend, Attentive, Postscript, Recharge, Skio, Gorgias, Zendesk, Rebuy, Google Tag Manager, Meta Pixel, TikTok Pixel, Shop Pay, Klarna, Algolia, Searchspring, and more.
Tech-stack detection is based on public storefront evidence and may be partial when a store hides scripts, blocks bots, or loads apps only after user interaction.
Public contact info
Public contact extraction is disabled by default.
When enabled, the actor only extracts visibly published business contact details such as generic support, info, hello, or sales emails, public phone numbers, contact page URLs, and about page URLs. It does not submit forms and does not collect private customer data.
Pricing
Pricing is pay-per-event. You are charged only for valid useful records:
- Store records:
$2.00 per 1,000valid Shopify store intelligence records. - Product records:
$1.50 per 1,000valid public product rows in Product list mode. - Change records:
$1.00 per 1,000valid monitoring change records.
What counts as a paid result:
- A valid
storerecord with Shopify detected and statusokorpartial. - A valid
productrecord when product row output is enabled. - A valid
changerecord when monitoring detects a real public change.
What is not charged:
- Run summaries
- Warnings
- Invalid inputs
- Skipped stores
- Blocked stores
- Non-Shopify records
- Duplicate records
- Malformed records
- Products that are unchanged during monitoring
Pricing is based on measured Apify benchmark runs for store and product records. The default store analysis profile was cost-optimized after testing 512 MB, 1024 MB, and 2048 MB configurations. Change-record pricing is provisional until larger real monitoring-change volume is available.
The actor uses explicit pay-per-event records. Run summaries, warnings, skipped stores, and non-Shopify records are not charged as default dataset items.
Pricing and cost tips
- Basic store analysis is the cheapest mode.
- The default analyzes up to 10 public products per store to keep costs low.
- Product rows increase output volume and runtime.
- Higher
maxProductsPerStorevalues increase runtime. - Competitor monitoring is best for scheduled recurring runs.
- Browser fallback is disabled by default to keep runs cheap.
- Leave public contact extraction off unless you need visible business contact fields.
API examples
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('TheScrapeLab/shopify-store-opportunity-intelligence').call({storeUrls: ['https://colourpop.com'],analysisType: 'storeOpportunities'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("TheScrapeLab/shopify-store-opportunity-intelligence").call(run_input={"storeUrls": ["https://colourpop.com"],"analysisType": "storeOpportunities",})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL:
curl "https://api.apify.com/v2/acts/TheScrapeLab~shopify-store-opportunity-intelligence/runs?token=$APIFY_TOKEN" \-H "content-type: application/json" \-d '{"storeUrls":["https://colourpop.com"],"analysisType":"storeOpportunities"}'
CSV and exports
Use the default one-row-per-store output for lead lists, agency prospecting, app prospecting, and competitor summaries.
Choose productCatalog when you want one row per product for product catalog exports, price tracking, or product research. In this mode, store profile records are not mixed into the main business output; product rows are the primary result.
The main store row includes CSV-friendly fields such as storeDomain, storeName, productCountEstimate, productsAnalyzed, averagePrice, discountedProductsPercent, reviewApp, emailMarketing, overallOpportunityScore, agencyFitScore, topOpportunityTitle, and estimatedStoreSize.
Product rows include CSV-friendly fields such as storeDomain, productId, productHandle, productTitle, productVendor, productType, productUrl, currency, minVariantPrice, maxVariantPrice, compareAtPriceMin, compareAtPriceMax, isDiscounted, discountPercent, available, availableVariants, totalVariants, featuredImage, sourceType, and sourceScrapedAt.
Competitor monitoring and change detection
Use:
{"analysisType": "competitorMonitoring","storeUrls": ["https://colourpop.com"]}
The first run stores a compact public state. Later runs compare against that state and output change records only when public product, pricing, availability, discount, collection, metadata, or visible app signals change.
Limitations
- Some stores disable public product JSON.
- Some stores block bots or hide data behind JavaScript.
- Exact revenue, traffic, conversion rate, and inventory are not available unless publicly visible.
- Product counts may be estimates.
- Tech-stack detection is based on public storefront evidence.
- Browser fallback costs more and is disabled by default.
- Public contact extraction only works when business contact details are visibly published.
- This actor is not affiliated with Shopify.
Privacy and compliance
This actor uses public storefront data only.
It does not:
- Access Shopify Admin
- Use Shopify Admin API
- Attempt login
- Scrape checkout
- Add items to cart
- Submit forms
- Scrape customer data
- Collect private information
- Solve CAPTCHAs
- Bypass access controls
- Use paid third-party enrichment APIs
FAQ
Is this a Shopify Admin API tool?
No. It analyzes public Shopify storefronts only.
Does it scrape private customer data?
No. It does not scrape customer accounts, checkout, carts, payment pages, private reviews, or private customer data.
Can it monitor price changes?
Yes. Use competitor monitoring to compare products, prices, discounts, availability, collections, and visible app signals across runs.
Can it output one row per product?
Yes. Choose Product list - one row per product in the input form, or set "analysisType": "productCatalog". The actor will output product records with separate product, price, discount, availability, and image columns.
Does it work without proxies?
Yes. The default public input does not require proxy setup. Advanced API users can still pass proxy configuration if they have a specific need.
Why are some stores partial?
Some stores block public routes, disable product JSON, load data through JavaScript, or expose only limited public information.
Why are product counts sometimes estimates?
Shopify stores do not always publish exact catalog counts. The actor estimates from public JSON routes, sitemaps, collections, and sampled product pages.
What does opportunity score mean?
It is a deterministic B2B usefulness score based on visible public evidence such as catalog size, app gaps, policy pages, social links, pricing signals, product data, and contact routes.
Can I use it for Shopify agency lead generation?
Yes. Use agency lead scoring to prioritize stores worth pitching for CRO, SEO, retention, ads, tech stack, content, or catalog work.
Can I use it for Shopify app sales prospecting?
Yes. The actor detects visible app categories and highlights stores where a competing app category was not detected.
Store metadata
- SEO title: Shopify Store Analyzer & Lead Finder
- SEO description: Analyze Shopify stores for products, prices, discounts, tech stack, public contacts, competitor monitoring, and agency lead opportunities.
- Recommended categories: E-commerce, Lead generation, Marketing