Spy on any WooCommerce store: revenue, traffic, brand age, 70+ plugins detected, tech stack, tracking IDs, dropshipper risk, international expansion — all in one API call.
Python client for the WooCommerce Store Analyzer Apify Actor — get 56+ intelligence fields for any WooCommerce store using only public data sources.
WooCommerce powers ~30% of all online stores worldwide. For any WooCommerce URL, this actor returns a single rich JSON record combining 8 public data sources and 20+ derived intelligence signals.
A direct, pay-per-use alternative to:
- BuiltWith ($295+/mo)
- Wappalyzer ($150+/mo)
- SimilarWeb Pro
- Commerce Inspector ($10/mo, Shopify-focused)
Pricing: $0.01 per store analyzed. No subscriptions, no credits expiring, no rate limits.
from woocommerce_analyzer import WooCommerceAnalyzerClient
client = WooCommerceAnalyzerClient(api_token="apify_api_xxxxxx")
result = client.analyze_one("https://store.com")
print(f"Revenue: ${result['revenue_estimate']['monthly_revenue_usd_est']:,}/mo")
print(f"Traffic: {result['traffic']['monthly_visits']:,} visits/mo")
print(f"WP version: {result.get('wordpress_version', '?')}")
print(f"WC version: {result.get('woocommerce_version', '?')}")
print(f"Plugins: {result['plugins_count']}")
print(f"Tech quality: {result['tech_quality_score']}/100")
print(f"Risk: {result['dropshipper_risk_score']}/100 ({result['dropshipper_risk_bucket']})")Output:
Revenue: $1,843,570/mo
Traffic: 1,393,477 visits/mo
WP version: 7.0
WC version: 8.4.1
Plugins: 3
Tech quality: 90/100
Risk: 0/100 (low)
pip install git+https://github.com/apivault-labs/woocommerce-store-analyzer-python.gitOr clone and use directly:
git clone https://github.com/apivault-labs/woocommerce-store-analyzer-python.git
cd woocommerce-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 = WooCommerceAnalyzerClient(api_token="apify_api_xxxxxx")- Estimated monthly revenue (visits × CR × AOV)
- Annualized revenue projection
- Monthly visits + 3-month trend (SimilarWeb)
- Global rank, country rank, category rank
- Bounce rate, page per visit, avg time on site
- Top 5 countries by traffic share
- Traffic sources breakdown (search/social/paid/direct/...)
- Top 10 keywords with search volume + CPC
- HTML scan — plugin slugs from
/wp-content/plugins/<slug>/ - WP REST namespaces — plugins that register REST endpoints (more reliable)
- Page builders: Elementor, Divi, WPBakery, Beaver Builder, Oxygen, Bricks
- Payments: Stripe, PayPal, Square, Klarna, Afterpay, Sezzle, Affirm
- Reviews: Judge.me, Yotpo, Loox, Trustpilot
- Email: Klaviyo, Mailchimp, MailPoet, ActiveCampaign, ConvertKit, HubSpot
- SEO: Yoast, Rank Math, AIOSEO
- Cache: WP Rocket, W3 Total Cache, LiteSpeed, NitroPack, Cloudflare
- Pixels: Facebook, TikTok, Pinterest, Google, Microsoft Clarity, Hotjar
- Hosting hints: WP Engine, Kinsta, SiteGround, Hostinger
- Security: Wordfence, Sucuri, iThemes Security
- Multilingual: WPML, Polylang, TranslatePress
- LMS: MemberPress, LearnDash, LifterLMS
Public advertising IDs for brand-network mapping:
- Google Tag Manager, GA4, Universal Analytics
- Facebook Pixel, TikTok Pixel, Pinterest Tag
- Klaviyo public key, Hotjar, Microsoft Clarity
Same FB Pixel on two domains = same operator. Detect parallel WooCommerce brands.
- Real product / page / post / category counts (from
/sitemap.xml)
- Earliest Wayback Machine snapshot
- Earliest SSL certificate (via crt.sh)
- Estimated brand age + founding year
- All hreflang languages
- Currency switcher / country selector flags
- WPML / Polylang detection
- International expansion score (0-100)
- WordPress version (from generator meta)
- WooCommerce version (from asset paths)
- Active theme, currency, OG metadata
tech_quality_score(0-100) with explained signals — composite qualitydropshipper_risk_score(0-100) — heuristic detection (alidropship, dropified, spocket)customer_segment— mass-market / mid-market / premium / luxurymarketing_channel_mix— search-driven / social-driven / paid-driven / brand-driveninternational_expansion_score(0-100)
- Instagram, Facebook, Twitter/X, TikTok, YouTube, Pinterest, LinkedIn handles
- Public emails and phones from homepage
See examples/ 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 dropshipper risk score |
agency_prospecting.py |
Find WC stores with outdated WP/WC for agency leads |
plugin_research.py |
Aggregate plugin usage across niche stores |
brand_network_detector.py |
Detect domains sharing the same FB Pixel/GTM |
export_to_csv.py |
Save results to CSV / Excel |
| 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 | WooCommerce store URLs (or bare domains) |
conversion_rate |
float |
1.8 | % for revenue formula. Industry: 1.5–2% |
product_sample_size |
int |
200 | Products to sample (0 = full catalog) |
max_concurrency |
int |
3 | Parallel stores to analyze |
Plus boolean toggles to skip layers for speed:
| Flag | Default | Effect |
|---|---|---|
extract_traffic |
True |
Pull SimilarWeb data |
extract_revenue_estimate |
True |
Compute revenue formula |
extract_tech_stack |
True |
Detect 70+ apps + tracking IDs |
extract_plugins |
True |
Plugin slugs from HTML |
extract_wp_namespaces |
True |
Active plugins via WP REST |
extract_sitemap |
True |
Real totals from sitemap.xml |
extract_brand_age |
True |
Wayback + crt.sh lookups |
extract_international |
True |
hreflang + currency switcher |
extract_derived_signals |
True |
tech_quality_score, dropshipper_risk_score |
Returns: list[dict] — one record per store.
Convenience wrapper for single-store analysis. Returns one dict.
Filter analyzed stores by minimum estimated monthly revenue.
Find stores running WordPress older than X.Y — agency lead generation.
Returns the estimated USD cost for analyzing store_count stores.
{
"domain": "store.com",
"wordpress_version": "6.4.2",
"woocommerce_version": "8.4.1",
"theme_slug": "astra",
"currency": "USD",
"tech_stack": ["WooCommerce", "Elementor", "Stripe", "Klaviyo", "Yoast SEO", "WP Rocket"],
"tracking_ids": {
"google_tag_manager": "GTM-ABC1234",
"facebook_pixel": "1234567890123456"
},
"plugins_detected": ["woocommerce", "elementor", "klaviyo", "yoast-seo"],
"plugins_count": 24,
"wp_namespaces": ["yoast/v1", "wpforms/v1", "elementor/v1"],
"wp_rest_alive": true,
"sitemap_products": 487,
"sitemap_pages": 24,
"hreflangs_count": 3,
"international_expansion_score": 50,
"estimated_brand_age_years": 4.2,
"estimated_founded_year": 2022,
"traffic": {
"monthly_visits": 187432,
"global_rank": 89321,
"category_rank": 421,
"top_countries": [{"country_code": "US", "share": 0.74}]
},
"revenue_estimate": {
"monthly_revenue_usd_est": 247943,
"annualized_revenue_usd_est": 2975316,
"conversion_rate_used_pct": 1.8
},
"customer_segment": "mid-market",
"marketing_channel_mix": "search-driven (52%)",
"tech_quality_score": 90,
"tech_quality_signals": ["WP 6.3+", "WC 8.x+", "modern payments", "caching layer", "SEO plugin", "email marketing"],
"dropshipper_risk_score": 0,
"dropshipper_risk_bucket": "low"
}Find stores with outdated WordPress / WooCommerce versions, no caching, no security plugin, no SEO plugin — perfect leads for WP optimization services.
candidates = ["https://store1.com", "https://store2.com", ...]
outdated = client.find_outdated_wp(candidates, max_wp_version=6.0)
# → list of stores with WP < 6.0 — pitch WP upgradeFind WC stores using your competitor (e.g. Mailchimp → pitch Klaviyo) or NOT using your category (e.g. no Wordfence → pitch security).
stores = client.analyze(candidates)
no_klaviyo = [s for s in stores
if "Klaviyo" not in (s.get("tech_stack") or [])
and s.get("revenue_estimate", {}).get("monthly_revenue_usd_est", 0) > 50000]Verify a competitor's revenue before copying. Filter dropshipper_risk_score < 25 + revenue > $50K/mo to find legit niches worth entering.
Aggregate top_plugins across 100 stores in a niche → see which plugin combinations correlate with success.
Verify claimed revenue. Cross-check brand age via Wayback + SSL. Detect tech stack maturity.
Use tracking_ids to detect domains sharing the same Facebook Pixel or GTM container — same operator behind multiple WC brands.
stores = client.analyze(candidates)
fb_pixel_groups = {}
for s in stores:
pixel = s.get("tracking_ids", {}).get("facebook_pixel")
if pixel:
fb_pixel_groups.setdefault(pixel, []).append(s["domain"])
# Detect networks
for pixel, domains in fb_pixel_groups.items():
if len(domains) > 1:
print(f"Same FB Pixel {pixel}: {domains}")Track 100+ WC competitors weekly. Compare AOV, plugin choices, customer segment.
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 sources are public and free — no logins, no API keys, no proxies:
/wp-json/wc/store/v1/products— WooCommerce Store API (default-on since WC 4.7)/wp-json/wc/store/v1/products/categories— public category metadata/wp-json/— list of registered REST namespaces (active plugins fingerprint)/sitemap.xml//wp-sitemap.xml— recursive child sitemaps for real totals- Homepage HTML — parsed for plugins, theme, tech stack, tracking IDs, hreflang, currency
- SimilarWeb public API — stable for years
- Wayback Machine — first snapshot date
- crt.sh — SSL certificate transparency logs
Revenue estimate uses the industry-standard formula:
estimated_revenue = monthly_visits × conversion_rate × AOV
AOV = median_price × 1.5
- 8–12 seconds per store (parallel HTTP, no rendering)
- 3 stores in parallel by default (configurable up to 10)
- No proxies needed — all sources work from datacenter IPs
- Graceful degradation — if Wayback is slow, other layers still return data
Q: Will it work on every WooCommerce store? A: Yes — every store with the Store API enabled (default since WC 4.7, ~95%+ of stores). Stores that disable it return an error and skip cleanly.
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 an order-of-magnitude estimate.
Q: Can I detect Shopify stores too? A: Use the companion Shopify Store Analyzer.
Q: How is tech_quality_score computed?
A: Composite of WP/WC versions + modern payments + caching + security + SEO + email marketing + premium hosting. Stores scoring 70+ are well-maintained DTC brands; <30 = abandoned/legacy.
Q: How accurate is dropshipper_risk_score?
A: Heuristic. Scores 50+ almost always indicate dropshippers. Under 25 = legit brands. 25–50 needs manual review.
Q: How is brand age estimated? A: Earliest of (Wayback first snapshot, crt.sh first SSL cert). For domains older than ~2010, usually within ±1–2 years of actual founding.
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.
- WooCommerce Product Scraper — full catalog extraction with variants
- Shopify Store Analyzer — same intelligence for Shopify
- WordPress Plugin Detector — detect WP plugins on any site
- Domain Intelligence Scraper — WHOIS, DNS, SSL, subdomains
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).
woocommerce-analyzer woocommerce-store-analyzer wordpress-analyzer wp-analyzer wp-plugin-detector wordpress-plugin-detection ecommerce-intelligence store-intelligence builtwith-alternative wappalyzer-alternative similarweb-alternative commerce-inspector-alternative competitor-intelligence wp-agency-prospecting wp-lead-generation dropshipper-detection dropshipper-risk-score brand-network-mapping tracking-id-extraction wc-store-api wp-rest-api wordpress-rest web-scraping apify apify-actor python-sdk tech-stack-detection