{
  "openapi": "3.0.1",
  "info": {
    "title": "Inditex Product Scraper — 7 Brands, One Dataset",
    "description": "Seven Inditex brands in one dataset: Zara, Zara Home, Bershka, Massimo Dutti, Stradivarius, Oysho and Pull&Bear, all 58 columns, so rows from different brands compare directly. Price, sizes, stock, barcodes across 200+ country stores. No account or proxy needed.",
    "version": "1.0",
    "x-build-id": "JzvXWzjoAeDmFfgfV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~inditex-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-inditex-product-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/sian.agency~inditex-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-inditex-product-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/sian.agency~inditex-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-inditex-product-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": {
          "brands": {
            "title": "🏬 Brands",
            "uniqueItems": true,
            "type": "array",
            "description": "Which of the seven Inditex brands to scrape. Brands run one after another into the same dataset and every row carries a `brand` column, so a combined dataset stays sortable.\n\nThe item cap below is a **run total** across every brand you select, not a per-brand allowance. The run splits it evenly between the brands still to go, so a small cap still returns rows for each of them, and a brand with less stock than its share hands the remainder to the brands after it.",
            "items": {
              "type": "string",
              "enum": [
                "zara",
                "zarahome",
                "bershka",
                "massimodutti",
                "stradivarius",
                "oysho",
                "pullandbear"
              ],
              "enumTitles": [
                "Zara",
                "Zara Home",
                "Bershka",
                "Massimo Dutti",
                "Stradivarius",
                "Oysho",
                "Pull&Bear"
              ]
            },
            "default": [
              "zara",
              "zarahome",
              "bershka",
              "massimodutti",
              "stradivarius",
              "oysho",
              "pullandbear"
            ]
          },
          "mode": {
            "title": "🎛️ Run Mode",
            "enum": [
              "overview",
              "detail"
            ],
            "type": "string",
            "description": "**Overview** walks the category tree (and optionally the sitemap) and returns every product it finds.\n\n**Detail** takes the product URLs you paste below and returns one full record each. Detail mode needs at least one URL or it stops immediately.",
            "default": "overview"
          },
          "country": {
            "title": "🌍 Market",
            "enum": [
              "AD",
              "AE",
              "AG",
              "AI",
              "AL",
              "AM",
              "AO",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CR",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EC",
              "EE",
              "EG",
              "ER",
              "ES",
              "ET",
              "FI",
              "FJ",
              "FM",
              "FO",
              "FR",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GL",
              "GM",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GY",
              "HK",
              "HN",
              "HR",
              "HT",
              "HU",
              "IC",
              "ID",
              "IE",
              "IL",
              "IN",
              "IQ",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "MA",
              "MC",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PR",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RW",
              "SA",
              "SB",
              "SC",
              "SE",
              "SG",
              "SH",
              "SI",
              "SK",
              "SL",
              "SM",
              "SN",
              "SR",
              "ST",
              "SV",
              "SX",
              "SZ",
              "TC",
              "TD",
              "TG",
              "TH",
              "TK",
              "TL",
              "TN",
              "TO",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UK",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "WW",
              "XE",
              "XK",
              "YT",
              "ZA",
              "ZM",
              "ZW"
            ],
            "type": "string",
            "description": "Two-letter store country, e.g. `DE`, `ES`, `FR`, `GB`, `JP`.\n\nThis list is the **union across the seven brands**, not a list every brand serves. The six shared-catalogue brands are open in ~216 markets each; **zara.com is open in only 96**.\n\nPick a market outside Zara's 96 with Zara selected and the run stops. Either drop Zara from the brand list or choose a market it serves. `GB` is safe — zara.com serves it as `uk`.",
            "default": "DE"
          },
          "language": {
            "title": "🗣️ Language",
            "enum": [
              "",
              "ar",
              "bg",
              "ca",
              "cs",
              "da",
              "de",
              "el",
              "en",
              "es",
              "et",
              "eu",
              "fi",
              "fr",
              "gl",
              "he",
              "hr",
              "hu",
              "id",
              "it",
              "ja",
              "ka",
              "kk",
              "ko",
              "lt",
              "lv",
              "mk",
              "nl",
              "no",
              "pl",
              "pt",
              "ro",
              "ru",
              "sk",
              "sl",
              "sq",
              "sr",
              "sv",
              "th",
              "tr",
              "uk",
              "uz",
              "vi",
              "zh",
              "zt"
            ],
            "type": "string",
            "description": "Two-letter language for names and descriptions. Leave empty and each store serves its own default for the market you picked.\n\nAn unsupported code stops the run with the list the market does support.",
            "default": ""
          },
          "allCategories": {
            "title": "🗂️ Sweep All Categories",
            "type": "boolean",
            "description": "Walk every category in the tree. On by default so a bare run returns data.\n\n**This wins over the single category below.** Turn it off to scrape one category.\n\nCategories that are containers rather than product grids return nothing and are skipped, which is normal — the run summary counts them under `categoriesSkipped`.",
            "default": true
          },
          "category": {
            "title": "📂 Single Category",
            "type": "string",
            "description": "One category, by slug or numeric id. The slug is the last path segment of a category URL on the brand site.\n\nTurn off **Sweep All Categories** above or this field is ignored."
          },
          "fromSitemap": {
            "title": "🗺️ Also Crawl the Sitemap",
            "type": "boolean",
            "description": "After the categories, read the product sitemap and fetch everything the categories missed.\n\nThis is the expensive half of a full-catalogue run: sitemap products are fetched one at a time rather than in bulk, so those rows are charged as the \"Scraped product detail\" event at $0.0105 instead of $0.0035 — 3× the category-sweep price.\n\nUse it when you want the complete catalogue rather than what merchandising currently surfaces.",
            "default": false
          },
          "maxItems": {
            "title": "🔢 Max Products",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many products. `0` means no cap — the run goes until the catalogue is exhausted.\n\nDuplicates are removed before the cap is counted, so the number you set is the number of distinct products you get.",
            "default": 100
          },
          "withSizes": {
            "title": "📐 Fetch Sizes & SKUs (Zara)",
            "type": "boolean",
            "description": "Zara's grid ships no sizes and no description. Switch this on and the actor fetches the detail record for every product, ten ids per request, and merges it into the grid row.\n\nThat adds per-SKU sizes, stock, the description, Zara's demand signal, twinned SKUs and the first-seen date.\n\nApplies to Zara only. The other six brands already carry sizes on the overview call.\n\nBilling: these rows genuinely cost both calls and are charged both events — $0.0035 + $0.0105 = $0.014 per product.",
            "default": false
          },
          "productUrls": {
            "title": "🔗 Product URLs or IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "One product per line — a full product URL, or a bare product id.\n\nURLs are routed to the brand their hostname names. A bare id goes to the first brand in your list, so mix brands only when you paste full URLs.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "↕️ Sort",
            "enum": [
              "default",
              "price_asc",
              "price_desc",
              "price-asc",
              "price-desc",
              "novelty"
            ],
            "type": "string",
            "description": "Zara and the six shared-catalogue brands use different sort ids, so pick one that matches the brands you selected. `Catalogue order` is the only option that works for every brand at once.\n\nBoth sites publish pre-sorted id lists rather than accepting a sort parameter. A sort id the selected brand does not use stops the run and prints the valid ones.\n\nOn Zara a category that lacks the chosen sort stops the run; on the other six it simply returns catalogue order.",
            "default": "default"
          },
          "filters": {
            "title": "🎚️ Facet Filters",
            "uniqueItems": true,
            "type": "array",
            "description": "Facet filters as `GROUP=VALUE`, one per line. Values in the same group are OR-ed, different groups are AND-ed.\n\nOn the six shared-catalogue brands use the shortcuts `color=`, `size=`, `category=` and `discount=`, or the raw facet group id. Zara uses its own ids (`color`, `size`), which this field passes through unchanged.\n\nFacet groups are per category: one the category does not offer stops the run and prints the ones it does.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "💶 Min Price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop products cheaper than this, in major units of the market currency. Leave empty for no floor."
          },
          "maxPrice": {
            "title": "💶 Max Price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop products dearer than this, in major units of the market currency. Leave empty for no ceiling."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}