{
  "openapi": "3.0.1",
  "info": {
    "title": "Woocommerce Scraper",
    "description": "WooCommerce Scraper extracts product data from WooCommerce stores with accuracy. Collect product names, prices, SKUs, categories, images, and availability for research, monitoring, and catalog building. Ideal for eCommerce analysis and automation.",
    "version": "0.1",
    "x-build-id": "ngdZKFbMqNvxp4pNc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scraper-engine~woocommerce-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scraper-engine-woocommerce-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~woocommerce-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scraper-engine-woocommerce-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~woocommerce-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scraper-engine-woocommerce-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": {
          "startUrls": {
            "title": "❓ URL",
            "type": "array",
            "description": "💡 Which stores do you want to read? Enter store home pages (https://example.com). A bare domain works, and a sub-directory install (https://example.com/shop) is kept. Fill in this field or the 'URL (alternative)' field below.",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "title": "URL (alternative)",
            "type": "array",
            "description": "Alternative to startUrls: array of store URLs to scrape.",
            "items": {
              "type": "string"
            }
          },
          "limit": {
            "title": "♾️ Limit",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of records to return per store. Product variations fetched by 'Include Variations' are returned on top of this number.",
            "default": 10
          },
          "resource": {
            "title": "📁 Resource",
            "enum": [
              "products",
              "categories",
              "brands",
              "tags",
              "attributes",
              "reviews",
              "pages",
              "posts",
              "comments",
              "post-categories",
              "post-tags",
              "users"
            ],
            "type": "string",
            "description": "Which record type to read. 'products' is the full product row; every other value is returned exactly as the store's API publishes it. 'brands' needs the WooCommerce Brands taxonomy installed, 'users' is disabled on many stores, and 'comments' hides product reviews from logged-out clients - use 'reviews' for those.",
            "default": "products"
          },
          "include_variations": {
            "title": "Include Variations",
            "type": "boolean",
            "description": "Also return every variation of the variable products found (one extra request per variation). Variation rows carry the parent product id in 'parent' and type 'variation'.",
            "default": false
          },
          "format": {
            "title": "Output Format",
            "enum": [
              "md",
              "text",
              "html"
            ],
            "type": "string",
            "description": "💡 Output format for descriptions and review bodies. (default: Markdown)",
            "default": "md"
          },
          "sort": {
            "title": "Sorting",
            "enum": [
              "",
              "date",
              "modified",
              "id",
              "include",
              "title",
              "slug",
              "price",
              "popularity",
              "rating",
              "menu_order",
              "comment_count"
            ],
            "type": "string",
            "description": "Sort order requested from the store. Products accept every value below. Categories, tags and brands accept Slug, Title and Popularity only; reviews accept Date, ID and Rating; pages and posts accept Date, Modified, ID, Title and Slug. An unsupported value is reported in the log and the store's own order is used.",
            "default": "date"
          },
          "order": {
            "title": "Order",
            "enum": [
              "",
              "asc",
              "desc"
            ],
            "type": "string",
            "description": "Sort direction. Applied only when the chosen Sorting value is supported by the resource.",
            "default": ""
          },
          "search": {
            "title": "Search",
            "type": "string",
            "description": "💡 Return only records matching this text. Applied by the store itself. Not supported for the 'attributes' and 'reviews' resources."
          },
          "sku": {
            "title": "SKU",
            "type": "string",
            "description": "💡 Return only products with this SKU. Products resource only."
          },
          "rating": {
            "title": "Product Rating",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "💡 Return only products whose rounded average rating equals this many stars. The WooCommerce Store API honours one value, so a single star level is applied. Products resource only."
          },
          "min_price": {
            "title": "Price Range - Min",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price, in the store's minor currency unit (cents for a 2-decimal store: 1999 means 19.99). Products resource only."
          },
          "max_price": {
            "title": "Price Range - Max",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price, in the store's minor currency unit (cents for a 2-decimal store: 4999 means 49.99). Products resource only."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Product category ID(s), comma separated. Run the actor once with resource 'categories' to get the IDs. Products resource only."
          },
          "tag": {
            "title": "Tag",
            "type": "string",
            "description": "Product tag ID(s), comma separated. Run the actor once with resource 'tags' to get the IDs. Products resource only."
          },
          "product_type": {
            "title": "Product Type",
            "enum": [
              "",
              "simple",
              "grouped",
              "external",
              "variable",
              "wbs_bundle",
              "variation"
            ],
            "type": "string",
            "description": "Return only products of this type. Products resource only."
          },
          "stock": {
            "title": "Stock Status",
            "enum": [
              "",
              "instock",
              "outofstock",
              "onbackorder"
            ],
            "type": "string",
            "description": "Return only products with this stock status. Products resource only."
          },
          "featured": {
            "title": "Featured",
            "type": "boolean",
            "description": "Return only products the store marks as featured. Products resource only.",
            "default": false
          },
          "sale": {
            "title": "On Sale",
            "type": "boolean",
            "description": "Return only products that are currently on sale. Products resource only.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Choose which proxies to use. By default no proxy is used; if a store refuses the direct request the actor escalates to an Apify datacenter proxy and then to a residential proxy on its own."
          },
          "dev_proxy_config": {
            "title": "🌐 PROXY NETWORKING",
            "type": "string",
            "description": "💡 Your own HTTP(S) proxy, used instead of the Apify proxy.\nhttp://{user:pass}@{hostname|ip-address}:port\nExample: http://user:pass@proxy.example.com:8000\nSOCKS proxies are not supported by this actor's HTTP client."
          },
          "dev_custom_headers": {
            "title": "📜 HTTP HEADERS",
            "type": "string",
            "description": "💡 Extra HTTP headers, as a JSON array of {name, value} pairs, a JSON object, or one 'Name: value' per line.\nExample: [{\"name\": \"Authorization\", \"value\": \"Bearer token\"}]"
          },
          "dev_custom_cookies": {
            "title": "🍰 HTTP COOKIES",
            "type": "string",
            "description": "💡 Extra HTTP cookies, as a JSON array of {name, value} pairs, a JSON object, or one 'name=value' per line.\nExample: [{\"name\": \"session\", \"value\": \"abc123\"}]"
          },
          "dev_transform_fields": {
            "title": "♻️ CUSTOM FIELD",
            "type": "string",
            "description": "💡 Keep only these fields in the output. Enter comma-separated field paths; each path becomes one flat column.\nFor a nested object use a DOT, e.g. prices.price\nFor an array element use its index, e.g. images.0.src"
          },
          "dev_dataset_name": {
            "title": "📁 CUSTOM STORAGE",
            "type": "string",
            "description": "💡 Write the results into a named dataset instead of the default one. Masks:\n{ACTOR} = actor name\n{DATE} = date (YYYYMMDD)\n{TIME} = time (HHMMSS)\nExample: data-{DATE} becomes data-20260810"
          },
          "dev_dataset_clear": {
            "title": "Clear Storage",
            "type": "boolean",
            "description": "Empty the named dataset above before writing this run's results. It has no effect without 'CUSTOM STORAGE': the default dataset of a run is always new and empty.",
            "default": false
          },
          "dev_no_strip": {
            "title": "Disable data cleansing",
            "type": "boolean",
            "description": "💡 Keep empty values (null, empty string, empty array, empty object) in the output. Booleans and zeros are always kept.",
            "default": false
          },
          "dev_fileupload": {
            "title": "📁 FILE UPLOADER",
            "type": "string",
            "description": "💡 URL of a text or JSON file holding one store URL per line or a JSON array of URLs. Its URLs are added to the list above."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}