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.
Verification
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
domain | string|null |
is_shopify | boolean|null |
shopify_plus | boolean|null |
theme_name | string|null |
app_categories | array|null |
detected_apps | array|null |
missing_categories | array|null |
matches_criteria | boolean|null |
product_count | integer|null |
price_min | number|null |
price_max | number|null |
currency | string|null |
discount_rate | number|null |
new_products_30d | integer|null |
products_json_accessible | boolean|null |
first_seen | boolean|null |
apps_added | array|null |
apps_removed | array|null |
product_count_delta | integer|null |
source_url | string|null |
scraped_at | string|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
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
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