Get revenue estimates, traffic data, tech stack, brand age & dropshipper risk for any Shopify store via a single API call.
Python client for the Shopify Store Analyzer Apify Actor — extract 40+ business intelligence signals from any Shopify store using only public data sources.
For any Shopify store URL, this actor returns a single rich JSON record combining 9 public data sources + 40+ derived intelligence signals.
A direct, pay-per-use alternative to:
- StoreLeads.app ($29/mo)
- Commerce Inspector ($10/mo)
- SimilarWeb Pro
- BuiltWith
Pricing: $0.01 per store analyzed. No monthly subscription, no credits expiring, no rate limits.
from shopify_analyzer import ShopifyAnalyzerClient
client = ShopifyAnalyzerClient(api_token="apify_api_xxxxxx")
result = client.analyze_one("https://allbirds.com")
print(f"Revenue: ${result['revenue_estimate']['monthly_revenue_usd_est']:,}/mo")
print(f"Traffic: {result['traffic']['monthly_visits']:,} visits/mo")
print(f"Brand age: {result['estimated_brand_age_years']} years")
print(f"Tech stack: {', '.join(result['tech_stack'])}")
print(f"Risk score: {result['dropshipper_risk_score']}/100 ({result['dropshipper_risk_bucket']})")Output:
Revenue: $6,629,788/mo
Traffic: 3,608,048 visits/mo
Brand age: 10.4 years
Tech stack: Google Analytics, Shop Pay, Apple Pay
Risk score: 50/100 (high)
pip install git+https://github.com/apivault-labs/shopify-store-analyzer-python.gitOr clone and use directly:
git clone https://github.com/apivault-labs/shopify-store-analyzer-python.git
cd shopify-store-analyzer-python
pip install -r requirements.txtRequires Python 3.9+ and the requests library.
- Sign up at apify.com — free tier includes $5 monthly credits, no card required
- Go to Account → Integrations
- Copy your Personal API token
export APIFY_API_TOKEN=apify_api_xxxxxxxxxxxxxxxxxxxxxxxxOr pass it explicitly:
client = ShopifyAnalyzerClient(api_token="apify_api_xxxxxx")- Estimated monthly revenue (visits × CR × AOV)
- Annualized revenue projection
- Monthly visits + 3-month trend (via SimilarWeb)
- Global rank, country rank, category rank
- Bounce rate, page per visit, avg time on site
- Top 5 countries by traffic share
- Top 10 keywords with search volume + CPC
- Product count, AOV, price range
- New products in 7 / 30 / 90 days (velocity)
- Discount aggressiveness (% on sale + avg discount %)
- Vendor concentration, product types
- Inventory health (% in stock)
- Top 20 product tags (niche detection)
- Duplicate description ratio (dropshipper signal)
- Likely best-sellers (top 5 by image count)
Klaviyo, Yotpo, Judge.me, ReCharge, Gorgias, AfterShip, PageFly, Shogun, Hotjar, Triple Whale, Northbeam, Algolia, Rebuy, Smile.io, Loox, Stamped, Okendo, Junip, Bold, Postscript, Attentive, Drift, Tidio, Re:amaze, Lucky Orange, Crazy Egg, Mouseflow, Refersion, ShipStation, ShipBob, Spocket, AutoDS, CJ Dropshipping, Oberlo, Dsers, Printful, Klarna, Afterpay, Sezzle, Affirm, Shop Pay, Apple Pay, Google Pay, PayPal — and more.
Public advertising IDs for brand-network mapping:
- Google Tag Manager (
GTM-XXXXXX) - GA4 (
G-XXXXXXXX), Universal Analytics (UA-X-X) - Facebook Pixel ID
- TikTok Pixel ID
- Pinterest Tag, Snapchat Pixel
- Klaviyo public key
- Hotjar Site ID, Intercom App ID, Microsoft Clarity ID
Same FB Pixel on two different stores = same operator. Detect parallel brand operations.
- Free shipping threshold (
$35,$50,$100, or 0 for universal) - Active promo codes (
SUMMER25,SAVE10) - Current discount % shown on the banner
- Announcement bar text
- Earliest Wayback Machine snapshot
- Earliest SSL certificate (via crt.sh)
- Estimated brand age in years
- Estimated founding year
- Shopify CDN store ID (sequential, lower = older)
- All
hreflanglanguages detected - Currency switcher / country selector flags
- International expansion score (0–100)
- Customer segment — mass-market / mid-market / premium / luxury
- Marketing channel mix — search-driven / social-driven / paid-driven / brand-driven / email-driven / mixed
- Dropshipper risk score (0–100) with explained signals
- Instagram, Facebook, Twitter/X, TikTok, YouTube, Pinterest, LinkedIn handles
- Public emails and phones from homepage
Real product / page / collection / blog counts (not just sample).
See the examples/ folder for full code:
| File | What it does |
|---|---|
quickstart.py |
Analyze one store, print key metrics |
bulk_analyze.py |
Analyze 50+ stores in parallel |
find_dropshippers.py |
Filter stores by risk score |
export_to_csv.py |
Save results to CSV / Excel |
compare_competitors.py |
Side-by-side competitor comparison |
monitor_changes.py |
Track stores over time, detect changes |
| Param | Type | Description |
|---|---|---|
api_token |
str |
Apify API token. Falls back to APIFY_API_TOKEN env var. |
timeout |
int |
Max seconds to wait for analysis. Default 600 (10 min). |
Analyze multiple stores synchronously.
| Param | Type | Default | Description |
|---|---|---|---|
store_urls |
list[str] |
required | Shopify store URLs (full or bare domain) |
conversion_rate |
float |
2.5 | % for revenue formula. Industry: 2.5%, fashion: 1.5–2%, electronics: 1%, impulse: 3–4% |
product_sample_size |
int |
250 | Max products to sample (0 = full catalog) |
max_concurrency |
int |
3 | Parallel stores to analyze |
Plus boolean toggles to skip data sources for speed:
| Flag | Default | Effect |
|---|---|---|
extract_traffic |
True |
Pull SimilarWeb data |
extract_brand_age |
True |
Wayback Machine + crt.sh lookups |
extract_tech_stack |
True |
Detect 60+ apps + tracking IDs |
extract_promo |
True |
Free shipping, promo codes, announcement |
extract_international |
True |
hreflang + currency switcher |
extract_sitemap |
True |
Sitemap totals |
extract_derived_signals |
True |
Risk score, customer segment, marketing mix |
Returns: list[dict] — one record per store.
Convenience wrapper for single-store analysis. Returns one dict.
{
"domain": "allbirds.com",
"myshopify_handle": "weareallbirds.myshopify.com",
"currency": "USD",
"cdn_store_id": "1104/4168",
"tech_stack": ["Google Analytics", "Shop Pay", "Apple Pay"],
"tracking_ids": {
"google_tag_manager": "TH8KRSBJ"
},
"announcement": {
"announcement_discount_pct": 30,
"announcement_bar_text": "30% off your order when you spend $150+. Discount automatically applied at checkout."
},
"socials": {
"instagram": "allbirds",
"tiktok": "weareallbirds"
},
"price_min": 3.0, "price_max": 99.0, "price_median": 39.0,
"avg_order_value": 58.50,
"products_on_sale_pct": 98.0,
"avg_discount_pct": 53.0,
"avg_images_per_product": 2.5,
"unique_tags_count": 285,
"top_tags": [
{"tag": "collection:apr26", "count": 100},
{"tag": "shoprunner", "count": 100}
],
"duplicate_description_pct": 89.0,
"new_products_30d": 100,
"sitemap_products": 980,
"hreflangs_count": 85,
"international_expansion_score": 70,
"estimated_brand_age_years": 10.4,
"estimated_founded_year": 2015,
"traffic": {
"monthly_visits": 3608048,
"global_rank": 10716,
"category_rank": 127,
"top_countries": [{"country_code": "US", "share": 0.87}]
},
"revenue_estimate": {
"monthly_revenue_usd_est": 6629788,
"annualized_revenue_usd_est": 79557456,
"conversion_rate_used_pct": 2.5
},
"customer_segment": "mid-market",
"marketing_channel_mix": "search-driven (58%)",
"dropshipper_risk_score": 50,
"dropshipper_risk_bucket": "high"
}Verify a competitor's revenue before copying their niche. Find legit brands (dropshipper_risk_bucket: "low") with revenue > $1M/mo and study their tech stack.
Find stores without your app (e.g. no Klaviyo → email automation pitch). Filter by revenue tier for enterprise prospects. Get founder emails and social handles in one call.
Verify claimed revenue. Cross-check brand age via Wayback + SSL. Spot paid-driven marketing (high CAC) vs brand-driven (sustainable).
- Old themes → pitch redesign
- Low
page_per_visit→ pitch CRO - Low
international_expansion_score→ pitch geo-expansion - High
dropshipper_risk_score→ skip (won't convert)
Track 100+ competitors weekly. Compare AOV, velocity, tech stack across a niche.
Use tracking_ids to detect domains sharing the same Facebook Pixel or GTM container — same operator behind multiple brands.
Pay only for what you analyze:
| Volume | Cost |
|---|---|
| 1 store | $0.01 |
| 100 stores | $1.00 |
| 1,000 stores | $10.00 |
| 10,000 stores | $100.00 |
Free Apify tier includes ~$5 monthly credit — analyze ~500 stores per month for free.
All data sources are public and free — no logins, no proxies, no extra API keys:
/products.json— Shopify's public catalog API/collections.json— public collections/sitemap.xml— recursive child sitemaps for real totals- Homepage HTML — tech stack, socials, meta, tracking IDs, announcement bar
- SimilarWeb public API — undocumented but stable
- Wayback Machine — first snapshot date
- crt.sh — earliest SSL cert (certificate transparency logs)
- hreflang scan — international targeting
- Schema.org JSON-LD — aggregateRating
Revenue formula:
revenue = monthly_visits × conversion_rate × AOV
AOV = median_price × 1.5 (industry heuristic for items per order)
Q: Will it work on every Shopify store?
A: Yes — every store with /products.json enabled (the default). Some stores hide their catalog; for those you still get tech stack, socials, traffic, brand age.
Q: How accurate is the revenue estimate? A: For stores with 100K+ monthly visits: usually within ±25% of public revenue. Smaller stores: less reliable due to SimilarWeb sampling. Treat as order-of-magnitude.
Q: Can it detect Shopify Plus stores?
A: Yes, via the likely_shopify_plus boolean.
Q: What if SimilarWeb has no data? A: Traffic / revenue fields will be null, but you still get all product, tech, brand age, and signal data.
Q: Is the dropshipper risk score reliable? A: It's a heuristic. Scores 50+ almost always indicate dropshippers. Under 25 = legit brands. 25–50 = manual review.
Q: Can I run this without Apify? A: This package is a thin wrapper around the hosted actor. The actor handles infrastructure, retries, parallelism. Self-hosted scraping at scale is a separate undertaking.
- Shopify Product Scraper — extract full catalogs
- WooCommerce Store Analyzer — same intelligence for WooCommerce
- Domain Intelligence Scraper — WHOIS, DNS, SSL, subdomains
- WordPress Plugin Directory Scraper — 60K+ plugins
See all actors by apivault_labs.
MIT — see LICENSE.
This client is open source. The underlying Apify actor is a paid service ($0.01/store).
shopify-scraper shopify-store-analyzer shopify-revenue-estimator shopify-intelligence shopify-api storeleads-alternative commerce-inspector-alternative similarweb-alternative ecommerce-intelligence dropshipper-detection competitive-intelligence web-scraping apify apify-actor python-sdk shopify-tech-stack shopify-tracking-ids shopify-revenue-api shopify-traffic-estimation lead-generation b2b-leads