How to Find Newly Launched Shopify Stores for Outreach

2026-11-04来源 dev.to PythonEnglish

If you build Shopify apps, sell themes, run an agency or supply products, new merchants are your best prospects. A store that launched last week is still choosing apps, fixing its design and looking for suppliers. Store owners that have been around for years usually have all of that settled.

The hard part is finding new stores at all. This guide explains how to do that with the New Shopify Stores Finder on Apify.

The problem

Shopify doesn't publish a list of new stores. Lead databases exist, but they're often expensive, and their "new" stores can be months old by the time you see them. You want stores from the last few days.

The manual way (and why it hurts)

The do-it-yourself approach goes like this:

  1. Download a daily feed of newly registered domains (tens of thousands a day).
  2. Run DNS lookups on each one to see which point to Shopify.
  3. Visit every match to collect the store name, country, product count and contact details.

Only a small share of new domains are Shopify stores, so you'd check thousands of domains to find a few dozen stores. That means writing and maintaining a script, handling DNS timeouts, and parsing each storefront.

How the Actor does it

The Actor automates exactly that process:

  1. It downloads the latest daily newly registered domains feed from WhoisDS.
  2. It checks each domain's DNS. A store is detected when the domain or its www. subdomain resolves into Shopify's 23.227.38.0/24 range or CNAMEs to shops.myshopify.com.
  3. It enriches each detected store from public pages: the homepage, /meta.json, /products.json, the contact page and the policy pages.

Domain checks are free. You only pay for stores saved to the dataset.

Step 1: Configure the input

Open the Actor page and click Try for free. These are the defaults:

{ "maxDomainsToCheck": 5000, "maxStores": 50, "onlyWithEmail": false, "skipPasswordProtected": false, "dnsConcurrency": 100 } 
  • maxDomainsToCheck: how many new domains to test. 5,000 usually yields 50 or more stores.
  • maxStores: stop after this many stores. This is your cost cap.
  • tlds, keyword, countries: narrow the search, for example keyword: "pet" or countries: ["US"].
  • onlyWithEmail and skipPasswordProtected: drop stores with no email, or stores that haven't launched yet.

Filters are applied after detection, so raise maxDomainsToCheck when you filter heavily.

Step 2: Read the output

domain storeName country currency productCount firstProductPublishedAt
emone.store EMONE GB USD 354 2026-10-28T09:31:16-04:00
fkstorea.shop FK store PK PKR 23 2026-10-22T23:37:33+05:00
shopamulusa.com Amul USA US USD 99 2026-10-16T17:58:27-04:00

Full records also include the theme, social profiles, price range, collection count, sample products, vendors, whether the store is password-protected, and public contact emails and phones when the store lists them. New stores rarely publish phone numbers, so phones is often empty.

The theme field is handy for theme sellers, and productCount helps you separate real stores from placeholder sites.

Step 3: Schedule it

A one-off export is useful, but the real value is getting new records on a timetable without thinking about it.

  1. In Apify Console, open Schedules and click Create new.
  2. Set the cron expression. For example, 0 9 * * * runs it every morning at 9:00.
  3. Add the Actor (New Shopify Stores Finder) and paste the same input JSON you used above.
  4. Optional: under the Actor's Integrations tab, connect Google Sheets, Slack, Zapier, Make or a webhook so each finished run lands where your team already works.

The domain feed only covers the last few days, so a daily schedule is the best way to build a steady pipeline of fresh stores. Use the date input if you need a specific feed date.

Step 4: Run it from Python with apify-client

If you'd rather pull the data into your own scripts or CRM, use the official apify-client package (pip install apify-client). Grab your API token from Settings > API & Integrations in Apify Console and keep it in an environment variable rather than in code.

import os from apify_client import ApifyClient client = ApifyClient(os.environ["APIFY_TOKEN"]) run_input = { "maxDomainsToCheck": 5000, "maxStores": 50, "onlyWithEmail": False, "skipPasswordProtected": True, "dnsConcurrency": 100, "countries": [ "US" ] } run = client.actor("perskekits/new-shopify-stores-finder").call(run_input=run_input) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item.get("domain"), item.get("storeName"), item.get("productCount"), item.get("theme")) 

You can de-duplicate on domain across days and enrich the list further before you reach out.

What it costs

The Actor uses Apify's pay-per-event pricing, so you pay for results, not for server time:

  • $0.005 per run start
  • $0.008 per store saved returned

Domain checks are free. For example, 50 stores cost about $0.405, and 1,000 stores cost about $8.01. Apify's free plan includes a small amount of monthly platform credit, which is enough to try small runs. Check the Actor's pricing tab for the current rates before you run anything large.

FAQ

How new are the stores?
They come from domains registered in the last few days. Check feedDate and firstProductPublishedAt to see how recent each one is.

Why do I get fewer stores than maxStores?
Only a small share of new domains point to Shopify. Raise maxDomainsToCheck or loosen your filters.

What does "password protected" mean?
The store exists but hasn't launched to the public yet. Some sellers treat these as the earliest possible leads.

Is it legal?
It only reads public pages and DNS records. Follow anti-spam laws such as CAN-SPAM and GDPR in any outreach, and keep messages relevant to the store.

Wrapping up

Finding new merchants early is a real edge for agencies and app developers. Schedule the Actor once and you'll get fresh stores daily. Try the New Shopify Stores Finder.

原文:https://www.a8q9.cn/en/article/how-to-find-newly-launched-shopify-stores-for-outreach-139882.html

相关文章