{
  "openapi": "3.0.1",
  "info": {
    "title": "Sneaker Price Tracker: Sales, Price Drops & Restocks EU/UK/US",
    "description": "Track sneaker prices, sales and restocks in 13 shops (Kith, SNS, END., Footpatrol, Patta, Slam Jam...). Per-size stock, style-code match across shops, alerts for drops, sales and restocks.",
    "version": "0.1",
    "x-build-id": "akUaLEHgcsZLsxNoc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apizilla~sneaker-price-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apizilla-sneaker-price-tracker",
        "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/apizilla~sneaker-price-tracker/runs": {
      "post": {
        "operationId": "runs-sync-apizilla-sneaker-price-tracker",
        "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/apizilla~sneaker-price-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-apizilla-sneaker-price-tracker",
        "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": {
          "shops": {
            "title": "Shops",
            "type": "array",
            "description": "Sneaker shops to read. All 13 are read with plain HTTP from their public product feed.",
            "items": {
              "type": "string",
              "enum": [
                "kith-eu",
                "kith-us",
                "sneakersnstuff",
                "footpatrol",
                "endclothing",
                "overkill",
                "asphaltgold",
                "urbanindustry",
                "footdistrict",
                "patta",
                "concepts",
                "slamjam",
                "oneblockdown"
              ],
              "enumTitles": [
                "Kith Europe (FR, EUR)",
                "Kith (US, USD)",
                "Sneakersnstuff (SE, EUR)",
                "Footpatrol (UK, GBP)",
                "END. Clothing (UK, GBP)",
                "Overkill (DE, EUR)",
                "Asphaltgold (DE, EUR)",
                "Urban Industry (UK, GBP)",
                "Footdistrict (ES, EUR)",
                "Patta (NL, EUR)",
                "Concepts CNCPTS (US, USD)",
                "Slam Jam (IT, EUR)",
                "One Block Down (IT, EUR)"
              ]
            },
            "default": [
              "kith-eu",
              "sneakersnstuff",
              "asphaltgold",
              "footdistrict"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Model names to find, for example \"Dunk\", \"New Balance 990\", \"adidas Samba\", \"Jordan 4\". A sneaker matches when all words of one keyword are in its name, brand or style code. Empty: all sneakers.",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only these brands, for example \"Nike\", \"adidas\", \"New Balance\", \"ASICS\". Empty: all brands.",
            "items": {
              "type": "string"
            }
          },
          "styleCodes": {
            "title": "Style codes",
            "type": "array",
            "description": "Track exact manufacturer style codes, for example \"DD1391-100\" (Nike), \"IE3437\" (adidas), \"U9060BLK\" (New Balance), \"1201A789-020\" (ASICS). Combined with keywords as OR.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop sneakers whose name has one of these, for example \"kids\", \"slide\", \"GS\".",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max sneakers",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Most sneakers to save in one run (all shops together). Changes are saved first.",
            "default": 100
          },
          "maxItemsPerShop": {
            "title": "Max sneakers per shop",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Most sneakers per shop. Empty: Max sneakers divided by the number of shops."
          },
          "maxPagesPerShop": {
            "title": "Max pages per shop",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Each page has 250 products of the shop's footwear collection, newest first in most shops. More pages find more matches for rare keywords but take longer.",
            "default": 8
          },
          "sizes": {
            "title": "Sizes",
            "type": "array",
            "description": "Only sneakers available in these sizes, and restock / sold out alerts only for them. Write the system: \"EU 42\", \"US 9\", \"UK 8\", \"EU 42 2/3\". A bare number from 30 up is EU, else US. Sizes are not converted between systems (it depends on the brand): add each system you care about.",
            "items": {
              "type": "string"
            }
          },
          "onlyInStock": {
            "title": "Only in stock",
            "type": "boolean",
            "description": "Only sneakers with at least one size in stock (in your sizes, if you set sizes).",
            "default": false
          },
          "onlyOnSale": {
            "title": "Only on sale",
            "type": "boolean",
            "description": "Only sneakers with a reduced price (old price shown by the shop).",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Min discount (%)",
            "minimum": 0,
            "maximum": 99,
            "type": "integer",
            "description": "Only sneakers with at least this discount, for example 30."
          },
          "minPriceEur": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price, converted to EUR for shops in GBP or USD."
          },
          "maxPriceEur": {
            "title": "Max price (EUR)",
            "minimum": 1,
            "type": "integer",
            "description": "Highest price, converted to EUR for shops in GBP or USD."
          },
          "trackChanges": {
            "title": "Track changes",
            "type": "boolean",
            "description": "Remember every sneaker between runs and report new releases, price drops and rises, sales starting and ending, restocks (with the sizes), sold out and removed. The first run saves the baseline. Schedule the Actor (for example every hour) to get alerts.",
            "default": true
          },
          "trackerName": {
            "title": "Tracker name",
            "type": "string",
            "description": "Name of this tracker, for example \"dunk-eu\". Runs with the same name compare with each other. Empty: a name made from your keywords, brands and style codes. Letters, numbers and dashes."
          },
          "onlyChanges": {
            "title": "Only changes",
            "type": "boolean",
            "description": "Save only sneakers that changed since the last run (new release, price drop, sale, restock, ...). Good for scheduled alerts.",
            "default": false
          },
          "maxRecheckPerShop": {
            "title": "Re-check tracked sneakers (per shop)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Tracked sneakers that were not on the pages read this run are checked one by one, so their changes (and removals) are still caught. They are only saved when they changed.",
            "default": 40
          },
          "compareAcrossShops": {
            "title": "Compare across shops",
            "type": "boolean",
            "description": "Group the same shoe (by style code) across shops: cheapest shop, price range in EUR, sizes in stock per shop. Saved in the COMPARISON record and as crossShop on each item.",
            "default": true
          },
          "includeStockX": {
            "title": "StockX resale price (coming soon)",
            "type": "boolean",
            "description": "Coming soon: StockX lowest ask and last sale for each style code. StockX blocks plain requests, so this switch does nothing yet and costs nothing. See the README.",
            "default": false
          },
          "includeZalando": {
            "title": "Zalando price (coming soon)",
            "type": "boolean",
            "description": "Coming soon: the Zalando price for each style code. Zalando search results do not show style codes, so exact matching is not reliable yet; this switch does nothing yet and costs nothing. See the README.",
            "default": false
          },
          "zalandoCountry": {
            "title": "Zalando country",
            "enum": [
              "de",
              "fr",
              "it",
              "es",
              "nl",
              "at",
              "be",
              "co.uk",
              "pl",
              "ch"
            ],
            "type": "string",
            "description": "Which Zalando site to check (for the coming-soon Zalando lookup).",
            "default": "de"
          },
          "maxResaleLookups": {
            "title": "Max resale lookups",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Most style codes to look up on StockX / Zalando per run (coming soon).",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy is recommended. With no group picked, shops use datacenter proxies and switch to RESIDENTIAL only if they block; StockX and Zalando use RESIDENTIAL.",
            "default": {
              "useApifyProxy": true
            }
          },
          "debugTier2": {
            "title": "Debug: save StockX / Zalando pages",
            "type": "boolean",
            "description": "Developer option: saves the first pages from StockX / Zalando in the key-value store.",
            "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}