{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Store Leads — Catalog Size, Apps, Contacts",
    "description": "Find and qualify Shopify stores, or enrich domains you own. Each lead returns catalog size, price band, theme, installed apps, published policies, new products a month, emails, phones and socials. Filter by country, category, keyword, size, ships-to, price or apps. You pay only for rows you keep.",
    "version": "0.0",
    "x-build-id": "wb25UKrHM11efXXvu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/autofacts~shopify-store-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-autofacts-shopify-store-leads",
        "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/autofacts~shopify-store-leads/runs": {
      "post": {
        "operationId": "runs-sync-autofacts-shopify-store-leads",
        "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/autofacts~shopify-store-leads/run-sync": {
      "post": {
        "operationId": "run-sync-autofacts-shopify-store-leads",
        "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": {
          "storeUrls": {
            "title": "Store URLs",
            "type": "array",
            "description": "Stores you already know, to enrich directly. When this is set, discovery is skipped entirely and only these stores are processed. Accepts a full URL or a bare domain.",
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Keyword",
            "type": "string",
            "description": "Find stores selling this. With 'Use the Shop app' on, the default, the stores come from the Shop app's search for it, and from nowhere else. With it off, or on stores you list yourself, it keeps only stores whose name, description or domain contains this text — checked at the first request, so non-matching stores cost nothing."
          },
          "category": {
            "title": "Product category",
            "type": "string",
            "description": "Find stores selling this kind of product, e.g. 'jewelry', 'coffee', 'skincare'. With 'Use the Shop app' on, the default, and no keyword, the stores come from the Shop app's search for it, and from nowhere else. Otherwise it keeps only stores whose own product types contain this text."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep only stores based in these countries. Two-letter ISO codes, e.g. US, GB, AU.",
            "items": {
              "type": "string"
            }
          },
          "minProducts": {
            "title": "Minimum products",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only stores with at least this many published products. Evaluated on the first request."
          },
          "maxProducts": {
            "title": "Maximum products",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only stores with at most this many published products."
          },
          "activeWithinDays": {
            "title": "Published a product within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only stores that published a product in the last N days — the cheapest way to drop abandoned storefronts."
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop stores whose name, description or domain contains any of these.",
            "items": {
              "type": "string"
            }
          },
          "shipsToCountries": {
            "title": "Ships to countries",
            "type": "array",
            "description": "Keep only stores that ship to at least one of these countries. Two-letter codes. Decided from /meta.json, so a store that does not ship where you sell is dropped for a single request.",
            "items": {
              "type": "string"
            }
          },
          "minAvgPrice": {
            "title": "Minimum average price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only stores whose average product price is at least this, in minor units of the store's own currency — 5000 means 50.00. Sampled from up to 250 products."
          },
          "maxAvgPrice": {
            "title": "Maximum average price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only stores whose average product price is at most this, in minor units of the store's own currency — 5000 means 50.00."
          },
          "inStockOnly": {
            "title": "In stock only",
            "type": "boolean",
            "description": "Keep only stores with at least one in-stock product in the sample. Drops abandoned and sold-out storefronts.",
            "default": false
          },
          "hasApps": {
            "title": "Runs any of these apps",
            "type": "array",
            "description": "Keep only stores running at least one of these apps, by handle — for example klaviyo, okendo, judgeme, rechargepayments. Detected from the public storefront.",
            "items": {
              "type": "string"
            }
          },
          "appMatchMode": {
            "title": "App match mode",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "How 'Runs any of these apps' matches: any of them, or all of them.",
            "default": "any"
          },
          "excludeApps": {
            "title": "Excluding stores running these apps",
            "type": "array",
            "description": "Drop stores running any of these apps, by handle. Useful for finding stores that have NOT yet installed a competitor to what you sell.",
            "items": {
              "type": "string"
            }
          },
          "hasSocials": {
            "title": "Has any of these social profiles",
            "type": "array",
            "description": "Keep only stores linking at least one of these networks: instagram, tiktok, facebook, youtube, x, pinterest, linkedin.",
            "items": {
              "type": "string"
            }
          },
          "requireEmail": {
            "title": "Must have an email address",
            "type": "boolean",
            "description": "Keep only stores that publish a business email address.",
            "default": false
          },
          "requirePhone": {
            "title": "Must have a phone number",
            "type": "boolean",
            "description": "Keep only stores that publish a phone number.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum stores",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after storing this many stores. This is the hard cap on what the run can charge.",
            "default": 100
          },
          "includeCatalog": {
            "title": "Include catalog detail",
            "type": "boolean",
            "description": "Price band, product types and vendors. Costs one extra request per store; the product and collection counts are returned either way.",
            "default": true
          },
          "includeContacts": {
            "title": "Include business contacts",
            "type": "boolean",
            "description": "The email addresses, phone numbers and social profiles a store publishes, and its business address. Every published email address is kept except no-reply ones. With 'Use the Shop app' on, the default, the contacts a store lists on its Shop app page come first, with its business address, and the storefront fills in the rest.",
            "default": true
          },
          "includeTechStack": {
            "title": "Include theme and apps",
            "type": "boolean",
            "description": "Storefront theme and the third-party apps detectable from the page's own assets.",
            "default": true
          },
          "useShopApp": {
            "title": "Use the Shop app",
            "type": "boolean",
            "description": "Use the Shop app, Shopify's marketplace. With a keyword, or a product category when no keyword is set, its product search is where the stores come from. Every store that passes your filters is then found on the Shop app, by the search or by its own name, for its Shop app rating and, with contacts included, the business address and contacts it lists there. The stores' own pages fill in the rest. Turn off to read only the stores' own storefronts, found through the built-in seed and Common Crawl; the Shop app's terms restrict automated access.",
            "default": true
          },
          "useSeed": {
            "title": "Use the built-in store seed",
            "type": "boolean",
            "description": "Examine the bundled list of known-good Shopify stores before falling back to Common Crawl, when there is no keyword or category for the Shop app to search. Makes short runs fast.",
            "default": true
          },
          "ccIndex": {
            "title": "Common Crawl index",
            "type": "string",
            "description": "Which Common Crawl index to discover from, e.g. CC-MAIN-2026-34. Leave empty to use the newest available — the index is republished monthly and a pinned value stops refreshing the seed."
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Used for every request the actor makes. Shopify rate-limits /meta.json per client IP, so rotation matters more than reputation here: the automatic Apify Proxy is enough. Leave it on — running without a proxy means sharing one egress IP with every other actor on the platform and being rate-limited as a group. No proxy group is requested, so the run uses whichever groups your own account has.",
            "default": {
              "useApifyProxy": true
            }
          },
          "previousDatasetId": {
            "title": "Previous dataset ID (reserved)",
            "type": "string",
            "description": "Reserved name, accepted and ignored. Hidden from the form because it does nothing: change tracking was evaluated and deliberately not built. The name is kept so adding it later is not a breaking input change."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}