Shopify Subscription Leads Scraper
Pricing
Pay per event
Shopify Subscription Leads Scraper
Qualify Shopify storefronts for DTC outreach with public subscription-provider, contact, social, and confidence signals.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Qualify a list of public DTC storefronts for Shopify and subscription signals.
Bring your own domains or homepage URLs. The actor fetches each public homepage, then returns evidence that helps an agency decide which brands merit outreach.
What does it do?
It detects publicly visible Shopify markers and recurring-subscription clues.
It also classifies recognizable subscription providers such as Recharge, Skio, Loop, Appstle, Bold, Seal, and Yotpo when their public HTML markers are present.
Who is it for?
- 🔎 DTC subscription agencies building a qualified outreach list.
- 🤝 Shopify-app partners looking for publicly observable fit signals.
- 📊 RevOps teams enriching a known account list before sequencing.
- 🛍️ Market researchers comparing storefront technology signals.
Why use it?
Generic ecommerce leads are noisy. A public subscription signal can help prioritize stores that may have recurring-revenue operations, retention workflows, or relevant Shopify-app needs.
The actor records evidence instead of making hidden assumptions.
Important scope
This is a lead qualification scraper, not a store-discovery directory.
You supply startUrls. It does not search Google, enumerate Shopify shops, access
the Shopify Admin API, log into a storefront, or bypass a private area.
What counts as evidence?
Shopify evidence includes public CDN, theme-data, asset-path, and generator markers.
Subscription evidence includes public subscription, subscribe-and-save, recurring delivery, and autoship wording plus provider-specific public script/content markers.
Confidence levels
| Confidence | Meaning |
|---|---|
high | Multiple Shopify markers plus a provider or multiple subscription signals |
medium | Shopify plus a subscription or provider signal |
low | One partial Shopify, provider, or subscription indicator |
none | No supported signal was found in the fetched public HTML |
Signals are useful qualification evidence, not proof that a merchant currently sells subscriptions or uses a paid provider plan.
Input
| Field | Description |
|---|---|
startUrls | Required storefront URLs or bare domains you provide |
maxItems | Maximum storefronts to process, default 10 |
requestTimeoutSecs | Bounded per-store timeout, default 30 seconds |
Start with a small list to validate your workflow.
Quick start
- Add storefront URLs in Storefront URLs or domains.
- Set a low
maxItemsvalue for your first run. - Run the actor.
- Filter output by
confidence,isShopify, orsubscriptionProviders. - Review
shopifySignalsandsubscriptionSignalsbefore outreach.
Example input
{"startUrls": [{ "url": "https://www.allbirds.com" },{ "url": "https://your-known-store.example" }],"maxItems": 2,"requestTimeoutSecs": 30}
Output
Each attempted storefront produces one row, including failures.
| Field | Description |
|---|---|
inputUrl / finalUrl | Submitted URL and final redirected URL |
domain, title, statusCode | Public storefront metadata |
isShopify, shopifySignals | Shopify detection and matched evidence |
subscriptionSignals | Matched generic recurring-commerce evidence |
subscriptionProviders | Deterministically matched provider names |
confidence | Evidence-based qualification level |
publicEmail, publicPhone | Publicly visible homepage contact data when available |
socialLinks | Public social profile links found on the page |
error | Per-store fetch/parse diagnostic, if any |
Example output
{"domain": "example-store.com","isShopify": true,"shopifySignals": ["Shopify CDN", "Shopify theme data"],"subscriptionSignals": ["Subscription keyword"],"subscriptionProviders": ["Recharge"],"confidence": "high","socialLinks": { "instagram": "https://instagram.com/example" }}
How much does it cost to qualify Shopify subscription leads?
The actor uses pay-per-event pricing: a small start event and one result event for each successfully qualified storefront record. Apify account tiers receive automatic per-result discounts. The exact current price is shown on the actor’s Apify page before you run it.
Data quality tips
- ✅ Use canonical storefront homepages rather than product URLs.
- ✅ Keep your supplied list current and deduplicated.
- ✅ Treat provider names as matched public evidence, not vendor-confirmed data.
- ✅ Review the raw signal arrays for high-value accounts.
- ⚠️ Some client-rendered sites may expose fewer signals in homepage HTML.
Error diagnostics
A failure for one domain does not stop the list.
The row’s error field records malformed URLs, DNS failures, timeouts, and similar
per-store problems so you can retry only the affected accounts later.
Integrations
Export the dataset to a CRM enrichment queue, Google Sheets, a data warehouse, or a Zapier/Make workflow.
A common agency workflow is: upload a prospect domain list → qualify subscription
signals → route high and medium confidence stores to a researcher → personalize
outreach from the evidence fields.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/shopify-subscription-leads-scraper').call({startUrls: [{ url: 'https://www.allbirds.com' }], maxItems: 1,});const items = await client.dataset(run.defaultDatasetId).listItems();console.log(items.items);
Python API
from apify_client import ApifyClientclient = ApifyClient("APIFY_TOKEN")run = client.actor("automation-lab/shopify-subscription-leads-scraper").call(run_input={"startUrls": [{"url": "https://www.allbirds.com"}], "maxItems": 1})print(client.dataset(run["defaultDatasetId"]).list_items().items)
cURL API
curl -X POST "https://api.apify.com/v2/acts/automation-lab~shopify-subscription-leads-scraper/runs?token=$APIFY_TOKEN" \-H 'content-type: application/json' \-d '{"startUrls":[{"url":"https://www.allbirds.com"}],"maxItems":1}'
MCP integration for Claude Code and Claude Desktop
Use this actor through Apify MCP in Claude Desktop or Claude Code. Add it from the Claude Code CLI:
claude mcp add apify-shopify-leads --transport http \"https://mcp.apify.com?tools=automation-lab/shopify-subscription-leads-scraper"
For Claude Desktop, add this server to the mcpServers object in your configuration:
{"mcpServers": {"apify-shopify-leads": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/shopify-subscription-leads-scraper"}}}
Example prompts:
- “Qualify these storefront domains for public Shopify and subscription-provider signals and show the evidence.”
- “Check this DTC prospect list, then return only Shopify stores with Recharge, Skio, or Loop markers.”
- “Find public contact and social links for these storefronts and explain each confidence score.”
Privacy and legality
Only submit storefronts you are entitled to analyze. Respect site terms, applicable privacy laws, and outreach rules. The actor reads public homepage HTML only; do not use output to infer sensitive information about people.
Limitations
Provider detection is marker-based and intentionally conservative. A merchant may use a provider whose assets are absent from the homepage, and a keyword match may be marketing copy rather than an active subscription offer.
Troubleshooting
Why is confidence none for a store I know uses Shopify?
The homepage may be client-rendered, proxied, customized, or missing the public markers used by this HTTP-first actor. Inspect the evidence fields and retry a canonical homepage URL.
Why is there an error row instead of no row?
The actor always emits a diagnostic row for an attempted storefront. Filter error
for retry lists without losing visibility into failed inputs.
FAQ
Does it find Shopify stores for me?
No. Supply your own domains. This focused design avoids building a generic directory.
Does it require Shopify Admin credentials?
No. It never calls private Shopify or provider APIs.
Can I use bare domains?
Yes. The actor normalizes a supplied domain to HTTPS.
Related scrapers
For broader public storefront qualification, pair this with Shopify Store Leads Scraper.
For Shopify marketing-stack qualification, see Shopify Klaviyo Gap Leads Scraper.
Support
Include the affected input URL and its diagnostic row when reporting a problem.
The evidence arrays make it possible to reproduce a classification without access to your private CRM or outreach workflow.