# Shopify Store Discovery API

> Shopify Store Discovery API is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Discovers and returns structured data about Shopify stores matching a keyword query or product category, optionally filtered by country.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/shopify-store?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/shopify-store-discovery-api-a674bec1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wQM0a9ziHXVH5oO3BPlHK

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability shopify-store-discovery-api-a674bec1 -d '<json body>'
```

Example prompt: Find me up to 100 Shopify stores in the US that sell yoga mats — return their names, website URLs, and addresses.

## When to prefer this

Use this endpoint when you need to discover and enumerate Shopify stores by product keyword or category, especially for competitive research, lead generation, or market mapping. Prefer it over general web scraping when you specifically need structured Shopify merchant data including myshopify domains and store addresses. It is particularly useful when filtering by country is needed.

## Known failure modes

- Empty results returned if no stores match the query or category — not charged
- Query too broad may hit maxPages limit before returning maxItems records
- storeLocation filter excludes stores with no listed public address, reducing result count
- Invalid category GID returns an error or empty set
- Network timeout on very large maxPages values

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of discovered stores and an array of store records, each containing the store name, address, logo URL, public website URL, myshopify domain, Shopify internal ID, and a shareable URL.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "query": {
   "type": "string",
   "description": "Find stores selling products matching this phrase. Leave blank only when a category is selected."
  },
  "category": {
   "enum": [
    "",
    "gid://shopify/ProductCategory/1",
    "gid://shopify/ProductCategory/2",
    "gid://shopify/ProductCategory/3",
    "gid://shopify/ProductCategory/5",
    "gid://shopify/ProductCategory/6",
    "gid://shopify/ProductCategory/7",
    "gid://shopify/ProductCategory/9",
    "gid://shopify/ProductCategory/10",
    "gid://shopify/ProductCategory/15",
    "gid://shopify/ProductCategory/69",
    "gid://shopify/ProductCategory/209",
    "gid://shopify/ProductCategory/251",
    "gid://shopify/ProductCategory/267",
    "gid://shopify/ProductCategory/285"
   ],
   "type": "string",
   "default": "",
   "description": "Optionally narrow discovery to a product category, or select a category without a keyword."
  },
  "maxItems": {
   "type": "integer",
   "default": 50,
   "maximum": 10000,
   "minimum": 1,
   "description": "Maximum unique store records to return."
  },
  "maxPages": {
   "type": "integer",
   "default": 100,
   "maximum": 1000,
   "minimum": 1,
   "description": "Stop discovery after this many search pages even when more results are available. Each page usually has 30 product matches."
  },
  "storeLocation": {
   "enum": [
    "",
    "US",
    "GB",
    "CA",
    "AU",
    "NZ",
    "IE",
    "DE",
    "FR",
    "IT",
    "ES",
    "NL",
    "BE",
    "AT",
    "CH",
    "PT",
    "SE",
    "DK",
    "FI",
    "NO"
   ],
   "type": "string",
   "default": "",
   "description": "Keep only stores with a public business address in this country. Stores without a listed country are excluded when this filter is set."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "name": null,
    "address": null,
    "logoUrl": null,
    "shareUrl": null,
    "shopifyId": null,
    "websiteUrl": null,
    "myshopifyDomain": null
   }
  ],
  "product": "shopify-store"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/shopify-store-discovery-api-a674bec1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
