← Health board

Shopify Store Audit & Tech-Stack Lead Scorer

Audit any Shopify store — installed apps, theme, pricing & catalog signals, and tech-stack gaps. Bulk-score a prospect list and monitor stores for app installs/removals.

100%golden-diff pass
Run it on Apify verified nightly

Verification

100%golden-diff success
60canary runs
14days since last update

Output fields

Authoritative field set from the dataset schema.

FieldType
domainstring|null
is_shopifyboolean|null
shopify_plusboolean|null
theme_namestring|null
app_categoriesarray|null
detected_appsarray|null
missing_categoriesarray|null
matches_criteriaboolean|null
product_countinteger|null
price_minnumber|null
price_maxnumber|null
currencystring|null
discount_ratenumber|null
new_products_30dinteger|null
products_json_accessibleboolean|null
first_seenboolean|null
apps_addedarray|null
apps_removedarray|null
product_count_deltainteger|null
source_urlstring|null
scraped_atstring|null

Sample row

{
  "domain": "allbirds.com",
  "is_shopify": true,
  "detection_signals": [
    "cdn.shopify.com",
    "Shopify.theme"
  ],
  "shopify_plus": false,
  "theme_name": "Dawn",
  "detected_apps": [
    {
      "name": "Yotpo",
      "category": "reviews"
    },
    {
      "name": "Klaviyo",
      "category": "email"
    }
  ],
  "app_categories": [
    "email",
    "reviews"
  ],
  "has_reviews_app": true,
  "has_email_app": true,
  "has_search_app": false,
  "missing_categories": [
    "search",
    "upsell",
    "loyalty",
    "subscription",
    "chat"
  ],
  "matches_criteria": false,
  "product_count": 629,
  "price_min": 18,
  "price_max": 160,
  "currency": "USD",
  "discount_rate": 0.12,
  "new_products_30d": 7,
  "products_json_accessible": true,
  "first_seen": false,
  "apps_added": [
    "Klaviyo"
  ],
  "apps_removed": [],
  "product_count_delta": 12,
  "source_url": "https://allbirds.com"
}

Inputs

FieldTypeReqDefaultDescription
domains array yes ["allbirds.com"] Shopify store domains or URLs to audit, e.g. 'allbirds.com'. Paste a list to bulk-audit a prospect list. We audit the domains you provide (we don't discover stores).
targetGaps array no App categories that should be MISSING for a store to count as a lead — sets 'matches_criteria'. E.g. a reviews-app vendor sets ['reviews']. Categories: reviews, email, search, upsell, loyalty, subscription, chat.
includeProducts boolean no false When off (default), return store signals only (fast, cheap — the lead-gen need). Turn on to also include the (slimmed) product catalog.
compareToPrevious boolean no true When on (default), diff each store against the previous run and report what changed — apps added/removed and product-count delta. Run on a schedule to track stores over time.
maxProductsPerStore integer no 1000 Cap on products sampled per store (bounds cost). Product count caps here for very large stores.
proxyConfiguration object no {"useApifyProxy":false} Optional. Shopify storefronts are usually reachable directly; enable a proxy (e.g. residential) only if a store is blocked.

Pricing

Pay per result (dataset-item) — no charge for empty runs.
Example: 1000 Shopify stores audited at $0.01/result ≈ $10.00.

FAQ

How do you detect a store's apps?

From public storefront markers (scripts, theme, DOM signatures). No app install or merchant access is needed.

What can't it see?

Storefront-only data — never real inventory counts, sales, revenue, orders, or traffic (those are Admin-API-only).

How am I charged?

Pay-per-store audited. Non-Shopify or unreachable domains are free.

Can it monitor changes over time?

Yes — run on a schedule and it reports apps added/removed and the product-count delta since the last run.

How accurate is app detection?

Best-effort from storefront markers, kept current via our self-healer; some apps load server-side and can be missed.

Some stores won't load?

A few sit behind bot protection — enable the residential proxy toggle if a run is blocked.

Related actors