Shopify Store Detector β Tech, Theme & App Detection API
Pricing
from $100.00 / 1,000 store detection records
Shopify Store Detector β Tech, Theme & App Detection API
Reverse-engineer any Shopify store: detect theme, 55+ installed apps (Klaviyo, Judge.me, Yotpo, ReCharge), full tech stack & Shopify plan. BuiltWith alternative at 1/100th the cost. Essential for e-commerce agencies, app developers & competitive research.
Pricing
from $100.00 / 1,000 store detection records
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Shopify Store Detector β Theme, Apps & Tech Stack Analysis
Analyze any Shopify store to uncover its theme, installed apps, and technology stack. Built for competitive-intelligence analysts, e-commerce agencies building client proposals, and SaaS teams prospecting Shopify merchants β a complete technical fingerprint of a storefront from a single URL.
π Sample Output

storeUrl | storeName | theme | detectedApps | techStack | estimatedPlan |
|---|---|---|---|---|---|
| https://www.allbirds.com | weareallbirds | {'name': '[DNAM Theme July 2026]', 'id': 130450260048, 'role': 'main'} | [{'name': 'Google Analytics', 'category': 'analytics', 'confidence':β¦ | ['Shopify', 'Google Tag Manager', 'Shopify Analytics', 'Shopify CDN',β¦ | Advanced |
| https://www.kyliecosmetics.com | kylie-jenner-us | {'name': 'SYNC | HOLIDAY SETS | DO NOT DELETE', 'id': 165716590834, '⦠| [{'name': 'Yotpo Reviews', 'category': 'reviews', 'confidence': 'medi⦠| ['Shopify', 'Google Tag Manager', 'Cloudflare', 'Shopify Analytics',⦠| Advanced |
Real rows from run XaWt0CEADcUiuIHGX on build 0.0.14 (2026-09-25), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.
π§ Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
storeUrls | ['array', 'string'] | ["https://www.allbirds.com", "https://www.kyliecosmetics.co⦠| List of Shopify store URLs to analyze. Provide full URLs like https://allbirds.com. Accepts a list of URLs OR a single URL string OR a comma/newline-separated list. Also accepts t⦠|
maxResults | integer | 20 | Maximum number of store URLs to process from the input list. Use this to limit processing when providing large URL lists. |
outputMode | string (raw, tracker) | "tracker" | Select 'raw' for basic detection data (theme, apps, tech stack). Select 'tracker' for advanced competitive intelligence including maturity scores, insights, and app combination an⦠|
urls | ['array', 'string'] | Alternative name for storeUrls. Accepts a list OR a single string OR comma/newline-separated. | |
startUrls | ['array', 'string'] | Alternative name for storeUrls. Accepts a list OR a single string OR comma/newline-separated. | |
domains | ['array', 'string'] | Alternative name for storeUrls. Accepts a list OR a single string OR comma/newline-separated. | |
shopifyStores | ['array', 'string'] | Alternative name for storeUrls. Accepts a list OR a single string OR comma/newline-separated. | |
storeUrl | string | Alternative β a single value when you only need one. Comma-separated values are auto-split. | |
url | string | Alternative β a single value when you only need one. Comma-separated values are auto-split. | |
domain | string | Alternative β a single value when you only need one. Comma-separated values are auto-split. |
π§Ύ JSON sample record
One real record from run XaWt0CEADcUiuIHGX (emails/phones masked, long text shortened):
{"storeUrl": "https://www.allbirds.com","storeName": "weareallbirds","theme": {"name": "[DNAM Theme July 2026]","id": 130450260048,"role": "main"},"detectedApps": [{"name": "Google Analytics","category": "analytics","confidence": "high"},{"name": "Schema.org Markup","category": "seo","confidence": "medium"},{"name": "Back In Stock","category": "marketing","confidence": "medium"}],"techStack": ["Shopify","Google Tag Manager","Shopify Analytics","Shopify CDN","Preconnect Optimization","Lazy Loading","Responsive Images","WebP Images","β¦"],"currency": "USD","country": "US","productCount": 250,"collectionCount": 30,"hasPasswordPage": false,"isLive": true,"appCategoryBreakdown": {"analytics": ["Google Analytics"],"seo": ["Schema.org Markup"],"marketing": ["Back In Stock"]},"techMaturityScore": 52,"competitiveInsights": ["Minimal app ecosystem detected β potential opportunity for growth."],"commonAppCombinations": [],"estimatedPlan": "Advanced"}
π° Pricing
| Event | Price (USD) | When it is charged |
|---|---|---|
Actor Start (apify-actor-start) | $0.01 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
Store detection record (apify-default-dataset-item) | $0.1 | Charged for each store analyzed and added to the dataset. |
Pay-per-event: you pay only for what the run delivers. A run that delivers nothing bills no result events (only the actor-start event, when the actor defines one). Example: a run that delivers 100 results costs 100 Γ $0.1 = $10.00 plus the start fee.
π Related Actors
More from the NexGenData Leads, contacts & enrichment family:
- Shopify Revenue Estimator β Store Intel API
- Shopify App Merchant Finder β Competitor App User Leads API
- Shopify Store Analyzer β Catalog, Apps & Revenue Signals API
- SSL Certificate Checker β Bulk Expiry & Chain Monitor
- TikTok Creator Email Finder β Influencer Contact API
- Tech Stack Detector β Wappalyzer & BuiltWith API Alternative
30 more in this family on the NexGenData Store page.
Key Features
- Theme Detection β active theme name, theme id and role, read from the
Shopify.themeobject, thetheme-namemeta tag, or stylesheet fingerprints. - App Detection β 50+ app fingerprints across 12 categories: reviews, email marketing,
loyalty, upsell/cross-sell, analytics, live chat, SEO, shipping, subscriptions, marketing,
page builders and personalisation. Each hit carries a
high/mediumconfidence. - Tech Stack Fingerprinting β third-party scripts, payment gateways (Shopify Payments, Apple Pay, Google Pay), analytics, CDN and front-end optimisation signals.
- Catalog Size β product and collection counts from the store's public
/products.jsonand/collections.jsonendpoints. - Tracker Mode β adds an app category breakdown, a tech-maturity score, competitive insights, common app combinations and an estimated Shopify plan.
- Bulk Analysis β pass a list of store URLs and analyze many stores in one run, with a consistent per-store schema.
Output Example
{"storeUrl": "https://www.allbirds.com","storeName": "weareallbirds","theme": { "name": "[DNAM Theme July 2026]", "id": 130450260048, "role": "main" },"detectedApps": [{ "name": "Google Analytics", "category": "analytics", "confidence": "high" }],"techStack": ["Shopify", "Google Tag Manager", "Shopify Analytics", "Shopify CDN","Lazy Loading", "Responsive Images", "WebP Images", "Shopify Payments","Apple Pay"],"currency": "USD","country": "US","productCount": 250,"collectionCount": 30,"hasPasswordPage": false,"isLive": true,"appCategoryBreakdown": { "analytics": ["Google Analytics"] },"techMaturityScore": 52,"competitiveInsights": ["Minimal app ecosystem detected β potential opportunity for growth."],"commonAppCombinations": [],"estimatedPlan": "Advanced"}
appCategoryBreakdown, techMaturityScore, competitiveInsights,
commonAppCombinations and estimatedPlan appear only in tracker output mode.
estimatedPlan is a heuristic estimate from public storefront signals, not a figure
published by Shopify.
Input
{"storeUrls": ["https://www.allbirds.com", "https://www.kyliecosmetics.com"],"outputMode": "tracker","maxResults": 20}
storeUrls also accepts a single URL string, a comma/newline-separated string, or any of
these alias field names: urls, startUrls, domains, shopifyStores, storeUrl,
url, domain.
π° Pricing
Pay-per-event β you pay for stores actually analyzed.
| Metric | Cost |
|---|---|
| Actor start | $0.01 |
| Per store analyzed and returned | $0.10 |
| 100 stores | $10.01 |
| 1,000 stores | $100.01 |
Stores that cannot be fetched, that answer with a bot-check page, or that turn out not to run Shopify are skipped and not charged β they are named in the run status message instead. There is no free tier for this actor.
β What happens when there is no data
- No
storeUrlssupplied β the run succeeds with 0 rows and a message naming the missing field. Nothing is charged. - A URL is reachable but not a Shopify store β skipped, named in the status message, not charged.
- Every requested store was blocked, challenged or unreachable β the run fails loudly with a message naming the cause, rather than finishing green and empty.
- The run hits its time limit β it stops cleanly and says "stopped early at the run time limit"; only stores actually analyzed are charged.
β FAQ
How fresh is the data? Every run fetches the target storefront live. No caching.
What output formats are supported? JSON, CSV, Excel and XML, plus the usual Apify integrations (Google Sheets, Slack, webhooks).
Can I access this via API? Yes β the standard Apify REST API and the official Python and JavaScript clients.
Can I use the output commercially? You own the output. Check the target site's Terms of Service for restrictions on the underlying content.
π Related NexGenData Actors
Analyzes publicly available storefront markup. Not affiliated with Shopify Inc.