Shopify Advertiser Leads Finder — $5/1K · Emails, Phones & Ads avatar

Shopify Advertiser Leads Finder — $5/1K · Emails, Phones & Ads

Pricing

from $5.00 / 1,000 verified shopify advertiser leads

Go to Apify Store
Shopify Advertiser Leads Finder — $5/1K · Emails, Phones & Ads

Shopify Advertiser Leads Finder — $5/1K · Emails, Phones & Ads

Find Shopify stores running Facebook & Instagram ads. Verify live websites, export public business contacts and ad evidence. No login. Bulk CSV, JSON, Excel and API.

Pricing

from $5.00 / 1,000 verified shopify advertiser leads

Rating

0.0

(0)

Developer

Apivault Labs

Apivault Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Share

Shopify Advertiser Leads Finder

Shopify Advertiser Leads Finder — active ads, verified stores and public contacts

Turn active Facebook and Instagram ads into a prospect list of verified Shopify stores. Get public business contacts, ad evidence and detected apps in one export.

  • Search by niche or Facebook Page ID. Merge duplicate ads into one row per verified store.
  • Find contacts with sources. Prefer store-domain emails and inspect the page and extraction method behind each contact.
  • Qualify prospects. Filter by video ads, ad start dates, detected apps and supported agency service needs.
  • Export CSV, JSON or Excel. Run in bulk through the API and connect n8n, Make or webhooks.

No Facebook login or external API key is required. An Apify account is needed to run the Actor; result and platform/proxy charges apply as described below.

Use it to prospect for Shopify development, email marketing, paid media and creative services. An active ad is evidence of advertising activity; it does not establish revenue, ad spend, profitability or a willingness to buy your service.

Agency prospect research with reviewable advertising evidence

Use Shopify Advertiser Leads Finder to build a small list of stores for your own manual qualification. It connects observed active Meta ads with a checked Shopify website and whatever public business contacts the checked pages expose. Advertising activity, contact presence and detected apps are separate observations; none certifies a prospect's budget, consent or willingness to buy.

Start with a questionRead these fieldsAvoid this inference
Is this a checked Shopify site?shopifyEvidence, technologies, checkedAtA complete installed-app inventory
What advertising was observed?adEvidence, activeAdsObserved, queriesMatchedTotal ad spend, revenue or complete ad-library coverage
Where did a contact come from?primaryEmailSource/Method/RelationVerified mailbox delivery or marketing consent
Is the evidence complete enough to review?pagesChecked, coverageWarnings, SUMMARYA high score as a predicted conversion

Start with explicit scan, website and result limits. Large defaults are useful for planned bulk work; a small first request is easier to inspect and budget.

Quick start

{
"searchQueries": ["skincare"],
"country": "US",
"maxAds": 10000,
"maxStoresToCheck": 1000,
"maxResults": 1000,
"requireEmail": false
}

The default result limit is 1,000 distinct store rows, with a shared scan budget of 10,000 ads and up to 1,000 candidate websites checked. These defaults also apply when the API input omits the three limit fields. Existing Tasks and saved inputs retain their explicitly saved limits.

The Actor searches active Meta ads, checks matching landing websites for multiple Shopify signals, visits up to four pages per website for public contacts, and merges duplicate ads into a single store row. Requested result counts are ceilings, not guaranteed quantities. A store with many ads still produces one row. Source coverage, rejected websites, filters, spending limits and runtime can reduce delivery. A single keyword may not supply 1,000 verified Shopify stores; combine relevant keywords or Page IDs within the shared limits.

For a smaller first test, set maxResults: 10, maxAds: 150 and maxStoresToCheck: 40. At the current rate, 1,000 delivered rows cost $5 in result fees plus platform/proxy usage; set a spending cap with resource headroom before a bulk run.

The country selects the advertising market, not the company's headquarters. Keywords must occur in an advertiser name or ad text. They do not guarantee that the company's main business belongs to that category.

Preview before your first run

These five real stores were observed in a five-query US advertising-market QA scan on 16 October 2026 (Minsk). Email values are redacted in the downloadable preview; source URLs and ad links are retained. These examples illustrate fields and do not guarantee the same stores, contacts or result counts in your next run.

SearchStoreAds observedVideo adsEmailApps observed
skincarefroyaorganics.com239Store-domain emailGoogle Tag Manager, Klaviyo, Loox, Shopify
coffeetheloadedteashop.com33Store-domain emailGoogle Tag Manager, Judge.me, Recharge, Shopify
jewelryenroutejewelry.com127Store-domain emailGoogle Tag Manager, Klaviyo, Shopify, TikTok Pixel
petuprootclean.com75Store-domain emailGoogle Tag Manager, Judge.me, Klaviyo, Okendo
fitnessgmwdfitness.com108Store-domain emailGoogle Tag Manager, Judge.me, Shopify

