{
  "data": {
    "id": "37MRgzu9wsaOALrOH",
    "actId": "rAtHpbmP3D6ZggkWJ",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-11-09T13:16:33.566Z",
    "finishedAt": "2026-11-09T13:16:39.138Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 5493,
      "runTimeSecs": 5.493,
      "computeUnits": 0.006103333333333333,
      "imageSizeBytes": 319020032
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Nike Scraper Input\",\n  \"description\": \"Search Nike.com, browse a curated catalog category, paste Nike search/category/product URLs, or fetch full product-page details by URL or style code.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch. `startUrls` auto-detects each pasted Nike search, category or product URL and overrides the other modes when provided.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"browseCategory\",\n        \"productDetails\",\n        \"startUrls\"\n      ],\n      \"enumTitles\": [\n        \"Search products by keyword\",\n        \"Browse a catalog category\",\n        \"Fetch full details by product URL or style code\",\n        \"Paste Nike search, category or product URLs\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search queries\",\n      \"type\": \"array\",\n      \"description\": \"One or more keywords, product names or style codes (e.g. `air max`, `dunk low`, `CW2288-111`). Used with mode=search.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [\n        \"air max\"\n      ],\n      \"prefill\": [\n        \"air max\"\n      ]\n    },\n    \"country\": {\n      \"title\": \"Marketplace / country\",\n      \"type\": \"string\",\n      \"description\": \"Nike storefront market for search, category browsing and non-prefixed URLs. Prices are returned in the marketplace's local currency.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"US\",\n        \"GB\",\n        \"DE\",\n        \"FR\",\n        \"JP\",\n        \"MX\",\n        \"ES\",\n        \"IT\",\n        \"NL\",\n        \"SE\",\n        \"KR\",\n        \"SG\",\n        \"TH\",\n        \"TW\",\n        \"ID\",\n        \"PH\",\n        \"MY\",\n        \"ZA\"\n      ],\n      \"enumTitles\": [\n        \"United States (USD)\",\n        \"United Kingdom (GBP)\",\n        \"Germany (EUR)\",\n        \"France (EUR)\",\n        \"Japan (JPY)\",\n        \"Mexico (MXN)\",\n        \"Spain (EUR)\",\n        \"Italy (EUR)\",\n        \"Netherlands (EUR)\",\n        \"Sweden (SEK)\",\n        \"South Korea (KRW)\",\n        \"Singapore (SGD)\",\n        \"Thailand (THB)\",\n        \"Taiwan (TWD)\",\n        \"Indonesia (IDR)\",\n        \"Philippines (PHP)\",\n        \"Malaysia (MYR)\",\n        \"South Africa (ZAR)\"\n      ],\n      \"default\": \"US\",\n      \"prefill\": \"US\"\n    },\n    \"category\": {\n      \"title\": \"Category (mode=browseCategory)\",\n      \"type\": \"string\",\n      \"description\": \"Curated Nike catalog category to browse. Works in every supported country; pass several categories by using `startUrls` with category links instead.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"accessoriesEquipment\",\n        \"acgShoes\",\n        \"babyToddlerShoes\",\n        \"bigKidsShoes\",\n        \"littleKidsShoes\",\n        \"mensBagsBackpacks\",\n        \"mensBasketballShoes\",\n        \"mensClothing\",\n        \"mensHatsVisors\",\n        \"mensHoodiesPullovers\",\n        \"mensJacketsVests\",\n        \"mensJordanShoes\",\n        \"mensLifestyleShoes\",\n        \"mensPantsTights\",\n        \"mensRunningShoes\",\n        \"mensSaleShoes\",\n        \"mensShoes\",\n        \"mensShorts\",\n        \"mensSoccerShoes\",\n        \"mensSocks\",\n        \"mensTrainingGymShoes\",\n        \"newMensShoes\",\n        \"newWomensShoes\",\n        \"sale\",\n        \"womensBagsBackpacks\",\n        \"womensBasketballShoes\",\n        \"womensClothing\",\n        \"womensHatsVisors\",\n        \"womensHoodiesPullovers\",\n        \"womensJacketsVests\",\n        \"womensJordanShoes\",\n        \"womensLifestyleShoes\",\n        \"womensPantsTights\",\n        \"womensRunningShoes\",\n        \"womensSaleShoes\",\n        \"womensShoes\",\n        \"womensShorts\",\n        \"womensSoccerShoes\",\n        \"womensSocks\",\n        \"womensTrainingGymShoes\"\n      ],\n      \"enumTitles\": [\n        \"Accessories & Equipment\",\n        \"ACG Shoes (Outdoor)\",\n        \"Baby & Toddler Shoes\",\n        \"Big Kids' Shoes\",\n        \"Little Kids' Shoes\",\n        \"Men's Bags & Backpacks\",\n        \"Men's Basketball Shoes\",\n        \"Men's Clothing\",\n        \"Men's Hats, Visors & Headbands\",\n        \"Men's Hoodies & Pullovers\",\n        \"Men's Jackets & Vests\",\n        \"Men's Jordan Shoes\",\n        \"Men's Lifestyle Shoes\",\n        \"Men's Pants & Tights\",\n        \"Men's Running Shoes\",\n        \"Men's Sale Shoes\",\n        \"Men's Shoes\",\n        \"Men's Shorts\",\n        \"Men's Soccer Shoes\",\n        \"Men's Socks\",\n        \"Men's Training & Gym Shoes\",\n        \"New: Men's Shoes\",\n        \"New: Women's Shoes\",\n        \"Sale (All)\",\n        \"Women's Bags & Backpacks\",\n        \"Women's Basketball Shoes\",\n        \"Women's Clothing\",\n        \"Women's Hats, Visors & Headbands\",\n        \"Women's Hoodies & Pullovers\",\n        \"Women's Jackets & Vests\",\n        \"Women's Jordan Shoes\",\n        \"Women's Lifestyle Shoes\",\n        \"Women's Pants & Tights\",\n        \"Women's Running Shoes\",\n        \"Women's Sale Shoes\",\n        \"Women's Shoes\",\n        \"Women's Shorts\",\n        \"Women's Soccer Shoes\",\n        \"Women's Socks\",\n        \"Women's Training & Gym Shoes\"\n      ]\n    },\n    \"startUrls\": {\n      \"title\": \"Nike search, category or product URLs\",\n      \"type\": \"array\",\n      \"description\": \"Paste any nike.com search (`/w?q=...`), category (`/w/...`) or product (`/t/...` or `/u/...`) URLs. Locale-prefixed links such as `nike.com/gb/t/...` set the marketplace automatically. When supplied, these URLs override `mode`.\",\n      \"editor\": \"requestListSources\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"url\": {\n            \"type\": \"string\",\n            \"title\": \"URL\",\n            \"description\": \"A nike.com search, category or product URL.\"\n          }\n        },\n        \"required\": [\n          \"url\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"productUrls\": {\n      \"title\": \"Product URLs (mode=productDetails)\",\n      \"type\": \"array\",\n      \"description\": \"Full Nike.com product page URLs, e.g. `https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111`. `/u/` Nike By You URLs are accepted too.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"styleCodes\": {\n      \"title\": \"Style codes (mode=productDetails)\",\n      \"type\": \"array\",\n      \"description\": \"Nike style or style-color codes, e.g. `CW2288-111` or `CW2288`. The actor resolves each code to its Nike product page and returns full detail. For Nike By You products use the 10-digit style-color code (e.g. `6484638358`).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"minPrice\": {\n      \"title\": \"Min price\",\n      \"type\": \"integer\",\n      \"description\": \"Drop products priced below this amount (current price, in the marketplace's currency).\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"maxPrice\": {\n      \"title\": \"Max price\",\n      \"type\": \"integer\",\n      \"description\": \"Drop products priced above this amount (current price, in the marketplace's currency).\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"minDiscount\": {\n      \"title\": \"Minimum discount %\",\n      \"type\": \"integer\",\n      \"description\": \"Keep only products discounted by at least this percentage. 0 disables the filter.\",\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"onSaleOnly\": {\n      \"title\": \"On sale only\",\n      \"type\": \"boolean\",\n      \"description\": \"Only emit products with an active discount.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeAllColorways\": {\n      \"title\": \"Include all colorways\",\n      \"type\": \"boolean\",\n      \"description\": \"By default only the representative colorway shown on Nike's grid is emitted per style. Enable to emit every available colorway as its own record, each with its own real price, color, image and product URL.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeProductDetails\": {\n      \"title\": \"Add product-page details to listings\",\n      \"type\": \"boolean\",\n      \"description\": \"For search, category and URL modes, fetch each listed product's detail page and add description, features, sizes, stock, images and all colorways. Adds one HTTP request per emitted record.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeReviews\": {\n      \"title\": \"Include review summary\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the product's rating, review count, AI review summary and the three most recent reviews. Applies to product details, or to listings when `includeProductDetails` is enabled.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"gender\": {\n      \"title\": \"Gender\",\n      \"type\": \"string\",\n      \"description\": \"Filter to a single gender facet in search and pasted search URLs. Not supported by Nike's API for country=TH or TW; ignored there.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"ANY\",\n        \"MEN\",\n        \"WOMEN\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Men\",\n        \"Women\"\n      ],\n      \"default\": \"ANY\",\n      \"prefill\": \"ANY\"\n    },\n    \"productType\": {\n      \"title\": \"Product type\",\n      \"type\": \"string\",\n      \"description\": \"Filter to a single Nike product type.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"ANY\",\n        \"FOOTWEAR\",\n        \"APPAREL\",\n        \"ACCESSORIES\",\n        \"EQUIPMENT\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Footwear\",\n        \"Apparel\",\n        \"Accessories\",\n        \"Equipment\"\n      ],\n      \"default\": \"ANY\",\n      \"prefill\": \"ANY\"\n    },\n    \"attributeFilter\": {\n      \"title\": \"Featured attribute\",\n      \"type\": \"string\",\n      \"description\": \"Keep only products carrying a specific Nike merchandising tag. Applies to search, category and URL modes.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"ANY\",\n        \"NEW\",\n        \"COMING_SOON\",\n        \"BEST_SELLER\",\n        \"SUSTAINABLE_MATERIALS\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Just In (new)\",\n        \"Coming Soon\",\n        \"Best Seller\",\n        \"Sustainable Materials\"\n      ],\n      \"default\": \"ANY\",\n      \"prefill\": \"ANY\"\n    },\n    \"filters\": {\n      \"title\": \"Nike facet filters\",\n      \"type\": \"array\",\n      \"description\": \"Optional Nike facet labels, exactly as shown in the site's filter panel. Use `Group: Value` for an exact group, e.g. `Sports: Running`, `Color: Black`, `Brand: Nike`, `Width: Wide`, `Size: 10`, or a bare value such as `Running`. Unknown labels are skipped with a log warning.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"sortBy\": {\n      \"title\": \"Sort by\",\n      \"type\": \"string\",\n      \"description\": \"Order results. Nike's public wall API has no reliable server-side sort, so the actor sorts the fetched records locally.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"featured\",\n        \"newest\",\n        \"priceLowToHigh\",\n        \"priceHighToLow\",\n        \"discountHighToLow\"\n      ],\n      \"enumTitles\": [\n        \"Featured (Nike's default order)\",\n        \"Newest\",\n        \"Price: Low to High\",\n        \"Price: High to Low\",\n        \"Discount: High to Low\"\n      ],\n      \"default\": \"featured\",\n      \"prefill\": \"featured\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted records across all queries, categories and URLs.\",\n      \"minimum\": 1,\n      \"maximum\": 5000,\n      \"default\": 24,\n      \"prefill\": 2\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Nike Product Catalog, Colorway & Price Scraper\n\nPull Nike.com product data straight from Nike's own public catalog feeds. Search by keyword or style code, browse 40 curated categories in 18 marketplaces, paste any Nike search/category/product URL, or ask for full product pages with size stock, all colorways, images and review summaries. No account, cookies, API key or proxy setup is required.\n\n## Modes\n\n| Mode | What it does |\n|---|---|\n| `search` | Run one or more keyword searches (`air max`, `dunk low`, `CW2288-111`) against a chosen marketplace. |\n| `browseCategory` | Walk one of 40 curated catalog categories: men's, women's and kids' shoes, clothing, accessories, Jordan, running, basketball, soccer, sale and more. |\n| `productDetails` | Fetch full detail for product URLs or bare style/style-color codes. Both `/t/` product pages and `/u/` Nike By You pages are accepted. |\n| `startUrls` | Paste Nike search (`/w?q=...`), category (`/w/...`) or product (`/t/...`, `/u/...`) links and the actor routes each one automatically. Locale prefixes such as `/gb/` set the marketplace. |\n\n`startUrls` takes precedence over `mode` when non-empty, so a mixed list of search, category and product links works in one run.\n\n## Inputs\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | select | `search` | `search` / `browseCategory` / `productDetails` / `startUrls`. |\n| `searchQueries` | string list | `[\"air max\"]` | Keywords, product names or style codes; one search task per entry. |\n| `country` | select | `US` | US, GB, DE, FR, JP, MX, ES, IT, NL, SE, KR, SG, TH, TW, ID, PH, MY, ZA. Applies to search, category and non-prefixed URLs. |\n| `category` | select | – | Curated category for `browseCategory`. Works in every supported country. |\n| `startUrls` | URL list | `[]` | Nike search, category or product links; overrides `mode`. |\n| `productUrls` | string list | `[]` | Full product-page URLs for `productDetails`. |\n| `styleCodes` | string list | `[]` | Style or style-color codes such as `CW2288-111` or `CW2288`. For Nike By You products use the 10-digit style-color code (e.g. `6484638358`). |\n| `minPrice` / `maxPrice` | integer | – | Keep products inside a price range in the marketplace's currency. |\n| `minDiscount` | integer | `0` | Keep products discounted by at least this percentage. |\n| `onSaleOnly` | boolean | `false` | Only emit products with an active discount. |\n| `includeAllColorways` | boolean | `false` | Emit every colorway as its own record instead of one representative card per style. |\n| `includeProductDetails` | boolean | `false` | Enrich listing records with detail-page data (description, sizes, stock, images, all colorways). |\n| `includeReviews` | boolean | `false` | Add rating, review count, review summary and the three most recent reviews. Requires product-detail data. |\n| `gender` | select | `ANY` | Men / Women facet for search and pasted search URLs. Nike rejects this facet for TH and TW, so it is skipped there. |\n| `productType` | select | `ANY` | Footwear / Apparel / Accessories / Equipment. |\n| `attributeFilter` | select | `ANY` | Just In, Coming Soon, Best Seller or Sustainable Materials. |\n| `filters` | string list | `[]` | Nike's own facet labels, e.g. `Sports: Running`, `Color: Black`, `Brand: Nike`, `Width: Wide`, `Size: 10`. Resolved against the live facet panel for each search/category. |\n| `sortBy` | select | `featured` | Featured, Newest, Price low→high, Price high→low, Discount high→low. |\n| `maxItems` | integer | `24` | Hard cap across all queries, categories and URLs (1–5000). |\n\nOlder task inputs are still accepted: `searchQuery`/`query`/`queries`, `categories`, `startUrl`, `productUrl`/`urls`, `styleColors`/`styleCode`/`sku`/`skus`, `maxProducts`/`maxResults`/`maxResultsPerScrape`/`results_wanted`/`max_items`/`limit`, `marketplace`/`market`, `sort`, `onSale`, `allColorways`, `audience`, `product_type`, `attribute`, `facets`/`filter`/`facet`, `includeDetails`/`fetchProductDetails`/`fetchDetails`/`scrapeProductDetails`, `reviews` and `scrapeMode` are mapped in code. They are intentionally not shown in the input form.\n\n## Output fields\n\nListing records carry `recordType`, `sourceUrl`, `scrapedAt`, `marketplace`, `language` and the query/category/URL that produced them (`sourceQuery`). Product-detail records carry `recordType`, `sourceUrl`, `scrapedAt` and `styleColor`.\n\n### Listing records (`search`, `browseCategory`, `startUrls`)\n\n- Identifiers: `productCode`, `styleCode`, `colorCode`, `styleGroupId`, `globalProductId`, `internalPid`, `merchProductId`\n- Copy: `title`, `subtitle`, `fullTitle`\n- Product type: `productType`, `productSubType`, `isCustomizable`\n- Color: `colorLabel`, `colorHex`, `colorDescription`, `colorwayCount` (with `includeProductDetails`, this matches the length of the detail `colorways[]`; otherwise it is the number of buyable colorways in Nike's grid grouping)\n- Price: `currentPrice`, `initialPrice`, `currency`, `discountPercentage`, `onSale`, `employeePrice`, `employeeDiscountPercentage`\n- Media: `imageUrl`, `portraitImageUrl`\n- Merchandising: `badgeLabel`, `featuredAttributes`, `isNew`, `isComingSoon`, `isBestSeller`, `isSustainableMaterials`, `newUntilDate`, `promotionTitle`\n- Links: `productUrl`, `sourceUrl`\n\n### Product-detail records\n\nAll listing fields that Nike publishes on the product page, plus:\n\n- `styleColor`, `pdpUrl`, `canonicalUrl`\n- `description`, `featuresAndBenefits`, `productDetails`\n- `brands`, `genders`, `sportTags`, `taxonomyProductTypes`, `taxonomy`\n- `sizes` with `label`, `localizedLabel`, `status`, `merchSkuId`, `gtin`\n- `inStock`, `availableSizeCount`\n- `images` (up to 12), `imageUrl`\n- `colorways` with each color's `styleColor`, `colorCode`, `colorDescription`, `imageUrl`, `portraitImageUrl`, `productUrl`, `statusModifier`\n- `colorwayCount`\n- `availabilityDate`, `isLaunchProduct`, `consumerReleaseType`, `statusModifier`\n- `badge`, `featuredAttributes`, `isNBY`, `isMemberProduct`, `netQuantity`, `manufacturingCountriesOfOrigin`\n- `fitRecommendation`, `sizeChartUrl`, `isSustainableMaterials`\n\n### Review fields (when `includeReviews=true`)\n\n`averageRating`, `reviewCount`, `averageSizeRating`, `averageComfortRating`, `reviewSummary`, and `reviews[]` with `rating`, `title`, `text`, `author`, `createdAt`, `verifiedPurchase`, `purchasedFrom`.\n\nEmpty values are omitted at every depth. A field is present only when Nike actually publishes it for that product.\n\n## Examples\n\nSearch two keywords, sort by price and keep the 60 cheapest matches:\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"air max\", \"pegasus\"],\n  \"country\": \"US\",\n  \"sortBy\": \"priceLowToHigh\",\n  \"maxItems\": 60\n}\n```\n\nBrowse the UK men's running category and enrich each listing with sizes and stock:\n\n```json\n{\n  \"mode\": \"browseCategory\",\n  \"category\": \"mensRunningShoes\",\n  \"country\": \"GB\",\n  \"includeProductDetails\": true,\n  \"maxItems\": 40\n}\n```\n\nFetch two products by URL and one by style code, with colorways and reviews:\n\n```json\n{\n  \"mode\": \"productDetails\",\n  \"productUrls\": [\n    \"https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111\",\n    \"https://www.nike.com/u/custom-air-max-95-big-bubble-by-you-10002422/6484638358\"\n  ],\n  \"styleCodes\": [\"CT8529-108\"],\n  \"includeReviews\": true\n}\n```\n\nProcess a mixed list of saved Nike links:\n\n```json\n{\n  \"mode\": \"startUrls\",\n  \"startUrls\": [\n    {\"url\": \"https://www.nike.com/w?q=jordan\"},\n    {\"url\": \"https://www.nike.com/gb/w/mens-sale-shoes-3yaepznik1zy7ok\"},\n    {\"url\": \"https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111\"}\n  ],\n  \"maxItems\": 100\n}\n```\n\nUse Nike's own facets to narrow a category to one sport, colour and size:\n\n```json\n{\n  \"mode\": \"browseCategory\",\n  \"category\": \"mensShoes\",\n  \"filters\": [\"Sports: Running\", \"Color: Black\", \"Size: 10\"],\n  \"maxItems\": 40\n}\n```\n\nTrack discounted footwear:\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"running shoes\"],\n  \"onSaleOnly\": true,\n  \"minDiscount\": 20,\n  \"productType\": \"FOOTWEAR\",\n  \"sortBy\": \"discountHighToLow\",\n  \"maxItems\": 50\n}\n```\n\n## What people use it for\n\n- Price and discount monitoring across Nike's catalog and 18 storefronts\n- Colorway and assortment tracking for sneaker releases\n- Size and stock checks before buying or restocking\n- Building product feeds for comparison pages and affiliate sites\n- Review and rating snapshots for product research\n\n## Data source and reliability\n\nThe actor reads the same public APIs that power Nike's own search, category and product pages. It does not log in, store cookies, solve challenges or depend on a proxy. Requests are retried on 403/429/5xx with backoff, and the run reports a clean empty result or a clear status message instead of inventing rows.\n\nNike's wall API has no working public sort parameter, so `sortBy` is applied to the fetched records locally. For very large categories, raise `maxItems` and let the actor page through the source until it runs out or hits the cap.\n\n## FAQ\n\n**Do I need cookies, an account or a proxy?** No. Every supported field is public and cookieless. The actor never asks for credentials.\n\n**Why does `browseCategory` now work outside the US?** The curated category paths are stable US catalog paths, and Nike's public wall API accepts them with any supported marketplace/language pair. Prices and URLs come back localized.\n\n**What is the difference between `productCode` and `styleCode`?** `productCode` identifies a single style-color (for example `CW2288-111`); `styleCode` is the style family (`CW2288`) shared by its colorways.\n\n**How do I get every colorway?** Set `includeAllColorways=true` in listing modes, or use `productDetails` where `colorways` is always included.\n\n**How fresh is stock data?** `productDetails` reflects the product page at scrape time, including per-size `ACTIVE`/`OUT_OF_STOCK` status and the available-size count. Nike can change stock between requests.\n\n**Can I search by a style code or style-color code?** Yes. Put it in `searchQueries` or `styleCodes`; both resolve through Nike's public search and return the matching product. Nike By You pages are matched by their 10-digit style-color code (for example `6484638358`), not by the shorter style code shown on the page.\n\n**Why are only three reviews returned?** Nike's public review endpoint exposes a rating summary, an AI summary and the three most recent reviews per style. The separate review actor in the Store covers deep review pagination.\n\n**Why is a field missing from one record?** Nike does not publish every attribute for every product (for example, a size chart on an accessory). Empty values are omitted rather than pushed as null or sentinel text.\n\n**What happens when a filter leaves nothing?** The run succeeds with an empty dataset and a status message explaining that no records matched; it never fabricates a placeholder row.\n\n**Does the daily test hit the cheapest path?** Yes. The saved prefill is a two-item `air max` search with detail and review enrichment off.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "nike-product-catalog-colorway-and-price-scraper",
      "title": "Nike Product Catalog, Colorway & Price Scraper",
      "description": "Search Nike.com by keyword or paste any Nike search, category or product URL. Browse 40 shoe and clothing categories in 18 marketplaces, or fetch full product detail by URL or style code: size stock, every colorway, images and review summaries.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Nike Product Catalog, Colorway & Price Scraper\n\nPull Nike.com product data straight from Nike's own public catalog feeds. Search by keyword or style code, browse 40 curated categories in 18 marketplaces, paste any Nike search/category/product URL, or ask for full product pages with size stock, all colorways, images and review summaries. No account, cookies, API key or proxy setup is required.\n\n## Modes\n\n| Mode | What it does |\n|---|---|\n| `search` | Run one or more keyword searches (`air max`, `dunk low`, `CW2288-111`) against a chosen marketplace. |\n| `browseCategory` | Walk one of 40 curated catalog categories: men's, women's and kids' shoes, clothing, accessories, Jordan, running, basketball, soccer, sale and more. |\n| `productDetails` | Fetch full detail for product URLs or bare style/style-color codes. Both `/t/` product pages and `/u/` Nike By You pages are accepted. |\n| `startUrls` | Paste Nike search (`/w?q=...`), category (`/w/...`) or product (`/t/...`, `/u/...`) links and the actor routes each one automatically. Locale prefixes such as `/gb/` set the marketplace. |\n\n`startUrls` takes precedence over `mode` when non-empty, so a mixed list of search, category and product links works in one run.\n\n## Inputs\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | select | `search` | `search` / `browseCategory` / `productDetails` / `startUrls`. |\n| `searchQueries` | string list | `[\"air max\"]` | Keywords, product names or style codes; one search task per entry. |\n| `country` | select | `US` | US, GB, DE, FR, JP, MX, ES, IT, NL, SE, KR, SG, TH, TW, ID, PH, MY, ZA. Applies to search, category and non-prefixed URLs. |\n| `category` | select | – | Curated category for `browseCategory`. Works in every supported country. |\n| `startUrls` | URL list | `[]` | Nike search, category or product links; overrides `mode`. |\n| `productUrls` | string list | `[]` | Full product-page URLs for `productDetails`. |\n| `styleCodes` | string list | `[]` | Style or style-color codes such as `CW2288-111` or `CW2288`. For Nike By You products use the 10-digit style-color code (e.g. `6484638358`). |\n| `minPrice` / `maxPrice` | integer | – | Keep products inside a price range in the marketplace's currency. |\n| `minDiscount` | integer | `0` | Keep products discounted by at least this percentage. |\n| `onSaleOnly` | boolean | `false` | Only emit products with an active discount. |\n| `includeAllColorways` | boolean | `false` | Emit every colorway as its own record instead of one representative card per style. |\n| `includeProductDetails` | boolean | `false` | Enrich listing records with detail-page data (description, sizes, stock, images, all colorways). |\n| `includeReviews` | boolean | `false` | Add rating, review count, review summary and the three most recent reviews. Requires product-detail data. |\n| `gender` | select | `ANY` | Men / Women facet for search and pasted search URLs. Nike rejects this facet for TH and TW, so it is skipped there. |\n| `productType` | select | `ANY` | Footwear / Apparel / Accessories / Equipment. |\n| `attributeFilter` | select | `ANY` | Just In, Coming Soon, Best Seller or Sustainable Materials. |\n| `filters` | string list | `[]` | Nike's own facet labels, e.g. `Sports: Running`, `Color: Black`, `Brand: Nike`, `Width: Wide`, `Size: 10`. Resolved against the live facet panel for each search/category. |\n| `sortBy` | select | `featured` | Featured, Newest, Price low→high, Price high→low, Discount high→low. |\n| `maxItems` | integer | `24` | Hard cap across all queries, categories and URLs (1–5000). |\n\nOlder task inputs are still accepted: `searchQuery`/`query`/`queries`, `categories`, `startUrl`, `productUrl`/`urls`, `styleColors`/`styleCode`/`sku`/`skus`, `maxProducts`/`maxResults`/`maxResultsPerScrape`/`results_wanted`/`max_items`/`limit`, `marketplace`/`market`, `sort`, `onSale`, `allColorways`, `audience`, `product_type`, `attribute`, `facets`/`filter`/`facet`, `includeDetails`/`fetchProductDetails`/`fetchDetails`/`scrapeProductDetails`, `reviews` and `scrapeMode` are mapped in code. They are intentionally not shown in the input form.\n\n## Output fields\n\nListing records carry `recordType`, `sourceUrl`, `scrapedAt`, `marketplace`, `language` and the query/category/URL that produced them (`sourceQuery`). Product-detail records carry `recordType`, `sourceUrl`, `scrapedAt` and `styleColor`.\n\n### Listing records (`search`, `browseCategory`, `startUrls`)\n\n- Identifiers: `productCode`, `styleCode`, `colorCode`, `styleGroupId`, `globalProductId`, `internalPid`, `merchProductId`\n- Copy: `title`, `subtitle`, `fullTitle`\n- Product type: `productType`, `productSubType`, `isCustomizable`\n- Color: `colorLabel`, `colorHex`, `colorDescription`, `colorwayCount` (with `includeProductDetails`, this matches the length of the detail `colorways[]`; otherwise it is the number of buyable colorways in Nike's grid grouping)\n- Price: `currentPrice`, `initialPrice`, `currency`, `discountPercentage`, `onSale`, `employeePrice`, `employeeDiscountPercentage`\n- Media: `imageUrl`, `portraitImageUrl`\n- Merchandising: `badgeLabel`, `featuredAttributes`, `isNew`, `isComingSoon`, `isBestSeller`, `isSustainableMaterials`, `newUntilDate`, `promotionTitle`\n- Links: `productUrl`, `sourceUrl`\n\n### Product-detail records\n\nAll listing fields that Nike publishes on the product page, plus:\n\n- `styleColor`, `pdpUrl`, `canonicalUrl`\n- `description`, `featuresAndBenefits`, `productDetails`\n- `brands`, `genders`, `sportTags`, `taxonomyProductTypes`, `taxonomy`\n- `sizes` with `label`, `localizedLabel`, `status`, `merchSkuId`, `gtin`\n- `inStock`, `availableSizeCount`\n- `images` (up to 12), `imageUrl`\n- `colorways` with each color's `styleColor`, `colorCode`, `colorDescription`, `imageUrl`, `portraitImageUrl`, `productUrl`, `statusModifier`\n- `colorwayCount`\n- `availabilityDate`, `isLaunchProduct`, `consumerReleaseType`, `statusModifier`\n- `badge`, `featuredAttributes`, `isNBY`, `isMemberProduct`, `netQuantity`, `manufacturingCountriesOfOrigin`\n- `fitRecommendation`, `sizeChartUrl`, `isSustainableMaterials`\n\n### Review fields (when `includeReviews=true`)\n\n`averageRating`, `reviewCount`, `averageSizeRating`, `averageComfortRating`, `reviewSummary`, and `reviews[]` with `rating`, `title`, `text`, `author`, `createdAt`, `verifiedPurchase`, `purchasedFrom`.\n\nEmpty values are omitted at every depth. A field is present only when Nike actually publishes it for that product.\n\n## Examples\n\nSearch two keywords, sort by price and keep the 60 cheapest matches:\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"air max\", \"pegasus\"],\n  \"country\": \"US\",\n  \"sortBy\": \"priceLowToHigh\",\n  \"maxItems\": 60\n}\n```\n\nBrowse the UK men's running category and enrich each listing with sizes and stock:\n\n```json\n{\n  \"mode\": \"browseCategory\",\n  \"category\": \"mensRunningShoes\",\n  \"country\": \"GB\",\n  \"includeProductDetails\": true,\n  \"maxItems\": 40\n}\n```\n\nFetch two products by URL and one by style code, with colorways and reviews:\n\n```json\n{\n  \"mode\": \"productDetails\",\n  \"productUrls\": [\n    \"https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111\",\n    \"https://www.nike.com/u/custom-air-max-95-big-bubble-by-you-10002422/6484638358\"\n  ],\n  \"styleCodes\": [\"CT8529-108\"],\n  \"includeReviews\": true\n}\n```\n\nProcess a mixed list of saved Nike links:\n\n```json\n{\n  \"mode\": \"startUrls\",\n  \"startUrls\": [\n    {\"url\": \"https://www.nike.com/w?q=jordan\"},\n    {\"url\": \"https://www.nike.com/gb/w/mens-sale-shoes-3yaepznik1zy7ok\"},\n    {\"url\": \"https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111\"}\n  ],\n  \"maxItems\": 100\n}\n```\n\nUse Nike's own facets to narrow a category to one sport, colour and size:\n\n```json\n{\n  \"mode\": \"browseCategory\",\n  \"category\": \"mensShoes\",\n  \"filters\": [\"Sports: Running\", \"Color: Black\", \"Size: 10\"],\n  \"maxItems\": 40\n}\n```\n\nTrack discounted footwear:\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"running shoes\"],\n  \"onSaleOnly\": true,\n  \"minDiscount\": 20,\n  \"productType\": \"FOOTWEAR\",\n  \"sortBy\": \"discountHighToLow\",\n  \"maxItems\": 50\n}\n```\n\n## What people use it for\n\n- Price and discount monitoring across Nike's catalog and 18 storefronts\n- Colorway and assortment tracking for sneaker releases\n- Size and stock checks before buying or restocking\n- Building product feeds for comparison pages and affiliate sites\n- Review and rating snapshots for product research\n\n## Data source and reliability\n\nThe actor reads the same public APIs that power Nike's own search, category and product pages. It does not log in, store cookies, solve challenges or depend on a proxy. Requests are retried on 403/429/5xx with backoff, and the run reports a clean empty result or a clear status message instead of inventing rows.\n\nNike's wall API has no working public sort parameter, so `sortBy` is applied to the fetched records locally. For very large categories, raise `maxItems` and let the actor page through the source until it runs out or hits the cap.\n\n## FAQ\n\n**Do I need cookies, an account or a proxy?** No. Every supported field is public and cookieless. The actor never asks for credentials.\n\n**Why does `browseCategory` now work outside the US?** The curated category paths are stable US catalog paths, and Nike's public wall API accepts them with any supported marketplace/language pair. Prices and URLs come back localized.\n\n**What is the difference between `productCode` and `styleCode`?** `productCode` identifies a single style-color (for example `CW2288-111`); `styleCode` is the style family (`CW2288`) shared by its colorways.\n\n**How do I get every colorway?** Set `includeAllColorways=true` in listing modes, or use `productDetails` where `colorways` is always included.\n\n**How fresh is stock data?** `productDetails` reflects the product page at scrape time, including per-size `ACTIVE`/`OUT_OF_STOCK` status and the available-size count. Nike can change stock between requests.\n\n**Can I search by a style code or style-color code?** Yes. Put it in `searchQueries` or `styleCodes`; both resolve through Nike's public search and return the matching product. Nike By You pages are matched by their 10-digit style-color code (for example `6484638358`), not by the shorter style code shown on the page.\n\n**Why are only three reviews returned?** Nike's public review endpoint exposes a rating summary, an AI summary and the three most recent reviews per style. The separate review actor in the Store covers deep review pagination.\n\n**Why is a field missing from one record?** Nike does not publish every attribute for every product (for example, a size chart on an accessory). Empty values are omitted rather than pushed as null or sentinel text.\n\n**What happens when a filter leaves nothing?** The run succeeds with an empty dataset and a status message explaining that no records matched; it never fabricates a placeholder row.\n\n**Does the daily test hit the cheapest path?** Yes. The saved prefill is a two-item `air max` search with detail and review enrichment off.\n",
      "input": {
        "title": "Nike Scraper Input",
        "description": "Search Nike.com, browse a curated catalog category, paste Nike search/category/product URLs, or fetch full product-page details by URL or style code.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch. `startUrls` auto-detects each pasted Nike search, category or product URL and overrides the other modes when provided.",
            "editor": "select",
            "enum": [
              "search",
              "browseCategory",
              "productDetails",
              "startUrls"
            ],
            "enumTitles": [
              "Search products by keyword",
              "Browse a catalog category",
              "Fetch full details by product URL or style code",
              "Paste Nike search, category or product URLs"
            ],
            "default": "search",
            "prefill": "search"
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "One or more keywords, product names or style codes (e.g. `air max`, `dunk low`, `CW2288-111`). Used with mode=search.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [
              "air max"
            ],
            "prefill": [
              "air max"
            ]
          },
          "country": {
            "title": "Marketplace / country",
            "type": "string",
            "description": "Nike storefront market for search, category browsing and non-prefixed URLs. Prices are returned in the marketplace's local currency.",
            "editor": "select",
            "enum": [
              "US",
              "GB",
              "DE",
              "FR",
              "JP",
              "MX",
              "ES",
              "IT",
              "NL",
              "SE",
              "KR",
              "SG",
              "TH",
              "TW",
              "ID",
              "PH",
              "MY",
              "ZA"
            ],
            "enumTitles": [
              "United States (USD)",
              "United Kingdom (GBP)",
              "Germany (EUR)",
              "France (EUR)",
              "Japan (JPY)",
              "Mexico (MXN)",
              "Spain (EUR)",
              "Italy (EUR)",
              "Netherlands (EUR)",
              "Sweden (SEK)",
              "South Korea (KRW)",
              "Singapore (SGD)",
              "Thailand (THB)",
              "Taiwan (TWD)",
              "Indonesia (IDR)",
              "Philippines (PHP)",
              "Malaysia (MYR)",
              "South Africa (ZAR)"
            ],
            "default": "US",
            "prefill": "US"
          },
          "category": {
            "title": "Category (mode=browseCategory)",
            "type": "string",
            "description": "Curated Nike catalog category to browse. Works in every supported country; pass several categories by using `startUrls` with category links instead.",
            "editor": "select",
            "enum": [
              "accessoriesEquipment",
              "acgShoes",
              "babyToddlerShoes",
              "bigKidsShoes",
              "littleKidsShoes",
              "mensBagsBackpacks",
              "mensBasketballShoes",
              "mensClothing",
              "mensHatsVisors",
              "mensHoodiesPullovers",
              "mensJacketsVests",
              "mensJordanShoes",
              "mensLifestyleShoes",
              "mensPantsTights",
              "mensRunningShoes",
              "mensSaleShoes",
              "mensShoes",
              "mensShorts",
              "mensSoccerShoes",
              "mensSocks",
              "mensTrainingGymShoes",
              "newMensShoes",
              "newWomensShoes",
              "sale",
              "womensBagsBackpacks",
              "womensBasketballShoes",
              "womensClothing",
              "womensHatsVisors",
              "womensHoodiesPullovers",
              "womensJacketsVests",
              "womensJordanShoes",
              "womensLifestyleShoes",
              "womensPantsTights",
              "womensRunningShoes",
              "womensSaleShoes",
              "womensShoes",
              "womensShorts",
              "womensSoccerShoes",
              "womensSocks",
              "womensTrainingGymShoes"
            ],
            "enumTitles": [
              "Accessories & Equipment",
              "ACG Shoes (Outdoor)",
              "Baby & Toddler Shoes",
              "Big Kids' Shoes",
              "Little Kids' Shoes",
              "Men's Bags & Backpacks",
              "Men's Basketball Shoes",
              "Men's Clothing",
              "Men's Hats, Visors & Headbands",
              "Men's Hoodies & Pullovers",
              "Men's Jackets & Vests",
              "Men's Jordan Shoes",
              "Men's Lifestyle Shoes",
              "Men's Pants & Tights",
              "Men's Running Shoes",
              "Men's Sale Shoes",
              "Men's Shoes",
              "Men's Shorts",
              "Men's Soccer Shoes",
              "Men's Socks",
              "Men's Training & Gym Shoes",
              "New: Men's Shoes",
              "New: Women's Shoes",
              "Sale (All)",
              "Women's Bags & Backpacks",
              "Women's Basketball Shoes",
              "Women's Clothing",
              "Women's Hats, Visors & Headbands",
              "Women's Hoodies & Pullovers",
              "Women's Jackets & Vests",
              "Women's Jordan Shoes",
              "Women's Lifestyle Shoes",
              "Women's Pants & Tights",
              "Women's Running Shoes",
              "Women's Sale Shoes",
              "Women's Shoes",
              "Women's Shorts",
              "Women's Soccer Shoes",
              "Women's Socks",
              "Women's Training & Gym Shoes"
            ]
          },
          "startUrls": {
            "title": "Nike search, category or product URLs",
            "type": "array",
            "description": "Paste any nike.com search (`/w?q=...`), category (`/w/...`) or product (`/t/...` or `/u/...`) URLs. Locale-prefixed links such as `nike.com/gb/t/...` set the marketplace automatically. When supplied, these URLs override `mode`.",
            "editor": "requestListSources",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL",
                  "description": "A nike.com search, category or product URL."
                }
              },
              "required": [
                "url"
              ]
            },
            "default": [],
            "prefill": []
          },
          "productUrls": {
            "title": "Product URLs (mode=productDetails)",
            "type": "array",
            "description": "Full Nike.com product page URLs, e.g. `https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111`. `/u/` Nike By You URLs are accepted too.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "styleCodes": {
            "title": "Style codes (mode=productDetails)",
            "type": "array",
            "description": "Nike style or style-color codes, e.g. `CW2288-111` or `CW2288`. The actor resolves each code to its Nike product page and returns full detail. For Nike By You products use the 10-digit style-color code (e.g. `6484638358`).",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "minPrice": {
            "title": "Min price",
            "type": "integer",
            "description": "Drop products priced below this amount (current price, in the marketplace's currency).",
            "minimum": 0,
            "maximum": 100000
          },
          "maxPrice": {
            "title": "Max price",
            "type": "integer",
            "description": "Drop products priced above this amount (current price, in the marketplace's currency).",
            "minimum": 0,
            "maximum": 100000
          },
          "minDiscount": {
            "title": "Minimum discount %",
            "type": "integer",
            "description": "Keep only products discounted by at least this percentage. 0 disables the filter.",
            "minimum": 0,
            "maximum": 100,
            "default": 0,
            "prefill": 0
          },
          "onSaleOnly": {
            "title": "On sale only",
            "type": "boolean",
            "description": "Only emit products with an active discount.",
            "default": false,
            "prefill": false
          },
          "includeAllColorways": {
            "title": "Include all colorways",
            "type": "boolean",
            "description": "By default only the representative colorway shown on Nike's grid is emitted per style. Enable to emit every available colorway as its own record, each with its own real price, color, image and product URL.",
            "default": false,
            "prefill": false
          },
          "includeProductDetails": {
            "title": "Add product-page details to listings",
            "type": "boolean",
            "description": "For search, category and URL modes, fetch each listed product's detail page and add description, features, sizes, stock, images and all colorways. Adds one HTTP request per emitted record.",
            "default": false,
            "prefill": false
          },
          "includeReviews": {
            "title": "Include review summary",
            "type": "boolean",
            "description": "Add the product's rating, review count, AI review summary and the three most recent reviews. Applies to product details, or to listings when `includeProductDetails` is enabled.",
            "default": false,
            "prefill": false
          },
          "gender": {
            "title": "Gender",
            "type": "string",
            "description": "Filter to a single gender facet in search and pasted search URLs. Not supported by Nike's API for country=TH or TW; ignored there.",
            "editor": "select",
            "enum": [
              "ANY",
              "MEN",
              "WOMEN"
            ],
            "enumTitles": [
              "Any",
              "Men",
              "Women"
            ],
            "default": "ANY",
            "prefill": "ANY"
          },
          "productType": {
            "title": "Product type",
            "type": "string",
            "description": "Filter to a single Nike product type.",
            "editor": "select",
            "enum": [
              "ANY",
              "FOOTWEAR",
              "APPAREL",
              "ACCESSORIES",
              "EQUIPMENT"
            ],
            "enumTitles": [
              "Any",
              "Footwear",
              "Apparel",
              "Accessories",
              "Equipment"
            ],
            "default": "ANY",
            "prefill": "ANY"
          },
          "attributeFilter": {
            "title": "Featured attribute",
            "type": "string",
            "description": "Keep only products carrying a specific Nike merchandising tag. Applies to search, category and URL modes.",
            "editor": "select",
            "enum": [
              "ANY",
              "NEW",
              "COMING_SOON",
              "BEST_SELLER",
              "SUSTAINABLE_MATERIALS"
            ],
            "enumTitles": [
              "Any",
              "Just In (new)",
              "Coming Soon",
              "Best Seller",
              "Sustainable Materials"
            ],
            "default": "ANY",
            "prefill": "ANY"
          },
          "filters": {
            "title": "Nike facet filters",
            "type": "array",
            "description": "Optional Nike facet labels, exactly as shown in the site's filter panel. Use `Group: Value` for an exact group, e.g. `Sports: Running`, `Color: Black`, `Brand: Nike`, `Width: Wide`, `Size: 10`, or a bare value such as `Running`. Unknown labels are skipped with a log warning.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "sortBy": {
            "title": "Sort by",
            "type": "string",
            "description": "Order results. Nike's public wall API has no reliable server-side sort, so the actor sorts the fetched records locally.",
            "editor": "select",
            "enum": [
              "featured",
              "newest",
              "priceLowToHigh",
              "priceHighToLow",
              "discountHighToLow"
            ],
            "enumTitles": [
              "Featured (Nike's default order)",
              "Newest",
              "Price: Low to High",
              "Price: High to Low",
              "Discount: High to Low"
            ],
            "default": "featured",
            "prefill": "featured"
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Hard cap on emitted records across all queries, categories and URLs.",
            "minimum": 1,
            "maximum": 5000,
            "default": 24,
            "prefill": 2
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Nike Product Catalog, Colorway & Price Scraper Output",
        "description": "Nike.com products with prices, discounts, colorways, images, marketplace metadata and, when enabled, full product detail (description, sizes, stock, all colorways) plus rating and recent reviews.",
        "properties": {
          "products": {
            "type": "string",
            "title": "Nike products",
            "description": "Dataset containing every scraped Nike product, one record per style-color (or per colorway with includeAllColorways).",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Products",
              "transformation": {
                "fields": [
                  "title",
                  "subtitle",
                  "currentPrice",
                  "currency",
                  "colorDescription",
                  "colorwayCount",
                  "averageRating",
                  "productCode",
                  "productUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.0.2",
    "imageDigest": "4ffa5d1b41086990ec2799d776925f0fae3c3388b128fbc7a9b7d8c13cbd1ae6",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.006103333333333333
    }
  }
}