{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Scraper Pro",
    "description": "Scrape any Shopify store(s) at scale: products, collections, search, on-sale tracking, multi-store batches. Filters: price/vendor/type/tags/title/sale/availability/date. Multi-endpoint fallback. HTTP-only, no auth, no proxy.",
    "version": "1.0",
    "x-build-id": "QXg3cKsGalVNGFEzE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~shopify-scraper-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-shopify-scraper-pro",
        "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/crawlerbros~shopify-scraper-pro/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-shopify-scraper-pro",
        "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/crawlerbros~shopify-scraper-pro/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-shopify-scraper-pro",
        "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",
        "required": [
          "storeUrls"
        ],
        "properties": {
          "storeUrls": {
            "title": "Shopify store URLs",
            "type": "array",
            "description": "Shopify store domains. Accepts full URLs (`https://www.allbirds.com`), bare domains (`allbirds.com`), or `*.myshopify.com` handles. Each store is fetched independently.",
            "default": [
              "allbirds.com",
              "kith.com"
            ],
            "items": {
              "type": "string"
            }
          },
          "collectionHandles": {
            "title": "Collection handles (optional)",
            "type": "array",
            "description": "Restrict scraping to specific collection handles (e.g. `mens`, `sale`, `new-arrivals`). When set, fetches `<store>/collections/<handle>/products.json` instead of the full catalog. Applies to ALL `storeUrls`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "In-store search query (optional)",
            "type": "string",
            "description": "When set, runs Shopify's in-store search via `<store>/search/suggest.json?q=<query>` instead of catalog walk. Returns the most relevant matches per store."
          },
          "sortBy": {
            "title": "Sort by (collection mode only)",
            "enum": [
              "best-selling",
              "manual",
              "price-ascending",
              "price-descending",
              "title-ascending",
              "title-descending",
              "created-ascending",
              "created-descending"
            ],
            "type": "string",
            "description": "Shopify's collection sort. Only applied when `collectionHandles` is set.",
            "default": "best-selling"
          },
          "maxItemsPerStore": {
            "title": "Max items per store",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on products fetched per store (1-5000).",
            "default": 250
          },
          "maxItems": {
            "title": "Max items total",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Global hard cap across all stores (1-50000).",
            "default": 1000
          },
          "imageQuality": {
            "title": "Image URL quality",
            "enum": [
              "small",
              "medium",
              "large",
              "grande",
              "1024x1024",
              "2048x2048",
              "master"
            ],
            "type": "string",
            "description": "Shopify CDN serves multiple image sizes. `master` returns the original; smaller sizes are bandwidth-friendly.",
            "default": "master"
          },
          "enrichWithCollections": {
            "title": "Enrich with collections list",
            "type": "boolean",
            "description": "Fetch each store's `/collections.json` and add a `collections[]` field to each product (matched by handle when possible). Adds 1 extra HTTP request per store.",
            "default": false
          },
          "includeUnavailable": {
            "title": "Include unavailable products",
            "type": "boolean",
            "description": "When false (default), drop products whose variants are all out-of-stock.",
            "default": false
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "maximum": 1000000,
            "type": "number",
            "description": "Drop products whose lowest variant price is below this threshold."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "maximum": 1000000,
            "type": "number",
            "description": "Drop products whose lowest variant price is above this threshold."
          },
          "vendorContains": {
            "title": "Vendor name contains",
            "type": "string",
            "description": "Only emit products whose vendor name contains this substring (case-insensitive)."
          },
          "productTypeContains": {
            "title": "Product type contains",
            "type": "string",
            "description": "Only emit products whose `product_type` (Shopify taxonomy) contains this substring."
          },
          "tagAnyOf": {
            "title": "Tag allowlist (any of)",
            "type": "array",
            "description": "Only emit products whose `tags` list contains at least one of these (case-insensitive substring match).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "tagNoneOf": {
            "title": "Tag blocklist",
            "type": "array",
            "description": "Drop products whose `tags` contains any of these substrings.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleContains": {
            "title": "Title contains",
            "type": "string",
            "description": "Only emit products whose title contains this substring (case-insensitive)."
          },
          "onSaleOnly": {
            "title": "On-sale products only",
            "type": "boolean",
            "description": "Only emit products with at least one variant where `compare_at_price` > `price` (i.e. discounted).",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Min discount %",
            "minimum": 0,
            "maximum": 99,
            "type": "integer",
            "description": "Only emit products whose discount (`comparePrice` vs `price`) is at least this percentage. e.g. `30` = at least 30% off."
          },
          "createdSince": {
            "title": "Created since (ISO YYYY-MM-DD)",
            "type": "string",
            "description": "Drop products created (`created_at`) before this date. Empty = no lower bound."
          },
          "updatedSince": {
            "title": "Updated since (ISO YYYY-MM-DD)",
            "type": "string",
            "description": "Drop products updated (`updated_at`) before this date. Empty = no lower bound."
          },
          "skuContains": {
            "title": "SKU contains",
            "type": "string",
            "description": "Only emit products with at least one variant whose SKU contains this substring (case-insensitive)."
          },
          "useApifyProxy": {
            "title": "Use Apify proxy",
            "type": "boolean",
            "description": "Route requests through Apify proxy. Most Shopify stores work without proxy from datacenter IPs. The actor automatically falls back to Apify proxy on the first failure regardless of this setting.",
            "default": false
          },
          "requestDelaySecs": {
            "title": "Delay between page fetches (seconds)",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Pause between successive page fetches per store. Lower = faster, higher = more polite.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}