Download the CSV preview or inspect the JSON preview. Each real result pairs its public contact with a source URL, extraction method, Shopify evidence and active-ad observations. Email presence is not a deliverability test.

Result fields

FieldMeaning
domain, website, storeNameVerified website and its published title
primaryEmail, primaryPhonePreferred public email and first phone; empty when unavailable
primaryEmailRelation, primaryEmailSource, primaryEmailMethodStore-domain/provider/external-domain classification, source URL and extraction method. Store-domain contacts are preferred.
emails, phones, socialProfilesContacts paired with their source page URLs
activeAdsObserved, videoAdsObservedUnique active ads found in this bounded scan, grouped by destination domain
adEvidence, sampleAdUrlUp to ten ad examples with IDs, advertiser Page IDs, dates and landing URLs
shopifyEvidence, technologiesWebsite markers and the exact page checked
pagesChecked, contactStatus, checkedAtContact coverage and verification time
queriesMatched, adSearchCountrySearch context, not headquarters location
historyStatus, firstDeliveredAtOptional delivery history: NEW or RETURNING, relative to your history key
newestAdStart, oldestAdStart, adsStartedLast30DaysObservedSource-published start dates for the ads in your scan; not our discovery dates
evidenceScore, scoreBreakdown, whyThisLeadTransparent evidence-completeness score and readable observations; not a conversion or revenue prediction
serviceFocus, serviceToolsChecked, serviceReviewNoteOptional supported-tool screening for agency prospecting, with explicit review limitations
homepageTruncated, coverageWarningsPages above the 2 MiB HTML limit and contact-page failures are marked as partial coverage

Use the Leads, Contacts, Agency or Evidence output views. Export CSV, JSON or Excel using Apify's dataset export, or integrate the Actor API with n8n, Make and webhooks. The primary email's source and extraction method are flat CSV fields, so you do not need to unpack the contact arrays.

Filters and practical recipes

  • Contactable store leads: set requireEmail: true. Emails are extracted from published pages; mailbox deliverability is not verified.
  • Video creative prospects: set minVideoAds: 1 and optionally requireEmail: true. Counts refer to ads observed in your scan, not the advertiser's full inventory.
  • Shopify app audiences: set includeTechnologies: ["Klaviyo"]. All included technologies must be detected.
  • Exclude detected apps: set excludeTechnologies: ["Gorgias"]. This means no matching marker was found on the checked homepage; an app may still be used elsewhere.
  • Specific advertisers: set facebookPageIds to numeric Meta Page IDs, and use an empty searchQueries array. Ads must still lead to a live Shopify website.
  • Skip your customers: use excludeDomains. Subdomains of excluded domains are skipped too.

Supported technology filters: Shopify, Klaviyo, Gorgias, Yotpo, Judge.me, Loox, Recharge, Attentive, Omnisend, Stamped.io, Okendo, Junip, Reviews.io, Privy, Mailchimp, Postscript, Tidio, Intercom, Zendesk, Re:amaze, Meta Pixel, TikTok Pixel, Google Tag Manager. These are observed HTML fingerprints, not an exhaustive app inventory. Tracking-pixel detection alone does not prove active advertising; every delivered row also needs a source ad explicitly marked active.

Five ready-to-run prospecting recipes

1. Public emails on the store's own domain

{"searchQueries":["skincare"],"country":"US","maxAds":90,"maxStoresToCheck":25,"maxResults":5,"requireStoreDomainEmail":true}

The primary email prefers the store's registrable domain, then public-mail providers, then external domains. Within those groups, explicit public sales/contact/support inboxes and mailto links get priority. Visible obfuscated and Cloudflare-protected public emails are decoded. This is an extraction preference, not proof of mailbox delivery, ownership or consent to receive messages.

2. Video advertisers with ads started in the last 30 days

{"searchQueries":["skincare"],"country":"US","maxAds":90,"maxStoresToCheck":25,"maxResults":5,"minVideoAds":1,"adsStartedWithinDays":30,"requireEmail":true}

The window filters individual ads, so every ad count in this run refers to matching active ads, not all active ads ever observed for that store. Unknown and implausibly future start dates do not satisfy an enabled window. A recent ad does not establish a new advertiser or increasing ad spend.

3. Klaviyo users with live advertising

{"searchQueries":["skincare"],"country":"US","maxAds":90,"maxStoresToCheck":25,"maxResults":5,"includeTechnologies":["Klaviyo"],"requireEmail":true}

