Ecommerce Store Database API
Query the ecommerce store database via API. Access millions of stores with revenue, traffic, employee, and contact data. Requires $149/mo plan.
Included with $149/mo plan
GET /api/v1/database/ecommerceDatabase APIs are included with the $149/mo plan.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | number | Optional | Page number (default: 1)Default: 1Example: 1 |
limit | number | Optional | Results per page (max: 100)Default: 50Example: 100 |
platform | string[] | Optional | Filter by ecommerce platform (multiple allowed)Example: Shopify |
country | string[] | Optional | Filter by country code (multiple allowed)Example: US |
state | string | Optional | Filter by state (partial match)Example: California |
city | string | Optional | Filter by city (partial match)Example: Los Angeles |
category | string[] | Optional | Filter by store category (multiple allowed)Example: Apparel |
merchant | string | Optional | Filter by merchant name (partial match)Example: Nike |
domain | string | Optional | Filter by domain (partial match). Accepts multiple domains, comma or space separated.Example: nike.com, gymshark.com |
technologies | string[] | Optional | Stores that run ANY of these technologies (multiple allowed)Example: Klaviyo |
technologiesAll | string[] | Optional | Stores that run ALL of these technologies (multiple allowed, repeat the parameter)Example: PayPal |
notTechnologies | string[] | Optional | Leave out stores that run any of these technologies (multiple allowed, repeat the parameter)Example: Facebook Pixel |
planExclude | string[] | Optional | Exclude stores on these plan tiers, e.g. Shopify Plus (multiple allowed, case-insensitive)Example: Shopify Plus |
salesMin | number | Optional | Minimum monthly revenueExample: 100000 |
salesMax | number | Optional | Maximum monthly revenueExample: 10000000 |
visitsMin | number | Optional | Minimum monthly visitsExample: 50000 |
visitsMax | number | Optional | Maximum monthly visitsExample: 5000000 |
employeesMin | number | Optional | Minimum employee countExample: 10 |
employeesMax | number | Optional | Maximum employee countExample: 500 |
hasEmail | boolean | Optional | Only return stores with email addressesDefault: falseExample: true |
hasPhone | boolean | Optional | Only return stores with phone numbersDefault: falseExample: true |
hasInstagram | boolean | Optional | Only return stores with InstagramDefault: falseExample: true |
hasFacebook | boolean | Optional | Only return stores with FacebookDefault: falseExample: true |
hasTiktok | boolean | Optional | Only return stores with TikTokDefault: falseExample: true |
excludeDelivered | boolean | Optional | Skip stores you already have: anything this account got from this API before or unlocked in the dashboard. Use it for daily pulls so each run returns only new stores. With this on, request page=1 every time (or use after), because the stores you just received are skipped on the next call.Default: falseExample: true |
after | string | Optional | Cursor paging for large pulls: returns stores after this id, in id order. Send after=0 on the first call, then send the next_after value from each response until it comes back null. Faster than page numbers deep into a big search. pagination.total is still the whole search.Example: 0 |
Examples
Daily pull of only new stores (for n8n, Make, Zapier, or a cron job)
curl "https://app.scrapercity.com/api/v1/database/ecommerce?platform=Shopify&country=US&hasEmail=true&excludeDelivered=true&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"
Page through a large search with a cursor
# First call: after=0. Then pass pagination.next_after from each response as after, until it is null. curl "https://app.scrapercity.com/api/v1/database/ecommerce?platform=Shopify&country=US&hasEmail=true&after=0&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"
Find Shopify stores with 500K+ monthly revenue
curl "https://app.scrapercity.com/api/v1/database/ecommerce?platform=Shopify&salesMin=500000&hasEmail=true&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"
Search for stores using Klaviyo in the US
curl "https://app.scrapercity.com/api/v1/database/ecommerce?technologies=Klaviyo&country=US&limit=50" \ -H "Authorization: Bearer YOUR_API_KEY"
Find high-traffic apparel stores
curl "https://app.scrapercity.com/api/v1/database/ecommerce?category=Apparel&visitsMin=100000&employeesMin=10&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"
Use Cases
- •Build targeted outreach lists for ecommerce brands
- •Identify potential clients by technology stack
- •Analyze competitor landscapes by category and revenue
- •Feed ecommerce data into your CRM or analytics pipeline
Best Practices
- •Use revenue and employee filters to target the right size stores
- •Rate limit: 100 stores per request, 100,000 new stores per day. Stores you already have do not count again
- •Every store the API returns is saved to your account, so excludeDelivered=true can skip it next time. It also shows in your unlocked stores in the dashboard
- •For big pulls use after + next_after (cursor paging) instead of high page numbers
- •Combine platform + category + location for precise targeting
- •Use technologies filter to find stores using specific tools (Klaviyo, Shopify Plus, etc.)
- •Combine technologies for exact targeting: technologiesAll=Klaviyo&technologiesAll=PayPal¬Technologies=Facebook%20Pixel finds stores on Klaviyo and PayPal that do not run Facebook Pixel
- •Requires $149/mo plan - upgrade at /dashboard/billing
- •Daily limit resets at midnight UTC
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.