API documentation

REST endpoints. JSON in, JSON out. Authenticate with the X-API-Key header.

Authentication

Every paid endpoint requires an X-API-Key header. Get your key from your account page once you subscribe.

curl https://api.ecommerce-leads-database.com/v1/stores/count \
  -H "X-API-Key: sk_live_…"

Endpoints

GET/v1/sample

Free sample (no auth)

Returns 10 enriched stores. Use this to validate the data shape before subscribing.

curl https://api.ecommerce-leads-database.com/v1/sample?limit=10
GET/v1/stores/count

Aggregate count

Returns the count of stores matching the filters, plus how many have a GMB profile.

curl https://api.ecommerce-leads-database.com/v1/stores/count?platform=shopify \
  -H "X-API-Key: sk_live_…"

{ "count": 124538, "gmbCount": 38217 }
GET/v1/stores/search

Search stores

Filtered + paginated. Supports platform, tld, country, minProducts, hasGmb. Max 100 results per page.

curl https://api.ecommerce-leads-database.com/v1/stores/search \
  -H "X-API-Key: sk_live_…" \
  -G \
  -d "platform=shopify" \
  -d "minProducts=50" \
  -d "hasGmb=true" \
  -d "limit=50"

{
  "items": [ { "domain": "…", "merchantName": "…", … } ],
  "nextCursor": "…"
}
GET/v1/stores/:domain

Store detail

Full row including parsed metadata and GMB data. Does not include the product catalog.

curl https://api.ecommerce-leads-database.com/v1/stores/eataly.fr \
  -H "X-API-Key: sk_live_…"

{ "store": { "domain": "eataly.fr", "platform": "shopify", "metadata": {…}, "gmbData": {…} } }
GET/v1/stores/:domain/catalog

Product catalog dump

Full per-store product list, fetched from R2 storage. Counts as 10 requests against your quota.

curl https://api.ecommerce-leads-database.com/v1/stores/eataly.fr/catalog \
  -H "X-API-Key: sk_live_…"

Rate limits

Quotas are monthly, rolling 30-day windows. We never hard-rate-limit you per-second.

Errors