{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Store Scraper - Store Leads, Emails, Apps & Theme",
    "description": "Shopify store scraper for ecommerce leads: find Shopify stores by keyword or paste store URLs. One row per shop with email, phone, socials, installed apps, theme, product count and price band. Filter by country, apps and email; skipped stores are free. No login or API key.",
    "version": "0.1",
    "x-build-id": "RSRozi2ELh2mB1qfk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lergassy~shopify-store-intel/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lergassy-shopify-store-intel",
        "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/lergassy~shopify-store-intel/runs": {
      "post": {
        "operationId": "runs-sync-lergassy-shopify-store-intel",
        "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/lergassy~shopify-store-intel/run-sync": {
      "post": {
        "operationId": "run-sync-lergassy-shopify-store-intel",
        "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": {
          "searchTerms": {
            "title": "🔎 Find stores that sell…",
            "type": "array",
            "description": "Keywords for what the stores sell — <code>organic coffee</code>, <code>yoga mat</code>, <code>dog treats</code>. The Actor searches Shopify's own product catalog across all stores, collects the stores behind the matching products and profiles each one. Leave empty to profile only the addresses below.",
            "items": {
              "type": "string"
            }
          },
          "storeUrls": {
            "title": "🛍️ Store addresses",
            "type": "array",
            "description": "Shops to profile, one per line. A bare domain is enough — <code>gymshark.com</code>, <code>allbirds.com</code> or a <code>.myshopify.com</code> address all work. Optional when <b>Find stores that sell…</b> is filled.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "🎯 What to collect",
            "enum": [
              "store",
              "products",
              "detect"
            ],
            "type": "string",
            "description": "<b>Store profile</b> — one row per shop with contacts, tech and catalogue figures. <b>Products</b> — the store row plus every product as its own row. <b>Detect only</b> — just answer whether the address is a Shopify store, at the lowest price.",
            "default": "store"
          },
          "includeContacts": {
            "title": "📧 Find contacts",
            "type": "boolean",
            "description": "Read the home page and, when nothing is there, the contact page, for email addresses, phone numbers and social profiles.",
            "default": true
          },
          "includeProducts": {
            "title": "📦 Add product rows",
            "type": "boolean",
            "description": "Also write one row per product in the store profile mode.",
            "default": false
          },
          "maxProductsPerStore": {
            "title": "💯 Products per store",
            "minimum": 0,
            "maximum": 2500,
            "type": "integer",
            "description": "How many products to read from each shop. The catalogue figures in the store row are calculated from this sample, so leave it high for an accurate price band.",
            "default": 250
          },
          "maxStores": {
            "title": "🏬 Maximum stores",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many store rows one run delivers at most — addresses from your list plus stores found by the search. Stores skipped by the filters don't count.",
            "default": 100
          },
          "concurrency": {
            "title": "⚡ Parallel stores",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many shops to read at the same time.",
            "default": 5
          },
          "storeCountries": {
            "title": "🌍 Store countries",
            "type": "array",
            "description": "Only stores based in these countries, as two-letter codes: <code>US</code>, <code>GB</code>, <code>DE</code>. Applied to search results and to your own list. Leave empty for any country.",
            "items": {
              "type": "string"
            }
          },
          "shipsTo": {
            "title": "📦 Ships to",
            "type": "string",
            "description": "Search only products that ship to this country (two-letter code, e.g. <code>US</code>)."
          },
          "onlyWithEmail": {
            "title": "📧 Only stores with a public e-mail",
            "type": "boolean",
            "description": "Skip stores that publish no e-mail address. Skipped stores are not written and not charged.",
            "default": false
          },
          "requiredApps": {
            "title": "✅ Uses any of these apps",
            "type": "array",
            "description": "Only stores where at least one of these apps is detected on the storefront: <code>Klaviyo</code>, <code>Yotpo</code>, <code>Recharge</code>, <code>Gorgias</code>… Skipped stores are not charged.",
            "items": {
              "type": "string"
            }
          },
          "excludeApps": {
            "title": "🚫 Doesn't use these apps",
            "type": "array",
            "description": "Skip stores where any of these apps is detected — for example your own app, to find stores that don't use it yet.",
            "items": {
              "type": "string"
            }
          },
          "minProducts": {
            "title": "🔢 Minimum products",
            "minimum": 0,
            "type": "integer",
            "description": "Skip stores with fewer products in their catalogue."
          },
          "maxProducts": {
            "title": "🔢 Maximum products",
            "minimum": 0,
            "type": "integer",
            "description": "Skip stores with more products in their catalogue."
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Shops behind Cloudflare or Vercel bot protection answer a datacentre address with a challenge instead of the page, so requests go through Apify Proxy by default. If a shop still refuses, switch this to the residential group.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}