4. Customer-support tools not detected

{"searchQueries":["skincare"],"country":"US","maxAds":90,"maxStoresToCheck":25,"maxResults":5,"serviceFocus":"customer-support","requireEmail":true}

serviceFocus can be general, email-marketing, reviews, subscriptions or customer-support. Non-general modes skip stores where a supported target tool is detected and skip truncated homepages. The checked tools are returned in serviceToolsChecked. Email/SMS checks Klaviyo, Omnisend, Attentive, Privy, Mailchimp and Postscript; reviews checks Yotpo, Judge.me, Loox, Stamped.io, Okendo, Junip and Reviews.io; subscriptions checks Recharge; support checks Gorgias, Tidio, Intercom, Zendesk and Re:amaze. Unlisted tools and hidden integrations may still be used. Review the evidence before pitching a service.

5. Only advertisers new to your delivered list

{"searchQueries":["skincare"],"country":"US","maxAds":90,"maxStoresToCheck":25,"maxResults":5,"historyMode":"ONLY_NEW","historyKey":"my-weekly-shopify-prospects","requireEmail":true}

The Actor's public Examples tab may have fewer presets while Apify's account-level published-Task quota is being reviewed. These inputs work directly in the Actor, API or your own Task.

Evidence score

evidenceScore describes the completeness of observed evidence. The published formula is: verified Shopify +20; observed active ads +2 each, capped at 20; public email +30 for a store-domain email, +20 for a public-mail provider or +10 for an external-domain email; public phone +10; video-ad evidence +10; at least one observed ad started in the last 30 days +10; truncated homepage −10. The total is capped to 0–100. scoreBreakdown shows the actual points. It is not calibrated against customer purchases, conversions, brand revenue or advertising budgets. Results are delivered in bounded verification batches, not globally sorted by this score; sort your exported dataset if needed.

Recurring runs and new stores only

{
"searchQueries": ["skincare"],
"country": "US",
"maxAds": 150,
"maxResults": 5,
"historyMode": "ONLY_NEW",
"historyKey": "my-skincare-prospecting-list"
}

TRACK labels delivered stores NEW or RETURNING. ONLY_NEW excludes previously delivered domains. History is disabled by default. Supply a stable historyKey to enable it. The Actor creates a private named key-value store in the account running it; SUMMARY contains its ID. History keys are isolated by account and Actor. Only delivered results are remembered. The history holds up to 50,000 domains; use a new history key to begin a new list. Named history storage is retained until you delete it and can incur storage usage.

Run one job at a time for each history key. Overlapping jobs using the same key are not supported and can overwrite history. NEW means new to your delivered list, not a newly opened business or a newly launched advertising account. Starting another history key resets that comparison.

Limits and source failures

maxAds bounds the scanned ads across all searches (maximum 10,000). Multiple searches share this budget. maxStoresToCheck bounds verified candidate websites (maximum 1,000). maxResults bounds delivered rows (maximum 1,000). The run's SUMMARY record shows scan, website, result and spending limits, skipped rows and incomplete searches. Its searches array reports each query/Page ID, allocated budget, returned ad count and whether collection ended, hit that budget or had a source error. searchesSkippedByBudget reports targets the shared cap prevented from being attempted. Page-ID searches reject ads belonging to another Page, and pagination retains one search session across pages.

New runs default to 512 MiB and a one-hour platform timeout. Large scans first collect ads, then verify candidate websites; progress counts appear in the run log. Once ad collection completes, the Actor saves a compressed candidate snapshot in the run's private default key-value store and saves website progress after each completed batch. A migration or reboot during website verification reuses that snapshot and completed checks. Delivered rows are reconciled with the dataset to prevent duplicate result charges. An unfinished batch may be retried; a migration during the initial ad collection can still repeat that unfinished scan. The checkpoint adds storage/API usage and follows the run store's retention settings.

The Actor stops admitting new website batches near its original run deadline and reports runtimeLimited in SUMMARY when time reduces coverage. This deadline does not reset after a migration. Explicit spending and result limits still apply.

Public Meta requests use Apify residential proxy. Residential proxy access is required for hosted collection; usage is billed separately. No cookies or credentials need to be entered in the input. Websites use direct HTTP first, with a residential proxy retry for failed requests. JavaScript, blocking or login can still prevent collection. Websites are omitted when Shopify cannot be verified. Missing contacts stay empty. Source failures are reported; a failure of every advertising search fails the run instead of producing a misleading successful empty result. Partial source results can still be delivered with an incomplete-search warning in SUMMARY.

