{
  "openapi": "3.0.1",
  "info": {
    "title": "🛍️ Shopify Store Leads Scraper - Emails, Phones & Ratings",
    "description": "Spotify Play Count Scraper extracts public track data including play counts, song titles, artists, albums, release dates, durations, and Spotify URLs. Monitor streaming performance, compare tracks, analyze music trends, and build structured datasets for research.",
    "version": "0.1",
    "x-build-id": "wY9OHKqguOGgE2ghB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~shopify-store-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-shopify-store-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scraper-engine~shopify-store-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-shopify-store-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scraper-engine~shopify-store-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-shopify-store-leads-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQueries": {
            "title": "🔎 Search Queries (bulk)",
            "type": "array",
            "description": "One or more product keywords to search for — each is scraped as its own independent search and results stream into the same dataset. Leave empty to discover stores by 📂 Category alone. Examples: <code>wireless headphones</code>, <code>organic coffee</code>, <code>yoga mat</code>.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "📂 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",
            "description": "Filter to stores selling in this product category. Works alone (discovers every store in the category) or combined with a search query above to narrow results. Applied to every query in this run.",
            "default": ""
          },
          "storeLocation": {
            "title": "📍 Store Location",
            "enum": [
              "",
              "GLOBAL",
              "ENGLISH_SPEAKING",
              "EUROPE",
              "NORTH_AMERICA",
              "UK_IRELAND",
              "NORDICS",
              "OCEANIA",
              "US",
              "GB",
              "CA",
              "AU",
              "NZ",
              "IE",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "PL",
              "AT",
              "CH",
              "PT",
              "SE",
              "DK",
              "FI"
            ],
            "type": "string",
            "description": "Find stores <b>based in</b> a specific country or region. Stores that don't publish a business address are still included as likely matches. For non-English markets, search using local-language keywords above (e.g. <code>kerzen</code> instead of <code>candles</code>) for the best results.",
            "default": ""
          },
          "maxItems": {
            "title": "📦 Max Stores (per query)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of unique stores to return for each search query above.",
            "default": 10
          },
          "skipPreviouslyScraped": {
            "title": "⏭️ Skip Stores From Previous Runs",
            "type": "boolean",
            "description": "Continue where your last run for this same search left off — stores already returned before are skipped, so every run brings fresh leads. Each search (keyword + category + store location + ships-to combination) keeps its own history; price/availability/shipping-origin filters don't start a new one. Turn this on from your very first run.",
            "default": false
          },
          "priceMin": {
            "title": "💵 Min Price",
            "minimum": 0,
            "type": "integer",
            "description": "Only discover stores selling products above this price (USD)."
          },
          "priceMax": {
            "title": "💰 Max Price",
            "minimum": 0,
            "type": "integer",
            "description": "Only discover stores selling products below this price (USD)."
          },
          "onSale": {
            "title": "🏷️ On Sale Only",
            "type": "boolean",
            "description": "Only discover stores with products currently on sale.",
            "default": false
          },
          "inStock": {
            "title": "✅ In Stock Only",
            "type": "boolean",
            "description": "Only discover stores with products currently in stock. This matches shop.app's own default search behaviour.",
            "default": true
          },
          "shipsFrom": {
            "title": "🚚 Ships From Store Location",
            "type": "boolean",
            "description": "Only discover stores that ship FROM the 📍 Store Location selected above. Has no effect if Store Location is left as \"Any location\".",
            "default": false
          },
          "shipsTo": {
            "title": "📮 Ships To Country",
            "enum": [
              "",
              "US",
              "CA",
              "GB",
              "AU",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "BE",
              "AT",
              "CH",
              "SE",
              "DK",
              "NO",
              "FI",
              "IE",
              "PT",
              "PL",
              "CZ",
              "RO",
              "HU",
              "GR",
              "HR",
              "BG",
              "SK",
              "SI",
              "LT",
              "LV",
              "EE",
              "IS",
              "LU",
              "NZ",
              "JP",
              "KR",
              "SG",
              "HK",
              "TW",
              "MY",
              "PH",
              "TH",
              "ID",
              "VN",
              "IN",
              "BR",
              "MX",
              "CO",
              "AR",
              "CL",
              "ZA",
              "AE",
              "SA",
              "IL",
              "TR",
              "NG",
              "EG",
              "KE"
            ],
            "type": "string",
            "description": "Only discover stores that ship TO a specific destination country.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "🟢 Default = no proxy (direct connection to shop.app), which works for most runs. If shop.app starts rejecting requests, the Actor automatically escalates itself: Direct ➜ 🖥️ Datacenter proxy ➜ 🏠 Residential proxy (retried up to 3× with a fresh IP), then stays on residential for the rest of the run. Every switch is logged clearly. Override this only to force a specific proxy from the start."
          },
          "maxRetries": {
            "title": "🔁 Max Retries Per Request",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry a single blocked/failed request (on the same proxy tier) before the Actor escalates to the next proxy tier.",
            "default": 3
          },
          "maxScanned": {
            "title": "🔬 Max Scanned Rows Per Query",
            "minimum": 100,
            "maximum": 200000,
            "type": "integer",
            "description": "Safety cap on how many raw search result rows a single query may scan through before giving up, even if 'Max Stores' hasn't been reached (protects against a runaway search on a hopeless keyword).",
            "default": 20000
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}