ScraperCity logo

Store Leads (E-Commerce) API Documentation

Store Leads (E-Commerce)

Access 14M+ verified e-commerce store leads from Shopify, WooCommerce, Magento, and 7 other platforms. Specify totalLeads for bulk jobs and page through results with offset. Filter server-side by estimated monthly visits, revenue and employee count so you are only charged for stores that match.

$0.0039 per leadPOST /api/v1/scrape/store-leads

Parameters

NameTypeRequiredDescription
platformstringOptionalE-commerce platform (case-insensitive). Omit to search all platforms.Example: "Shopify"
totalLeadsnumberOptionalTotal leads to fetchExample: 50000
resumeFromLeadnumberOptionalResume from this lead number (useful for continuing a cancelled job)Example: 2500
countryCodestringOptionalTwo-letter country codeExample: "US"
emailsbooleanOptionalOnly return stores with email addressesDefault: trueExample: true
phonesbooleanOptionalOnly return stores with phone numbersDefault: falseExample: true
categorystringOptionalStore category filter (case-insensitive)Example: "Apparel"
citystringOptionalCity location filterExample: "New York"
technologiesstringOptionalFilter by technologies usedExample: "Klaviyo"
appsstringOptionalFilter by installed apps (Shopify only)Example: "Yotpo"
instagrambooleanOptionalHas InstagramDefault: falseExample: true
facebookbooleanOptionalHas FacebookDefault: falseExample: true
tiktokbooleanOptionalHas TikTokDefault: falseExample: true
youtubebooleanOptionalHas YouTubeDefault: falseExample: true
linkedinbooleanOptionalHas LinkedInDefault: falseExample: true
twitterbooleanOptionalHas TwitterDefault: falseExample: true
pinterestbooleanOptionalHas PinterestDefault: falseExample: true
planExcludestring[]OptionalExclude stores on these plan tiers, e.g. Shopify Plus (multiple allowed, case-insensitive)Example: "Shopify Plus"
offsetnumberOptionalNumber of leads to skip before returning results, so you can page through them. Send offset 0 for the first batch, then bump it by your totalLeads each call (0, 100, 200, and so on). The response also returns a nextOffset you can send back directly. Without an offset, repeat calls with the same filters return the same first page.Example: 5000
minEstimatedMonthlyVisitsnumberOptionalOnly return stores with at least this many estimated monthly visits. Applied server-side, so stores below the threshold are never returned or billed. Alias: visitsMin.Example: 30000
maxEstimatedMonthlyVisitsnumberOptionalOnly return stores with at most this many estimated monthly visits. Applied server-side. Alias: visitsMax.Example: 5000000
minEstimatedMonthlySalesnumberOptionalMinimum estimated monthly sales in USD (server-side). Alias: salesMin.Example: 10000
maxEstimatedMonthlySalesnumberOptionalMaximum estimated monthly sales in USD (server-side). Alias: salesMax.Example: 1000000
minEmployeeCountnumberOptionalMinimum employee count (server-side). Alias: employeesMin.Example: 10
maxEmployeeCountnumberOptionalMaximum employee count (server-side). Alias: employeesMax.Example: 500
statestringOptionalState / region filter (case-insensitive)Example: "California"
fileNamestringOptionalCustom filename for exportExample: "Shopify_US_Fashion"

Examples

Get 50,000 Shopify stores with email

curl -X POST https://app.scrapercity.com/api/v1/scrape/store-leads \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "Shopify",
    "emails": true,
    "totalLeads": 50000
  }'

# Response:
{
  "runId": "abc12345-...",
  "totalLeads": 50000,
  "estimatedCost": 195.00
}

Resume from lead 2500

curl -X POST https://app.scrapercity.com/api/v1/scrape/store-leads \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "Shopify",
    "emails": true,
    "totalLeads": 5000,
    "resumeFromLead": 2500
  }'

High-traffic stores only, paginated (no duplicates, no wasted rows)

curl -X POST https://app.scrapercity.com/api/v1/scrape/store-leads \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "Shopify",
    "emails": true,
    "minEstimatedMonthlyVisits": 30000,
    "totalLeads": 5000,
    "offset": 0
  }'

# Only stores with 30k+ monthly visits are returned and billed.
# The response includes nextOffset - resend with "offset": 5000 for the next page.

Check job status

curl https://app.scrapercity.com/api/v1/scrape/status/abc12345-... \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response:
{
  "status": "RUNNING",
  "handled": 15000,
  "requested": 50000
}

Download results when complete

curl -X GET https://app.scrapercity.com/api/downloads/{runId} \\
  -H "Authorization: Bearer YOUR_API_KEY" \\
  -o results.csv

Use Cases

  • •Build massive e-commerce lead lists for outreach
  • •Find stores using specific technologies for SaaS sales
  • •Target stores by social media presence
  • •Research competitors by category and location
  • •Generate leads for e-commerce service providers

Best Practices

  • •Use totalLeads to specify how many leads you want
  • •Use resumeFromLead to continue a cancelled job from where you left off
  • •Cancel anytime - partial results are saved and downloadable
  • •Poll /api/v1/scrape/status/{runId} to track progress
  • •Download merged CSV from /api/downloads/{runId} when complete
  • •Platforms: shopify, woocommerce, magento, squarespace, ecwid, bigcommerce, opencart, webflow, prestashop, demandware

Every scrape returns a runId. Poll GET /api/v1/scrape/status/{runId} until it completes, then download via GET /api/downloads/{runId}?format=csv.

Authenticate every request with Authorization: Bearer YOUR_API_KEY. See the full API reference for authentication, rate limits and error codes.