Counts are bounded observations. Multiple advertisers may link to one store; those ads are combined, and Page IDs are preserved. Cross-domain website redirects are skipped to avoid assigning contacts to the wrong store. Marketplace destinations and unsupported link shorteners are skipped. Ad evidence links may later expire or show an inactive ad.

Pricing

$5 per 1,000 delivered store rows on every Apify plan, plus platform and proxy usage. There is no separate Actor start fee. Check the Store Pricing tab for the effective rate. Only delivered store rows incur result charges; rejected websites, duplicate ads, empty results and errors do not incur result charges. Platform compute, storage, network and residential proxy usage are separate and can apply even when no store qualifies. Set both scan limits and a run spending limit before large runs; the platform run cap (maxTotalChargeUsd) includes result events and caller-paid platform/proxy usage. Leave room for resources instead of setting it to the exact nominal row price. The Actor subtracts reported resource usage before admitting more result rows, but billing totals may lag and Apify can still stop a run at its cap.

Weekly new leads to Google Sheets with n8n

Download the n8n workflow and setup instructions; sheet header row. Import it, select your own Apify header-auth and Google Sheets credentials, and set your spreadsheet ID. It starts inactive. Default: Monday09:00 Europe/Minsk, up to25 contactable stores, ONLY_NEW, one execution per history key at a time.

The flow starts one Actor job, waits for success, reads its dataset and updates/appends rows by domain using RAW cell values. If the Sheet write fails, replay the same run dataset: ONLY_NEW remembers delivery to Apify before Sheets succeeds. Do not create a new Actor job to recover that delivery. Template structure and transformations are checked; a real Google Sheets execution requires your connected credentials and destination.

API

Run apivault_labs/shopify-advertiser-leads-finder through the Apify API, then read its default dataset. Use your Apify token in an Authorization header. The same input works from the Console, API and scheduled Tasks. Connect a run-success webhook to your own workflow to process the dataset after completion.

Small Shopify advertiser API samples

Begin with one delivered store, a bounded ad scan and a few checked candidates. Source conditions can yield fewer than the ceiling. Keep history off while learning the output shape so a test does not update your recurring delivered-list campaign.

{
"searchQueries": [
"skincare"
],
"country": "US",
"maxAds": 30,
"maxStoresToCheck": 10,
"maxResults": 1,
"maxConcurrency": 2,
"requireEmail": false,
"historyMode": "OFF"
}

For a public business-contact sample, enable requireEmail and keep the same bounded scan. A stricter filter can reduce the output to zero; it does not expand the scan budget automatically.

{
"searchQueries": [
"coffee"
],
"country": "US",
"maxAds": 50,
"maxStoresToCheck": 15,
"maxResults": 3,
"requireEmail": true,
"historyMode": "OFF"
}

Keep scan coverage separate from lead quality

maxAds, maxStoresToCheck and maxResults constrain different stages. A small ad sample can repeatedly point at the same domain; one verified store remains one delivered row. Review per-search counters and skipped targets before comparing niches. Country is the ad market, not a verified company address. Unknown ad start dates do not satisfy an enabled recency filter.

App absence means no supported marker was detected in the checked content. Truncated pages and hidden or unrecognized integrations limit that inference. serviceFocus is a bounded tool-screening aid for your own review, not proof that a store lacks a service or needs an agency. The evidence score measures available evidence, not commercial attractiveness.

Recover a downstream export without recollecting

Retain the original run ID and dataset ID when handing leads to a Sheet or CRM. If a destination write fails, replay that existing Dataset instead of starting another ONLY_NEW run: delivery history is updated at the Actor side, before your downstream destination succeeds. Keep one execution per historyKey; this is not an atomic multi-writer campaign store.

Shopify advertiser API questions

What is the paid result? One verified, delivered Shopify store costs $0.005 in result events. There is no start fee. Residential proxy, compute, storage and other platform usage are extra and can apply even when no store qualifies. Leave resource headroom in the platform run cap.

Can I get verified email deliverability? No. The Actor extracts published contacts and records their source and method. Prefer original page evidence and your own review; no mailbox-validation or outreach action is performed.

Is there a dedicated npm package? A dedicated public npm package/client repository was not verified in this documentation pass. Use the existing downloadable n8n workflow and setup files below, generic Apify/HTTP nodes or standard API clients. The workflow template does not establish a completed Google Sheets execution with your credentials.

Will five saved recipes appear as public Tasks? Existing Tasks can remain private under account publication limits. These JSON recipes are usable directly; this README update preserves all existing Tasks and does not recheck or change that quota.