Shopify Subscription Leads Scraper avatar

Shopify Subscription Leads Scraper

Pricing

Pay per event

Go to Apify Store
Shopify Subscription Leads Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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

ConfidenceMeaning
highMultiple Shopify markers plus a provider or multiple subscription signals
mediumShopify plus a subscription or provider signal
lowOne partial Shopify, provider, or subscription indicator
noneNo 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

FieldDescription
startUrlsRequired storefront URLs or bare domains you provide
maxItemsMaximum storefronts to process, default 10
requestTimeoutSecsBounded per-store timeout, default 30 seconds

Start with a small list to validate your workflow.

Quick start

  1. Add storefront URLs in Storefront URLs or domains.
  2. Set a low maxItems value for your first run.
  3. Run the actor.
  4. Filter output by confidence, isShopify, or subscriptionProviders.
  5. Review shopifySignals and subscriptionSignals before 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.

FieldDescription
inputUrl / finalUrlSubmitted URL and final redirected URL
domain, title, statusCodePublic storefront metadata
isShopify, shopifySignalsShopify detection and matched evidence
subscriptionSignalsMatched generic recurring-commerce evidence
subscriptionProvidersDeterministically matched provider names
confidenceEvidence-based qualification level
publicEmail, publicPhonePublicly visible homepage contact data when available
socialLinksPublic social profile links found on the page
errorPer-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 ApifyClient
client = 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.

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.