Shopify Leads Database | $3.90–4.90/1K | Emails & Phones
Pricing
from $3.90 / 1,000 shopify store leads
Shopify Leads Database | $3.90–4.90/1K | Emails & Phones
Export up to 500,000 indexed Shopify-only domains per run with available emails, phones, exact stored platform evidence and source dates. Filter, deduplicate and export CSV/JSON; actual output depends on data, budget and run resources.
Pricing
from $3.90 / 1,000 shopify store leads
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Shopify Leads Database — Emails, Phones & Bulk Export

Build a Shopify prospect list from indexed website records. Every exported domain must carry stored Shopify or Shopify Plus technology evidence. Select countries, require available business emails or phone numbers, choose CRM columns and export deduplicated domains to CSV, Excel or JSON.
This is a historical leads database. Stored technology evidence and contact presence do not verify that a store is active today, that an email is deliverable or that a phone is reachable. Source dates accompany every output preset. The Shopify audience size is not yet measured; the wider portfolio's 70M+ records are not a Shopify-only inventory claim.
First Shopify contact export
{"country":["US"],"hasEmail":true,"maxItems":10,"outputPreset":"contacts"}
The default input returns up to 10 domains with a stored email. A platform selector is unnecessary: Shopify/Shopify Plus evidence is mandatory on every row. Supplying storePlatforms, platforms, traffic options or unknown fields is rejected. Country refers to the stored field, not verified headquarters.
Useful workflows
| Goal | Supported workflow |
|---|---|
| Shopify app or agency prospects | Export available contact details by country and qualify each business independently. |
| Phone-based research | Require a stored phone and, optionally, a country calling prefix. |
| CRM list preparation | Select columns and keep one row per normalized domain within an export. |
| Audience planning | Count matching source records before a bulk export; the count can include cross-source overlap. |
| Larger lead lists | Use the returned continuation input to fetch the next deterministic page. |
The product does not discover stores through live Shop product searches, provide consumer ratings, fetch product samples, verify inboxes, send outreach or monitor historical changes.
Ready-to-copy research scenarios
| Scenario | Input choices | Output |
|---|---|---|
| US email prospects | country: ["US"], hasEmail: true, outputPreset: "contacts" | Stored email contacts and Shopify evidence. |
| UK phone prospects | country: ["GB"], hasEmail: false, hasPhone: true, phoneCode: "+44" | Stored +44 phones; reachability is not verified. |
| Coffee company shortlist | keyword: "coffee", outputPreset: "sales" | Company/domain substring matches with sales context. |
| CRM column export | outputPreset: "custom", select columns | Selected fields plus mandatory evidence and source dates. |
| Audience count | workflow: "count", country: ["US"], hasEmail: true | Matching source-record count before domain deduplication. |
The JSON examples below can be copied into the Actor input now. Five matching saved Tasks have been tested but remain private because of the account's public-Task quota; public one-click Task links are not available yet. A private Task is not a published template.
Available fields
| Group | Examples and limits |
|---|---|
| Identity | Root Domain, company, stored country/state/city and business category. |
| Contacts | Available Emails, Telephones and social profile strings; optional values can be absent. |
| Shopify evidence | eCommerce Platform, CMS Platform and _platformEvidence: stored-technology. |
| Dates | Last Found and Last Indexed where stored; these are not live verification timestamps. |
| Sales context | Available employee counts, technology and estimated revenue/spend fields; estimates are not actual financial results. |
Contacts and technologies are generally semicolon-separated strings. A missing field remains unknown. Evidence and source dates accompany contacts, sales, full and custom presets.
Real output shape
Taken from a real candidate QA row; identity/contact values are redacted. Optional fields vary.
{"Root Domain": "[redacted]","Company": "[redacted]","Country": "","Emails": "[redacted]","Telephones": "","eCommerce Platform": "10 Shopify Products;Shopify;Shopify Local Pickup","CMS Platform": "","Last Found": "2026-06-27","Last Indexed": "2026-06-27","_platformEvidence": "stored-technology"}
Configure your export
| Input | Behavior |
|---|---|
workflow | export (default) or count. Count creates diagnostics, not paid Dataset rows. |
country | Optional list of ISO-2 codes; omitted means no country filter. |
hasEmail, hasPhone | Require a nonempty stored field before delivery and billing. Email defaults to true. |
phoneCode | Require a stored phone with the supplied prefix, e.g. +44. |
keyword | Literal substring in company/domain; not a product-category classifier. |
maxItems | 1–500,000 unique delivered domains, subject to matching data, spending limit, memory and run timeout. |
offset | Deduplicated offset; prefer the continuation input to manual offsets. |
outputPreset | contacts, sales, full, or custom with columns. |
filters | Allowed column/operator/value conditions, combined with AND. |
sortBy, sortDesc | Sort by an allowed stored field; domain ordering is used for continuation. |
UK phone prospects
{"country":["GB"],"hasEmail":false,"hasPhone":true,"phoneCode":"+44","maxItems":10,"outputPreset":"contacts"}
A company/domain keyword shortlist
{"keyword":"coffee","hasEmail":true,"maxItems":10,"outputPreset":"sales"}
Count the contactable US audience
{"workflow":"count","country":["US"],"hasEmail":true}
Read COUNT_SUMMARY.isComplete before using the total. The number is matching source records before cross-source domain deduplication, not a count of unique stores or unique emails.
Select CRM fields
{"country":["US"],"hasEmail":true,"maxItems":10,"outputPreset":"custom","columns":["Root Domain","Company","Emails","Telephones","Country"]}
Mandatory technology evidence and available source dates are included even when omitted from custom columns. Filters apply before result delivery; rejected rows do not create result events.
Export up to 500,000 Shopify leads in one run
{"maxItems":500000,"hasEmail":true,"outputPreset":"contacts"}
At 500,000 delivered rows, result events total $2,450 on Free or $1,950 on paid plans, plus startup and platform usage. Set the run spending cap to your intended work; a small cap stops delivery even when maxItems is 500000. Count the matching audience first and allow enough memory and time in Run options. The default preview remains 10 rows.
For a large contacts export, start with 1024 MB and 7200 seconds; consider 2048 MB for full output. These are capacity settings, not a measured completion-time guarantee. Use asynchronous runs and download the existing Dataset after completion: a synchronous HTTP wait can end before the Actor finishes. Actual matching unique-domain availability remains unknown until export.
Continue without repeating domains
After a capped export, read EXPORT_CONTINUATION.resumeInput from the run's Key-Value Store and submit it as the next input. Within an export, overlapping sources deduplicate by normalized domain. Independent exports start fresh. The underlying index can change between runs, so continuation is not an immutable snapshot or a guarantee across arbitrary future index updates. Do not change filters or sorting halfway through a continuation chain.
Read completion and errors
The Dataset contains lead rows only. SUMMARY, ERRORS, COUNT_SUMMARY and EXPORT_CONTINUATION contain diagnostics and are not inserted as paid leads. Check completeness after every run: platform SUCCEEDED alone does not prove complete source coverage.
An empty matching audience differs from a data-source failure. Partial source access can return useful rows plus explicit warnings. When data cannot be read, report the run ID and source diagnostic rather than claiming there are no Shopify stores. A spending cap stops delivery while retaining rows already written; read the returned continuation before increasing the limit.
Pricing and costs
Result pricing: $4.90 per 1,000 delivered domains on Free; $3.90 per 1,000 on Bronze and every higher paid tier. The existing Actor Start convention is $0.00005 per memory unit (one per GB, minimum one); platform usage is additional. Read the Pricing tab for effective rates on your Apify account.
Count-only, empty results and diagnostic records do not incur lead-result events. Startup and platform usage can still apply. Plan discounts are Apify account tiers, not quantity discounts within a run. No third-party customer API key is required; Apify authentication and billing apply. Service/database/support costs outside Apify run usage are not claimed to be zero.
API, MCP and developer integrations
Actor slug: apivault_labs/shopify-leads-database. Use the current Actor input schema when integrating.
Use the official Apify client or REST API to start a run, wait for its terminal status and retrieve its Dataset and diagnostics. Keep the Apify token in client credentials. CSV and Excel are export formats of the same Dataset, not new source collection modes. Re-read storage from a completed run instead of starting another paid export merely to download a different format.
Apify's hosted MCP fetch-actor-details / call-actor workflow uses the Actor's exact input schema. Inspect Dataset/diagnostics before presenting contacts. Authenticate with your Apify account and inspect the current Actor details before calling it.
No dedicated npm or PyPI package is currently verified for this new Actor. Existing clients of the wider database do not automatically bind to this slug. Generic Apify HTTP integration is possible in n8n/Make; n8n execution or verification is not claimed.
Start an asynchronous API run
Keep APIFY_TOKEN in your environment. This small example requests five rows with a $0.08 Actor-charge cap; platform usage is additional.
curl --request POST \'https://api.apify.com/v2/acts/apivault_labs~shopify-leads-database/runs?maxTotalChargeUsd=0.08' \--header "Authorization: Bearer $APIFY_TOKEN" \--header 'Content-Type: application/json' \--data '{"country":["US"],"hasEmail":true,"maxItems":5,"outputPreset":"contacts"}'
Save the returned run ID. Poll GET /v2/actor-runs/{runId} until terminal, then use defaultDatasetId for GET /v2/datasets/{datasetId}/items?format=csv. Use the same Authorization header. Downloading the completed Dataset does not start another lead export. Check SUMMARY and ERRORS in the run's Key-Value Store before using the list.
Official integration references: start a run, retrieve Dataset items, JavaScript client, Python client, and Apify MCP. These are generic Apify clients; pass this Actor's exact slug and input. They are not dedicated packages for this product.
Pick the matching data product
This Actor exports a historical Shopify-only index. Store Leads Database supports multiple ecommerce platforms. Shopify Store Leads Scraper is a separate collection workflow; do not assume its inputs, coverage or pricing are identical.
Frequently asked questions
Is every result Shopify? Stored Shopify/Shopify Plus evidence is required in the row's platform fields. A source-group label alone never qualifies. Historical evidence can become stale; verify a store independently when current activity matters.
Does every row contain an email? The default hasEmail: true requires nonempty stored email text. This is not mailbox validation. With that filter disabled, contact fields can be empty.
Is the database 70 million Shopify stores? No. That number belongs to the wider multi-platform portfolio. This product's matching Shopify source count and unique-domain count must be measured separately.
How does this differ from Shop/Shopify scraping? It exports indexed websites with stored technology/contact context. It does not run a live product/category search or return shopper ratings.
Can I export 500,000 in one run? Set maxItems: 500000. The former 10,000 schema limit and hidden 250,000 runtime clip have been removed. Matching data, spending cap, allocated memory and timeout still bound the result. Continuation remains available after a budget stop or a completed capped export; it is not required merely because a run passes 10,000 rows.
Are the contact details verified? They are stored business-contact values, not a guarantee of deliverability, ownership, consent or reachability. Qualify them independently.