{
  "openapi": "3.0.1",
  "info": {
    "title": "WooCommerce Scraper (Store Setup & Payment Check)",
    "description": "YouTube Video Summarizer extracts and summarizes video content with top comments and replies, providing key insights, discussion highlights, video details, and audience feedback. Ideal for content research, competitor analysis, sentiment analysis, and YouTube audience insights.",
    "version": "0.1",
    "x-build-id": "fIfxKmG3L6gWZ8wxu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~woocommerce-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-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/scrapier~woocommerce-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-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/scrapier~woocommerce-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-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": "🏪 Merchant store URLs",
            "type": "array",
            "description": "The stores you want to qualify. Each one gets a store setup profile row: API reachability, catalogue size, payment gateways, currency, country and installed extensions.",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "title": "Store URLs (alternative field)",
            "type": "array",
            "description": "Same thing as the field above, kept so existing API calls and integrations keep working. Anything entered here is added to the list.",
            "items": {
              "type": "string"
            }
          },
          "dev_fileupload": {
            "title": "📥 Merchant list from a file",
            "type": "string",
            "description": "URL of a text or JSON file holding one store URL per line, or a JSON array of URLs. Handy for qualifying a prospect list in bulk. Its URLs are added to the list above."
          },
          "includeStoreProfile": {
            "title": "🧾 Write a store setup profile row",
            "type": "boolean",
            "description": "Add one profile row per store: Store API and WordPress API reachability, the Store API route namespace, the true catalogue size and its size tier, the store name, description, timezone and GMT offset, and the full list of REST namespaces the site publishes.",
            "default": true
          },
          "profileOnly": {
            "title": "⚡ Qualify only - do not pull the catalogue",
            "type": "boolean",
            "description": "Stop after the store setup profile. Three requests per merchant instead of a full catalogue crawl - the cheapest way to screen a long prospect list before deciding which stores are worth scraping.",
            "default": false
          },
          "checkPaymentMethods": {
            "title": "💳 Read the accepted payment methods",
            "type": "boolean",
            "description": "Read the store's own empty-cart endpoint for the payment gateway IDs it offers (for example 'stripe', 'woocommerce_payments', 'ppcp-gateway'), plus the currency and the default customer country it serves. Gateway IDs only: WooCommerce does not publish gateway display titles without a checkout nonce, and this actor never invents one.",
            "default": true
          },
          "detectExtensions": {
            "title": "🧩 Detect installed WooCommerce extensions",
            "type": "boolean",
            "description": "List the WooCommerce extensions that register themselves on the cart endpoint (subscriptions, smart coupons, table rate shipping, delivery dates...). A free read of the merchant's plugin stack from the same request as the payment check.",
            "default": true
          },
          "attachStoreSetupToRows": {
            "title": "🔗 Stamp the store setup onto every catalogue row",
            "type": "boolean",
            "description": "Copy the store name, catalogue size and tier, currency, country, payment methods and detected extensions onto each product or record row, so you can sort and filter one flat export by merchant setup.",
            "default": true
          },
          "skipUnsupportedStores": {
            "title": "🚦 Skip stores without the WooCommerce Store API",
            "type": "boolean",
            "description": "If a domain answers the WordPress REST API but never publishes the 'wc/store/v1' namespace, it is not a reachable WooCommerce storefront. Its profile row is still written (that is the answer you asked for) but its catalogue is not crawled.",
            "default": true
          },
          "onlyStoreCountries": {
            "title": "🌍 Only these default-customer countries",
            "type": "string",
            "description": "Comma-separated ISO-2 country codes, e.g. US,CA,GB. Filters on the country WooCommerce serves as the default customer address - that is the store base country or a geolocated guess, NOT a list of countries the store ships to. Leave empty to keep every store."
          },
          "minCatalogueSize": {
            "title": "📦 Minimum catalogue size",
            "minimum": 0,
            "type": "integer",
            "description": "Skip merchants publishing fewer than this many products. The count is the store's own total, read from one response header - no paging needed. 0 keeps every store.",
            "default": 0
          },
          "resource": {
            "title": "📁 Record type",
            "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"
          },
          "limit": {
            "title": "♾️ Records per store",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of catalogue records to return per store. The store profile row is written on top of this number, and so are variations fetched by 'Include variations'.",
            "default": 10
          },
          "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": "Description format",
            "enum": [
              "md",
              "text",
              "html"
            ],
            "type": "string",
            "description": "How product descriptions and review bodies are rendered.",
            "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."
          },
          "category": {
            "title": "Category ID filter",
            "type": "string",
            "description": "Product category ID(s), comma separated. Run once with record type 'categories' to get the IDs. Products only."
          },
          "tag": {
            "title": "Tag ID filter",
            "type": "string",
            "description": "Product tag ID(s), comma separated. Run once with record type 'tags' to get the IDs. Products only."
          },
          "sku": {
            "title": "SKU",
            "type": "string",
            "description": "Return only products with this SKU. Products only."
          },
          "product_type": {
            "title": "Product type",
            "enum": [
              "",
              "simple",
              "grouped",
              "external",
              "variable",
              "wbs_bundle",
              "variation"
            ],
            "type": "string",
            "description": "Return only products of this type. Products only."
          },
          "stock": {
            "title": "Stock status",
            "enum": [
              "",
              "instock",
              "outofstock",
              "onbackorder"
            ],
            "type": "string",
            "description": "Return only products with this stock status. Products 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 Store API honours one value, so a single star level is applied. Products only."
          },
          "min_price": {
            "title": "Price range - min",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price, in the store's minor currency unit (cents on a 2-decimal store: 1999 means 19.99). The profile row tells you which minor unit the store serves. Products only."
          },
          "max_price": {
            "title": "Price range - max",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price, in the store's minor currency unit (cents on a 2-decimal store: 4999 means 49.99). Products only."
          },
          "featured": {
            "title": "Featured only",
            "type": "boolean",
            "description": "Return only products the store marks as featured. Products only.",
            "default": false
          },
          "sale": {
            "title": "On sale only",
            "type": "boolean",
            "description": "Return only products that are currently on sale. Products 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": "🌐 Your own proxy",
            "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": "📜 Extra 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\": \"Accept-Language\", \"value\": \"en-GB\"}]"
          },
          "dev_custom_cookies": {
            "title": "🍰 Extra 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": "♻️ Keep only these fields",
            "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": "📁 Named dataset",
            "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: leads-{DATE} becomes leads-20260810"
          },
          "dev_dataset_clear": {
            "title": "Clear the named dataset first",
            "type": "boolean",
            "description": "Empty the named dataset above before writing this run's results. It has no effect without a named dataset: the default dataset of a run is always new and empty.",
            "default": false
          },
          "dev_no_strip": {
            "title": "Keep empty values",
            "type": "boolean",
            "description": "Keep empty values (null, empty string, empty array, empty object) in the output. Booleans and zeros are always kept. Turn this on to see every profile field the store did not publish.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}