{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Products Scraper With Variant & SKU Rows",
    "description": "Shopify Products Scraper With Variant & SKU Rows extracts Shopify product data with each variant and SKU as separate rows, including titles, prices, inventory, options, images, product URLs, and merchant details. Ideal for product research, price monitoring, and catalog analysis.",
    "version": "0.1",
    "x-build-id": "1EGRA6PLrHUbrSAUe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simpleapi~shopify-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simpleapi-shopify-products-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/simpleapi~shopify-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-simpleapi-shopify-products-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/simpleapi~shopify-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-simpleapi-shopify-products-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": {
          "storeUrls": {
            "title": "🛍️ Storefront addresses",
            "type": "array",
            "description": "Storefront addresses to read, one per line. Example: https://deathwishcoffee.com. Bare hostnames (deathwishcoffee.com) and myshopify addresses are normalised automatically. Duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🗄️ Storefront addresses (legacy key)",
            "type": "array",
            "description": "Backward-compatible alias kept so an existing input file keeps working. Used only when the field above is empty. Leave blank if you filled in the field above.",
            "items": {
              "type": "string"
            }
          },
          "rowsPerVariant": {
            "title": "🧬 One row per variant / SKU",
            "type": "boolean",
            "description": "Turn a product with 56 variants into 56 rows instead of one. Each variant row carries its own SKU, option values, price, compare-at price and stock flag. Default is on.",
            "default": true
          },
          "includeParentProductRow": {
            "title": "📄 Also keep the product roll-up row",
            "type": "boolean",
            "description": "Keep the one-row-per-product summary alongside the variant rows. It carries the option matrix, variant counts, availability ratio, SKU coverage and the price range. Default is on.",
            "default": true
          },
          "variantFields": {
            "title": "🔬 Detail groups on each variant row",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick which extra field groups each variant row carries. Identity and options are the two most requested. Leave every box ticked to get everything.",
            "items": {
              "type": "string",
              "enum": [
                "identity",
                "options",
                "shipping",
                "stock",
                "dates"
              ],
              "enumTitles": [
                "SKU & barcode",
                "Option names & values",
                "Weight & shipping",
                "Stock policy & quantity",
                "Created / updated dates"
              ]
            }
          },
          "maxVariantsPerProduct": {
            "title": "✂️ Variant rows per product",
            "minimum": 0,
            "type": "integer",
            "description": "Cap how many variant rows a single product may produce. 0 means no cap. The product roll-up still reports the true total in variantCount, so a cap never hides how many variants really exist. Example: 3 on a 56-variant product gives 3 variant rows and variantCount 56.",
            "default": 0
          },
          "maxProducts": {
            "title": "📦 Products per storefront",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum products to read from each storefront. 0 means the whole catalogue. Catalogues run from 4 products to well over 6,000, so start small and raise it. When omitted the actor uses 100, matching the previous behaviour."
          },
          "maxItems": {
            "title": "🗄️ Products per storefront (legacy key)",
            "minimum": 0,
            "type": "integer",
            "description": "Backward-compatible alias kept so an existing input file keeps working. Used only when the field above is empty."
          },
          "proxyConfiguration": {
            "title": "🌐 Connection settings",
            "type": "object",
            "description": "Choose how requests reach the storefront. The default works for most stores."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}