Shopify & WooCommerce Database | 70M+ Records, Emails & Phones
Pricing
from $6.50 / 1,000 store records
Shopify & WooCommerce Database | 70M+ Records, Emails & Phones
Discover indexed Shopify and ecommerce websites with available emails, phones and technology filters. Bulk export: JSON, CSV, Excel and API. PPE: from $6.5/1K store records; start fee extra.
Pricing
from $6.50 / 1,000 store records
Rating
5.0
(1)
Developer
Apivault Labs
Maintained by CommunityActor stats
4
Bookmarked
499
Total users
117
Monthly active users
0.12 hours
Issues response
8 hours ago
Last modified
Categories
Share

Ecommerce & Website Leads Database — 70M+ Records, Emails, Phones, Tech Stack
A pre-built B2B website leads database with 70 million indexed website records across ecommerce, CMS and mixed website datasets — including available business emails, phone numbers, social profiles, tech stack, firmographics and geo. Optionally add monthly visits, growth, engagement and acquisition-channel estimates from a 40M+ website traffic dataset. New records and datasets are added over time, and existing ones are periodically re-enriched.
Counted on 16 October 2026: 70,260,298 source rows across 101 segments, with no failed sources. Domains can overlap between segments. This is not 70 million unique Shopify/WooCommerce stores or 70 million email contacts. Use the returned technology fields and contact filters for your audience.
1 site = 1 row. Pick platforms, apply filters, choose columns, and export fast results from a continuously updated database.
Try 10 Shopify stores with business emails →
Shopify leads → CSV or Google Sheets
Follow the step-by-step guide and import the manual n8n template.
Start with 10 Shopify stores, export available business contacts to CSV, and optionally connect your own Google Sheets account. The guide explains cost controls, source coverage and recovery of the same completed run without another Actor start. Actor charges apply; contact availability and deliverability are not guaranteed.
AI agent quick start
Actor tool ID: apivault_labs/website-leads-database
Platform selections identify source datasets, not a guaranteed technology on every individual website. Use the returned technology fields when you need an exact CMS, commerce platform, payment provider or framework match.
For reliable autonomous calls, always send workflow, platforms, maxItems
and an outputPreset. Keep dedupeByDomain: true. Start with 10–50 rows; use
workflow: "count" before requesting a large export. Use outputPreset: "custom"
only when you need to supply an exact columns list. An empty dataset is a valid
successful result—read SUMMARY to distinguish NO_RESULTS, partial data,
invalid input and a spending-limit stop.
Choose the input deterministically:
| User intent | Input contract | Primary output |
|---|---|---|
| Find Shopify or platform-specific stores | workflow=export + explicit platforms + a small maxItems | One lead per website |
| Find leads in a country | platforms + ISO-2 country | Filtered website leads |
| Require contact data | hasEmail=true and/or hasPhone=true | Contactable leads only |
| Filter any known field | Structured filters using an allowed column and operator | Rows matching every condition |
| Estimate audience size | Same filters + workflow=count | COUNT_SUMMARY, no dataset rows |
| Continue a capped export | Copy resumeInput from EXPORT_CONTINUATION | Next deterministic page |
Minimal agent-safe request:
{"workflow": "export","platforms": ["shopify_sites"],"country": ["US"],"hasEmail": true,"sortBy": "Tranco","sortDesc": false,"dedupeByDomain": true,"maxItems": 25,"outputPreset": "contacts"}
Agent rules:
- Use exact platform enum values such as
shopify_sites; never invent table names. - Prefer
compact,contacts,sales,traffic, orfull; usecustomonly with an explicit columns list. - Use exact case-sensitive output column names, including spaces.
- Every
filtersitem must contain an allowedcolumnandoperator. - All filters are combined with AND.
in_listaccepts a comma-separated string. - Contact and technology fields are semicolon-separated strings, not JSON arrays.
- Counts are segment-row counts and can include cross-platform overlap.
- Read
SUMMARYafter every run. IfisComplete=false, inspectERRORSorEXPORT_CONTINUATIONbefore presenting the result as complete. - Never treat a missing optional field as proof that the company has no such data.
Use through Apify MCP
Expose only this Actor to an MCP-compatible agent:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=apivault_labs/website-leads-database"}}}
OAuth is recommended. Example prompt: Use
apivault_labs/website-leads-database to return 25 US Shopify stores with
business emails. Request only domain, company, email, phone, country and
ecommerce-platform fields.
The default dataset contains paid lead rows. SUMMARY, ERRORS,
COUNT_SUMMARY and EXPORT_CONTINUATION are diagnostic Key-Value Store records
and are never inserted as fake leads.
Source segments (15)
These are source-segment row counts from the same check, not independently verified current technologies or counts of contactable unique domains.
| Source segment | Records |
|---|---|
| Wix | 8,933,266 |
| Shopify | 6,791,036 |
| WooCommerce | 6,453,567 |
| WooCommerce Checkout | 3,515,371 |
| ASP.NET | 4,634,484 |
| Mastercard | 4,566,955 |
| Squarespace | 2,910,447 |
| Mailchimp | 918,773 |
| Joomla | 767,893 |
| PrestaShop | 173,680 |
| Magento | 105,302 |
| BigCommerce | 36,667 |
| WordPress | 11,856,431 |
| Angular | 50,942 |
| Mixed website datasets | 18,545,484 |
Select All platforms (default) or pick one or more.
What you get per site
- Domain & company — Root Domain, Primary Domain, Company, Vertical
- Contact data — Available business emails, Telephones (international format), Owner/People
- Social profiles — Facebook, Instagram, LinkedIn, X/Twitter, TikTok, YouTube, Pinterest, GitHub, Vimeo, Threads, Weibo, Vk
- Firmographics — Sales Revenue, Employees, SKU count, Technology Spend, Ticker
- Tech stack — eCommerce Platform, CMS Platform, CRM Platform, Marketing Automation, Payment Platforms, Hosting Provider, AI tools
- Rankings & performance — Overall Score, Tranco, Page Rank, Majestic, Umbrella, CRuX Rank, Cloudflare Rank, Performance, Accessibility, SEO, Best Practices
- Geo — City, State, Zip, Country
- Dates — First Detected, Last Found, First Indexed, Last Indexed
- Other — Has Ads, Agency, Compliance, Exclusion, Verified Profiles
- Optional traffic enrichment — Monthly Visits, Global Traffic Rank, Traffic Growth, Bounce Rate, Pages per Visit, Average Visit Duration, Search/Direct/Social/Ads/AI Traffic Share and Traffic Data Date
Leave Output columns empty to get all 59 core fields, or select only the ones you need. Add website traffic data is optional and disabled by default so ordinary exports stay fast. Enable it when visits and acquisition-channel estimates are required; covered domains are enriched in large batches and unmatched domains remain valid leads with empty traffic fields.
To build a traffic-qualified prospect list, enable Only sites with traffic
data, set optional Minimum/Maximum monthly visits, or choose a monthly
visits sort order. These controls automatically enable enrichment. Rows outside
the requested range are removed before they reach the Dataset, so they are not
charged as exported leads. Traffic-filtered pagination uses the returned
eligible rows and the copy-ready resumeInput in EXPORT_CONTINUATION.
Filters
Set filters before starting a run. Filtering a downloaded dataset is local; a new Actor run has its own applicable charges:
| Filter | How it works |
|---|---|
| Countries | One or more ISO-2 codes (DE, US, IT…) |
| Keyword | Substring match in domain or company name |
| Only with email | Skip sites without an available email |
| Only with phone | Skip sites without a phone number |
| Phone country code | E.g. +44 — keeps sites with at least one matching phone |
| Extra filters | JSON conditions on ANY column — equals, contains, starts_with, in_list, not_empty and more (9 operators). Combine multiple conditions with AND. |
| Only sites with traffic data | Excludes websites without a traffic estimate and automatically enables enrichment. |
| Monthly visits range | Optional minimum and maximum estimated monthly visits; unmatched rows are excluded before billing. |
| Traffic order | Order each selected export window from highest or lowest monthly visits. |
Example extra filter
[{ "column": "Payment Platforms", "operator": "contains", "value": "PayPal" },{ "column": "City", "operator": "equals", "value": "Berlin" }]
Sorting & limits
- Sort by — Overall Score, Tranco, Sales Revenue, Employees, Technology Spend, Page Rank, SKU, Performance, SEO, Last Found. Get the top leads instead of a random slice.
- Max rows — up to 250,000 per run (no total cap — use offset to page further across runs).
- Deduplicate by domain — removes cross-platform overlap when several source datasets are selected. Individual platform datasets are already unique.
- Count only — preview how many sites match your filters without creating
billable dataset rows. The result is saved as
COUNT_SUMMARYin the run's Key-Value Store.
Continue a large export
When a run reaches Max rows or its spending limit, open the run's Key-Value
Store and copy resumeInput from EXPORT_CONTINUATION into a new run. It contains
the exact nextOffset, including source rows skipped by domain deduplication, so
the next export does not repeat the part already processed.
Output example
Illustrative formatting only. The values below are not a current observation of these businesses or their traffic; blank fields and coverage vary in real exports.
[{"Root Domain": "ripcurl.com.au","Company": "Rip Curl","Country": "AU","City": "Torquay","Emails": "estore@ripcurl.com.au;service_centre@ripcurl.com.au","Telephones": "+61-3-0098-9014","eCommerce Platform": "Shopify","Sales Revenue": "$50M-$100M","Employees": "1,001-5,000","Overall Score": "87","Monthly Visits": 184200,"Global Traffic Rank": 104312,"Traffic Growth": 12.8,"Bounce Rate": 41.7,"Pages per Visit": 3.2,"Average Visit Duration": 146.0,"Search Traffic Share": 52.4,"Direct Traffic Share": 31.1,"Social Traffic Share": 8.3,"Ads Traffic Share": 4.6,"AI Traffic Share": 0.4,"Traffic Data Date": "2026-08-31T00:00:00+00:00","_platform": "Shopify"},{"Root Domain": "seawitchcandles.co.uk","Company": "Sea Witch Candles","Country": "GB","City": "Penzance","Emails": "info@seawitchcandles.co.uk","Telephones": "+44-1736-731035","eCommerce Platform": "Shopify","Sales Revenue": "","Employees": "","Overall Score": "","_platform": "Shopify"}]
_platformis always included so every row identifies its source segment. Traffic values are third-party estimates, not the website owner's analytics. Coverage and freshness vary by domain; always checkTraffic Data Date.
Export (CSV / JSON / XML / Excel)
Every run stores results in a dataset. Download in any format — no re-run needed:
- In the app: open the run → Storage / Export → pick format.
- Via API:
https://api.apify.com/v2/datasets/{datasetId}/items?format=csv(alsojson,xml,xlsx,html,jsonl).
Use cases
- Web agencies — find businesses on outdated platforms, pitch redesigns
- SaaS sales — target stores by tech stack, revenue or employee count
- Lead generation — bulk export emails + phones filtered by country and vertical
- Market research — analyze platform market share, payment adoption, geo distribution
- SEO & marketing — discover sites by performance score, ranking, ad presence
Need leads based on an exact technology combination?
Use BuiltWith Alternative — Tech Stack Leads & Lookup to reverse-find websites using Shopify, Klaviyo, HubSpot, Stripe and other technologies with AND / OR / NOT matching, freshness filters and domain tech-stack lookup. It uses the same broad website coverage but is optimized for technology-based prospecting and competitor-user campaigns.
Data freshness
The database is expanded and re-enriched over time: new sites and platforms are
added, and existing records are periodically refreshed with updated contact data,
technology information, and rankings. Use the Last Found and Last Indexed
columns to check when a given record was last refreshed.
Limitations
- Keyword searches cover a very large dataset, so rare or highly specific searches can take longer than common filters.
- Data availability and freshness vary by platform and field. Use
Last FoundandLast Indexedwhen recency is important.
Is it legal, and how should I use this data?
This Actor returns publicly available business (B2B) information — it does not access private, paywalled, or login-protected data.
Some fields (for example an email, phone number, or a person's name tied to a small business) can qualify as personal data under laws such as the EU/UK GDPR and the California CCPA/CPRA. When you run this Actor and export results, you — not Apify or the Actor developer — act as the data controller for how you use them, and you are responsible for:
- having a lawful basis (for B2B outreach this is usually legitimate interest);
- honoring data-subject rights (access, correction, deletion, opt-out);
- following marketing/outreach rules (e.g. GDPR/ePrivacy, CAN-SPAM, CASL) before contacting anyone;
- keeping the data secure and using it only for the stated purpose.
Responsible use
- Intended for B2B lead generation, sales, and market research — prefer business contacts (e.g.
info@,contact@) over personal details. - Do not use the data for spam, harassment, or any purpose prohibited by applicable law.
- Comply with the privacy, marketing, and data-protection rules of the jurisdictions you operate in and target.
This section is general information, not legal advice. If you are unsure how these rules apply to your use case, consult a qualified lawyer.
Python quickstarts
Install the maintained thin client from PyPI:
$pip install website-leads-database==0.2.0
The public Python SDK and examples cover audience count, a safe 50-row sample, contact export, traffic-qualified leads and copy-ready next-page continuation. The package calls this hosted Actor through the public Apify API; it does not contain the underlying data collection or infrastructure.
Ready-to-import n8n workflow
Turn qualified website records into a CRM-ready lead stream with the maintained Website Leads n8n connector. Download the quickstart workflow, import it into n8n, add your Apify API credential, and review the safe 50-row traffic-qualified sample before increasing the limit.
Campaign recipes: from a website list to a usable lead file
Use this website leads database when you need a filtered audience before you start enrichment. An agency can choose stores it supports; a SaaS team can select businesses by known technology; a researcher can export a documented sample. The useful output is a website record with the fields you requested. It is not a promise that every business is active, every contact belongs to a decision maker, or every stored technology is still installed.
| Goal | Recommended first pass | Review before scaling |
|---|---|---|
| Shopify agency prospecting | Shopify source, one country, email required, Contacts preset | Confirm platform in returned fields and review a few sites |
| WordPress maintenance prospecting | WordPress source, country and contact filters | A WordPress record alone does not establish a maintenance problem |
| Ecommerce technology research | Appropriate sources plus a structured technology condition | Segment labels describe provenance; technology columns describe stored observations |
| Traffic-qualified partner research | Enable traffic coverage and a visits range | Check the traffic observation date and coverage gaps |
| CRM list preparation | Small export, stable domain key, only required columns | Separate existing CRM domains from genuinely new accounts |
Count a Shopify audience before buying a large export
This request produces count diagnostics rather than paid website rows. The start event still applies. Use the same country, platform and contact filters when changing the workflow to export. Counts can include overlapping source rows; they are not a verified number of unique reachable customers.
{"workflow": "count","platforms": ["shopify_sites"],"country": ["GB"],"hasEmail": true,"maxItems": 10,"outputPreset": "contacts"}
Export a small WordPress agency list
Select the WordPress dataset explicitly. Keeping the first batch small lets you inspect company, country and contact coverage before increasing the budget. This input performs database selection, not a fresh crawl of each website.
{"workflow": "export","platforms": ["wordpress_sites"],"country": ["DE"],"hasEmail": true,"dedupeByDomain": true,"maxItems": 10,"outputPreset": "contacts"}
Find Shopify records with a stored payment technology
Structured filters must sit inside the input's filters array. Use the exact
case-sensitive column name. All conditions are ANDed, so a narrow country,
technology and contact combination may legitimately return no matches.
{"workflow": "export","platforms": ["shopify_sites"],"hasEmail": true,"filters": [{"column": "Payment Platforms","operator": "contains","value": "PayPal"}],"dedupeByDomain": true,"maxItems": 10,"outputPreset": "sales"}
Build a traffic-qualified ecommerce shortlist
The visits threshold applies to stored estimates. It does not measure the
store's sales, conversion rate or advertising budget. Unknown traffic is
excluded when onlyWithTrafficData is enabled. Start with a modest page size:
traffic filtering may inspect more underlying records than it finally returns.
{"workflow": "export","platforms": ["shopify_sites"],"onlyWithTrafficData": true,"minMonthlyVisits": 10000,"trafficSortOrder": "highest","hasEmail": true,"maxItems": 10,"outputPreset": "traffic"}
Pricing a website lead export
Pricing checked against the active configuration on 20 October 2026:
| Apify plan | Per delivered website row | Ten rows plus one standard-memory start |
|---|---|---|
| Free | $0.008 | $0.08005 |
| Bronze | $0.0075 | $0.07505 |
| Silver | $0.007 | $0.07005 |
| Gold, Platinum, Diamond | $0.0065 | $0.06505 |
The Actor Start event is $0.00005 per memory unit, minimum one unit. Platform usage is included in this Actor's event-price arrangement; it is not an additional user-paid PPE usage charge in the active configuration. The Pricing tab is authoritative for your account. The examples above are event arithmetic, not measured run totals or a guarantee of ten matching records.
Downloading the same completed dataset again does not start the Actor or buy the same rows again. Starting another export is a new run and can return previously delivered domains. Save the run ID and dataset ID so recovery can read an existing file before creating another job.
Frequently asked questions about website leads
Can I get a list of Shopify stores with email addresses?
Yes: select shopify_sites, require hasEmail, and use Contacts output.
The email field contains available stored contacts, which may include general
business inboxes. It does not establish ownership, consent, mailbox activity or
a named purchasing contact. Verify the accounts you intend to use.
Why did I receive fewer rows than maxItems?
maxItems is an upper limit, not an audience-size guarantee. Filters,
deduplication, unavailable sources and the run spending limit can reduce the
result. Read SUMMARY and ERRORS before deciding whether to narrow or retry.
Use the continuation supplied by the run rather than guessing the next offset.
Can I combine Shopify, WooCommerce and WordPress in one run?
Yes. Keep domain deduplication enabled when combining supported source platforms. A domain can occur in more than one source, and a database snapshot can contain an older platform assignment. Review returned technologies if your campaign requires one current platform.
Is this a company revenue or email verification API?
Revenue and company-size fields are stored business signals, with incomplete coverage. Contact availability is separate from email deliverability. Use a dedicated verification step and independent account review when those facts are essential to your workflow.
How do I continue the workflow in my CRM?
Export Contacts or a custom set of columns, use Root Domain as the account key, and split semicolon-separated contact values deliberately. Preserve observed dates and provenance alongside your own notes. The linked Python and n8n examples provide a starting point; importing a dataset does not automatically enrich every missing contact or synchronize deletions.
n8n and developer integrations
Use this Actor in your automation or application with the existing community integrations below. An Apify account and API token are required; Actor and platform charges follow the current pricing.
- n8n community node: n8n-nodes-apivault-shopify-finder. Install package name
n8n-nodes-apivault-shopify-finderin a self-hosted n8n instance that permits community packages. - n8n source and usage: GitHub.
- Python client and examples: GitHub.
- n8n source and usage: GitHub.
These are community packages. Publication on npm does not establish n8n verification or availability in n8n Cloud. Review the linked package README for supported inputs and setup.