{
  "data": {
    "id": "Z35VNzyO9WZcnVPjc",
    "actId": "rPjoYNtTrSUbx3aor",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-10-25T07:48:34.474Z",
    "finishedAt": "2026-10-25T07:48:41.224Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 6698,
      "runTimeSecs": 6.698,
      "computeUnits": 0.0074422222222222225,
      "imageSizeBytes": 318713344
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"World Market Product Scraper Input\",\n  \"description\": \"Search worldmarket.com by keyword, browse a department or collection, or paste product URLs. Prices, sale savings, images, SKUs, variants and optional store pickup. No login or cookies required.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch. `search` uses a keyword, `byCategory` browses a department or collection, and `byProductUrls` reads the URLs you paste.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"byCategory\",\n        \"byProductUrls\"\n      ],\n      \"enumTitles\": [\n        \"Search by keyword\",\n        \"Browse a department or collection\",\n        \"Look up product URLs\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"searchQuery\": {\n      \"title\": \"Search query\",\n      \"type\": \"string\",\n      \"description\": \"Keyword to search for (mode=search), e.g. `candle`, `dining chair`, `chocolate`.\",\n      \"editor\": \"textfield\",\n      \"default\": \"candle\",\n      \"prefill\": \"candle\"\n    },\n    \"category\": {\n      \"title\": \"Department or collection (mode=byCategory)\",\n      \"type\": \"string\",\n      \"description\": \"A World Market department or curated collection. Use `categoryUrl` instead if you want a sub-category that is not listed here.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"bestSellers\",\n        \"bath\",\n        \"clothingAndJewelry\",\n        \"decorAndPillows\",\n        \"dining\",\n        \"foodAndDrinks\",\n        \"freeShipping\",\n        \"furniture\",\n        \"gifts\",\n        \"holidays\",\n        \"kitchen\",\n        \"lighting\",\n        \"newAndTrending\",\n        \"outdoor\",\n        \"rugs\",\n        \"sale\",\n        \"wallDecorAndMirrors\"\n      ],\n      \"enumTitles\": [\n        \"Best Sellers\",\n        \"Bath & Body\",\n        \"Clothing & Jewelry\",\n        \"Decor & Pillows\",\n        \"Dining\",\n        \"Food & Drinks\",\n        \"Free Shipping\",\n        \"Furniture\",\n        \"Gifts\",\n        \"Holidays\",\n        \"Kitchen\",\n        \"Lighting\",\n        \"New & Trending\",\n        \"Outdoor\",\n        \"Rugs\",\n        \"Sale / Clearance\",\n        \"Wall Decor & Mirrors\"\n      ]\n    },\n    \"categoryUrl\": {\n      \"title\": \"Custom category or collection URL (mode=byCategory)\",\n      \"type\": \"string\",\n      \"description\": \"A worldmarket.com category or collection URL, e.g. `https://www.worldmarket.com/c/furniture/shop-all-furniture/`. Takes priority over `category`.\",\n      \"editor\": \"textfield\"\n    },\n    \"productUrls\": {\n      \"title\": \"Product URLs (mode=byProductUrls)\",\n      \"type\": \"array\",\n      \"description\": \"Direct worldmarket.com product-page URLs, e.g. `https://www.worldmarket.com/p/<slug>-<id>.html`. Up to 500 unique URLs per run.\",\n      \"editor\": \"stringList\",\n      \"default\": []\n    },\n    \"sortBy\": {\n      \"title\": \"Sort order\",\n      \"type\": \"string\",\n      \"description\": \"Sort order for search and department results. `bestselling` and `newArrivals` keep World Market's own listing order.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"bestselling\",\n        \"newArrivals\",\n        \"ratingHighToLow\",\n        \"priceLowToHigh\",\n        \"priceHighToLow\"\n      ],\n      \"enumTitles\": [\n        \"Bestselling\",\n        \"New Arrivals\",\n        \"Rating: High to Low\",\n        \"Price: Low to High\",\n        \"Price: High to Low\"\n      ],\n      \"default\": \"bestselling\"\n    },\n    \"minPrice\": {\n      \"title\": \"Minimum price (USD)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop products whose current price is below this amount.\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"maxPrice\": {\n      \"title\": \"Maximum price (USD)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop products whose current price is above this amount.\",\n      \"minimum\": 0,\n      \"maximum\": 100000\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted products (1–500). Search and department pages are read 120 tiles at a time.\",\n      \"minimum\": 1,\n      \"maximum\": 500,\n      \"default\": 20,\n      \"prefill\": 1\n    },\n    \"storeId\": {\n      \"title\": \"Store ID (optional, pickup only)\",\n      \"type\": \"string\",\n      \"description\": \"A World Market store ID such as `store398`. Used only when `includePickup` is enabled. If omitted, the nearest store is resolved from `postalCode`.\",\n      \"editor\": \"textfield\"\n    },\n    \"postalCode\": {\n      \"title\": \"ZIP / postal code (optional, pickup only)\",\n      \"type\": \"string\",\n      \"description\": \"US ZIP code used to resolve the nearest store when `storeId` is not set and `includePickup` is enabled.\",\n      \"editor\": \"textfield\"\n    },\n    \"includeVariants\": {\n      \"title\": \"Include variant options\",\n      \"type\": \"boolean\",\n      \"description\": \"Include the selectable color, size or fragrance options for products that have them (up to 20).\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"includePickup\": {\n      \"title\": \"Include store pickup availability\",\n      \"type\": \"boolean\",\n      \"description\": \"Add per-store pickup status, quantity and message. Requires `storeId` or `postalCode`.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Optional. The actor connects directly first and only uses a proxy fallback if World Market blocks a request. Choose your own proxy to use it as that fallback, or leave it unset.\",\n      \"editor\": \"proxy\",\n      \"sectionCaption\": \"Advanced\",\n      \"sectionDescription\": \"Proxy settings.\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# World Market Product Prices, Sale & Store Pickup Scraper\r\n\r\nScrape **Cost Plus World Market** (worldmarket.com) for the exact lowest current price, original price and sale savings, brand, SKU, rating, image gallery, variant options and optional per-store pickup status. Search by keyword, browse a department or collection, or paste product URLs. No login, cookies or account is required.\r\n\r\n## What this actor does\r\n\r\n- **Three modes:** `search` (keyword), `byCategory` (department or collection), `byProductUrls` (direct product pages)\r\n- **Accurate sale pricing:** reads the tile's list and sale price blocks, so a sale range such as `$4.00–$34.99` returns `price: 4.00`, `priceMax: 34.99` and `originalPrice: 4.99` instead of the highest value\r\n- **Sale and clearance detail:** `onSale`, `saleBadge`, `discountAmount`, `discountPercent` and product badges such as Sale, Clearance, New, Best Seller and Top Rated\r\n- **Rich product data:** brand or sub-brand, full category path, description, rating and review count, up to 10 images, master ID, selected SKU, all SKUs and up to 20 variant options\r\n- **Optional store pickup:** add `storeId` or `postalCode` with `includePickup` to get `available`, `delayed` or `out` pickup status, quantity and message for each product\r\n- **Canonical dedupe:** collection tiles and individual product tiles that share a master product are emitted once, preferring the individual product URL\r\n- **Caps for predictable runs:** 500 products, 120 tiles per listing page, 6 parallel detail requests, 10 images, 20 variant options and 500 product URLs\r\n- **Empty fields are omitted** — every record only contains fields that were actually found\r\n\r\n## Output per product\r\n\r\n- `title` — product name\r\n- `brand` — sub-brand when World Market lists one (e.g. `Apothecary`), otherwise `World Market`\r\n- `description` — product description\r\n- `category` — full breadcrumb path (e.g. `Furniture > Dining Room Furniture > Dining Chairs`)\r\n- `masterId` — World Market master product ID used for canonical dedupe\r\n- `sku` — selected SKU for this product record\r\n- `skus[]` — all SKUs that belong to the master product (up to 50)\r\n- `itemNumber` — the selected SKU, kept for compatibility with older datasets\r\n- `price` — exact lowest current price in USD\r\n- `priceMax` — highest price when the product or its variants span a price range\r\n- `originalPrice` — list price before the sale, only when the product is discounted\r\n- `discountAmount`, `discountPercent` — savings versus `originalPrice`, only when discounted\r\n- `currency` — `USD`\r\n- `onSale` — `true` when the product is discounted or flagged as a sale item\r\n- `saleBadge` — `Sale` or `Clearance` when applicable\r\n- `badges[]` — other merchandising badges (New, Best Seller, Top Rated)\r\n- `rating` — average customer rating (1–5), only when the product has reviews\r\n- `reviewCount` — number of customer reviews, only when the product has reviews\r\n- `imageUrls[]` — up to 10 product images\r\n- `imageCount` — number of images returned\r\n- `availability` — `In Stock` or `Out of Stock`\r\n- `inStock` — boolean availability\r\n- `variants[]` — selectable options (up to 20), each with `attribute`, `label` and `selected` when applicable\r\n- `variantCount` — number of SKUs or options when the product has more than one\r\n- `productUrl` — canonical World Market product URL\r\n- `storeId`, `storeName` — resolved store, only when pickup is enabled\r\n- `pickupAvailable` — `true` when the item can be picked up at the resolved store\r\n- `pickupStatus` — `available`, `delayed` or `out`\r\n- `pickupMessage` — the site's pickup message (e.g. `Available today` or `Available Nov 3 - 13 at`)\r\n- `storeQty` — store inventory quantity when pickup is enabled\r\n- `recordType: \"product\"`, `scrapedAt` — UTC ISO timestamp\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `mode` | string | `search` | `search` / `byCategory` / `byProductUrls` |\r\n| `searchQuery` | string | `candle` | Keyword to search for (mode=search) |\r\n| `category` | string | – | Department or collection to browse (mode=byCategory) |\r\n| `categoryUrl` | string | – | Custom worldmarket.com category or collection URL (mode=byCategory); takes priority over `category` |\r\n| `productUrls` | array | – | Direct product URLs (mode=byProductUrls); up to 500 unique URLs |\r\n| `sortBy` | string | `bestselling` | `bestselling` / `newArrivals` / `ratingHighToLow` / `priceLowToHigh` / `priceHighToLow` |\r\n| `minPrice` | int | – | Drop products below this current price (USD) |\r\n| `maxPrice` | int | – | Drop products above this current price (USD) |\r\n| `maxItems` | int | `20` | Hard cap on emitted products (1–500) |\r\n| `storeId` | string | – | Store ID such as `store398` (pickup only) |\r\n| `postalCode` | string | – | US ZIP code used to resolve the nearest store (pickup only) |\r\n| `includeVariants` | boolean | `true` | Include selectable variant options |\r\n| `includePickup` | boolean | `false` | Add per-store pickup availability; requires `storeId` or `postalCode` |\r\n| `proxyConfiguration` | object | – | Optional proxy fallback; the actor connects directly first |\r\n\r\n`category` accepts: `bestSellers`, `bath`, `clothingAndJewelry`, `decorAndPillows`, `dining`, `foodAndDrinks`, `freeShipping`, `furniture`, `gifts`, `holidays`, `kitchen`, `lighting`, `newAndTrending`, `outdoor`, `rugs`, `sale`, `wallDecorAndMirrors`.\r\n\r\n### Example: keyword search with sale prices\r\n\r\n```json\r\n{\r\n  \"mode\": \"search\",\r\n  \"searchQuery\": \"candle\",\r\n  \"sortBy\": \"priceLowToHigh\",\r\n  \"maxItems\": 50\r\n}\r\n```\r\n\r\n### Example: browse a department with a price range\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"category\": \"furniture\",\r\n  \"sortBy\": \"priceLowToHigh\",\r\n  \"minPrice\": 100,\r\n  \"maxPrice\": 500,\r\n  \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: custom collection URL\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"categoryUrl\": \"https://www.worldmarket.com/c/sale/clearance/shop-all-clearance/\",\r\n  \"maxItems\": 60\r\n}\r\n```\r\n\r\n### Example: direct product URLs with store pickup\r\n\r\n```json\r\n{\r\n  \"mode\": \"byProductUrls\",\r\n  \"productUrls\": [\r\n    \"https://www.worldmarket.com/p/apothecary-lavender-tonic-scented-candle-128547.html\",\r\n    \"https://www.worldmarket.com/p/apothecary-holiday-mini-scented-candle-133564.html\"\r\n  ],\r\n  \"includePickup\": true,\r\n  \"storeId\": \"store398\"\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **Price monitoring** — track current and original prices, sale windows and clearance items over time\r\n- **Promotion intelligence** — quantify discount depth by department, brand or collection\r\n- **Catalog enrichment** — feed structured product, image, SKU and variant data into a PIM or storefront\r\n- **Local availability checks** — see which products are available today, delayed or out of stock for pickup at a chosen store\r\n- **Gift and seasonal research** — collect holiday, food, decor and best-seller assortments for content or merchandising\r\n- **Affiliate and comparison sites** — build up-to-date product pages with verified prices and images\r\n\r\n## Limitations\r\n\r\n- Prices are shown in **USD** and pickup covers **US World Market stores**.\r\n- Search and department runs stop at 500 products. For a larger catalog, split by department, collection or keyword.\r\n- Product URLs are capped at 500 per run; only the first `maxItems` unique URLs are fetched.\r\n- `originalPrice`, `discountAmount` and `discountPercent` appear only when World Market shows a higher list price.\r\n- `rating` and `reviewCount` are omitted for products with no reviews.\r\n- Pickup status is a snapshot for one store at run time. It needs a valid `storeId` or a US ZIP code.\r\n- worldmarket.com runs on Salesforce Commerce Cloud behind Cloudflare. If the site changes its page structure or blocks traffic, the actor retries and switches connection, and fails with a clear error instead of returning partial or invented data.\r\n\r\n## FAQ\r\n\r\n**Is this affiliated with World Market or Cost Plus World Market?**\r\nNo. This is an independent, third-party actor that reads the same public product pages any shopper sees. It is not affiliated with, endorsed by or connected to World Market.\r\n\r\n**Do I need to log in or provide cookies?**\r\nNo. World Market publishes prices, availability and product details on public pages without an account.\r\n\r\n**How is `price` chosen when a product has several sizes or a sale range?**\r\n`price` is the lowest current price shown for the product. When a sale tile shows a range, the lowest sale value is used, and `priceMax` records the highest value. This avoids the common mistake of returning the highest price in a range.\r\n\r\n**Why do only some products have an `originalPrice`?**\r\nOnly discounted products show a higher list price. Products at their regular price omit `originalPrice`, `discountAmount` and `discountPercent` rather than repeating the current price.\r\n\r\n**Why are `rating` and `reviewCount` missing on some products?**\r\nThose fields are only included when a product has at least one customer review. New or niche items may not have reviews yet, so the fields are omitted instead of showing a fake zero.\r\n\r\n**How do I get pickup availability?**\r\nSet `includePickup` to `true` and provide either a `storeId` (for example `store398`) or a US `postalCode`. The actor resolves the store, then reports `pickupStatus`, `pickupMessage`, `storeQty`, `storeId` and `storeName` for each product. Without a store or ZIP, pickup is skipped.\r\n\r\n**What do the pickup statuses mean?**\r\n`available` means the item can be picked up today. `delayed` means pickup is possible but the site shows a later date range. `out` means the item is not available for pickup at that store.\r\n\r\n**How many products can I scrape in one run?**\r\nUp to 500 via `maxItems`, read 120 tiles at a time. For larger catalogs, split the work by department, collection or keyword. Direct URL mode accepts up to 500 unique URLs and fetches the first `maxItems` of them.\r\n\r\n**Does `byCategory` cover every sub-category?**\r\nThe dropdown covers 17 top-level departments and curated collections. For a narrower slice, paste its URL into `categoryUrl` or use a keyword search.\r\n\r\n**Are variant prices included for every option?**\r\n`variants[]` lists the selectable options and which one is selected. `price` and `priceMax` describe the product's price range, and `skus[]` lists all SKUs. Per-option prices are not invented when the site does not show them on the product summary.\r\n\r\n**How fresh is the data?**\r\nEvery run reads live World Market pages. There is no cached catalog, so prices, sale badges and pickup status reflect the moment of the run.\r\n\r\n**Do I need to set up a proxy?**\r\nNo. The actor connects directly first and only uses a proxy fallback if World Market blocks a request. You can optionally choose your own proxy in the advanced settings.\r\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "world-market-product-scraper",
      "title": "World Market Product Scraper",
      "description": "Collect Cost Plus World Market products with the exact lowest current price, sale and clearance savings, original price, ratings, image galleries, SKU and variant options, and optional per-store pickup status. Search by keyword, browse a department or collection, or paste product URLs.",
      "version": "1.2",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# World Market Product Prices, Sale & Store Pickup Scraper\r\n\r\nScrape **Cost Plus World Market** (worldmarket.com) for the exact lowest current price, original price and sale savings, brand, SKU, rating, image gallery, variant options and optional per-store pickup status. Search by keyword, browse a department or collection, or paste product URLs. No login, cookies or account is required.\r\n\r\n## What this actor does\r\n\r\n- **Three modes:** `search` (keyword), `byCategory` (department or collection), `byProductUrls` (direct product pages)\r\n- **Accurate sale pricing:** reads the tile's list and sale price blocks, so a sale range such as `$4.00–$34.99` returns `price: 4.00`, `priceMax: 34.99` and `originalPrice: 4.99` instead of the highest value\r\n- **Sale and clearance detail:** `onSale`, `saleBadge`, `discountAmount`, `discountPercent` and product badges such as Sale, Clearance, New, Best Seller and Top Rated\r\n- **Rich product data:** brand or sub-brand, full category path, description, rating and review count, up to 10 images, master ID, selected SKU, all SKUs and up to 20 variant options\r\n- **Optional store pickup:** add `storeId` or `postalCode` with `includePickup` to get `available`, `delayed` or `out` pickup status, quantity and message for each product\r\n- **Canonical dedupe:** collection tiles and individual product tiles that share a master product are emitted once, preferring the individual product URL\r\n- **Caps for predictable runs:** 500 products, 120 tiles per listing page, 6 parallel detail requests, 10 images, 20 variant options and 500 product URLs\r\n- **Empty fields are omitted** — every record only contains fields that were actually found\r\n\r\n## Output per product\r\n\r\n- `title` — product name\r\n- `brand` — sub-brand when World Market lists one (e.g. `Apothecary`), otherwise `World Market`\r\n- `description` — product description\r\n- `category` — full breadcrumb path (e.g. `Furniture > Dining Room Furniture > Dining Chairs`)\r\n- `masterId` — World Market master product ID used for canonical dedupe\r\n- `sku` — selected SKU for this product record\r\n- `skus[]` — all SKUs that belong to the master product (up to 50)\r\n- `itemNumber` — the selected SKU, kept for compatibility with older datasets\r\n- `price` — exact lowest current price in USD\r\n- `priceMax` — highest price when the product or its variants span a price range\r\n- `originalPrice` — list price before the sale, only when the product is discounted\r\n- `discountAmount`, `discountPercent` — savings versus `originalPrice`, only when discounted\r\n- `currency` — `USD`\r\n- `onSale` — `true` when the product is discounted or flagged as a sale item\r\n- `saleBadge` — `Sale` or `Clearance` when applicable\r\n- `badges[]` — other merchandising badges (New, Best Seller, Top Rated)\r\n- `rating` — average customer rating (1–5), only when the product has reviews\r\n- `reviewCount` — number of customer reviews, only when the product has reviews\r\n- `imageUrls[]` — up to 10 product images\r\n- `imageCount` — number of images returned\r\n- `availability` — `In Stock` or `Out of Stock`\r\n- `inStock` — boolean availability\r\n- `variants[]` — selectable options (up to 20), each with `attribute`, `label` and `selected` when applicable\r\n- `variantCount` — number of SKUs or options when the product has more than one\r\n- `productUrl` — canonical World Market product URL\r\n- `storeId`, `storeName` — resolved store, only when pickup is enabled\r\n- `pickupAvailable` — `true` when the item can be picked up at the resolved store\r\n- `pickupStatus` — `available`, `delayed` or `out`\r\n- `pickupMessage` — the site's pickup message (e.g. `Available today` or `Available Nov 3 - 13 at`)\r\n- `storeQty` — store inventory quantity when pickup is enabled\r\n- `recordType: \"product\"`, `scrapedAt` — UTC ISO timestamp\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `mode` | string | `search` | `search` / `byCategory` / `byProductUrls` |\r\n| `searchQuery` | string | `candle` | Keyword to search for (mode=search) |\r\n| `category` | string | – | Department or collection to browse (mode=byCategory) |\r\n| `categoryUrl` | string | – | Custom worldmarket.com category or collection URL (mode=byCategory); takes priority over `category` |\r\n| `productUrls` | array | – | Direct product URLs (mode=byProductUrls); up to 500 unique URLs |\r\n| `sortBy` | string | `bestselling` | `bestselling` / `newArrivals` / `ratingHighToLow` / `priceLowToHigh` / `priceHighToLow` |\r\n| `minPrice` | int | – | Drop products below this current price (USD) |\r\n| `maxPrice` | int | – | Drop products above this current price (USD) |\r\n| `maxItems` | int | `20` | Hard cap on emitted products (1–500) |\r\n| `storeId` | string | – | Store ID such as `store398` (pickup only) |\r\n| `postalCode` | string | – | US ZIP code used to resolve the nearest store (pickup only) |\r\n| `includeVariants` | boolean | `true` | Include selectable variant options |\r\n| `includePickup` | boolean | `false` | Add per-store pickup availability; requires `storeId` or `postalCode` |\r\n| `proxyConfiguration` | object | – | Optional proxy fallback; the actor connects directly first |\r\n\r\n`category` accepts: `bestSellers`, `bath`, `clothingAndJewelry`, `decorAndPillows`, `dining`, `foodAndDrinks`, `freeShipping`, `furniture`, `gifts`, `holidays`, `kitchen`, `lighting`, `newAndTrending`, `outdoor`, `rugs`, `sale`, `wallDecorAndMirrors`.\r\n\r\n### Example: keyword search with sale prices\r\n\r\n```json\r\n{\r\n  \"mode\": \"search\",\r\n  \"searchQuery\": \"candle\",\r\n  \"sortBy\": \"priceLowToHigh\",\r\n  \"maxItems\": 50\r\n}\r\n```\r\n\r\n### Example: browse a department with a price range\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"category\": \"furniture\",\r\n  \"sortBy\": \"priceLowToHigh\",\r\n  \"minPrice\": 100,\r\n  \"maxPrice\": 500,\r\n  \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: custom collection URL\r\n\r\n```json\r\n{\r\n  \"mode\": \"byCategory\",\r\n  \"categoryUrl\": \"https://www.worldmarket.com/c/sale/clearance/shop-all-clearance/\",\r\n  \"maxItems\": 60\r\n}\r\n```\r\n\r\n### Example: direct product URLs with store pickup\r\n\r\n```json\r\n{\r\n  \"mode\": \"byProductUrls\",\r\n  \"productUrls\": [\r\n    \"https://www.worldmarket.com/p/apothecary-lavender-tonic-scented-candle-128547.html\",\r\n    \"https://www.worldmarket.com/p/apothecary-holiday-mini-scented-candle-133564.html\"\r\n  ],\r\n  \"includePickup\": true,\r\n  \"storeId\": \"store398\"\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **Price monitoring** — track current and original prices, sale windows and clearance items over time\r\n- **Promotion intelligence** — quantify discount depth by department, brand or collection\r\n- **Catalog enrichment** — feed structured product, image, SKU and variant data into a PIM or storefront\r\n- **Local availability checks** — see which products are available today, delayed or out of stock for pickup at a chosen store\r\n- **Gift and seasonal research** — collect holiday, food, decor and best-seller assortments for content or merchandising\r\n- **Affiliate and comparison sites** — build up-to-date product pages with verified prices and images\r\n\r\n## Limitations\r\n\r\n- Prices are shown in **USD** and pickup covers **US World Market stores**.\r\n- Search and department runs stop at 500 products. For a larger catalog, split by department, collection or keyword.\r\n- Product URLs are capped at 500 per run; only the first `maxItems` unique URLs are fetched.\r\n- `originalPrice`, `discountAmount` and `discountPercent` appear only when World Market shows a higher list price.\r\n- `rating` and `reviewCount` are omitted for products with no reviews.\r\n- Pickup status is a snapshot for one store at run time. It needs a valid `storeId` or a US ZIP code.\r\n- worldmarket.com runs on Salesforce Commerce Cloud behind Cloudflare. If the site changes its page structure or blocks traffic, the actor retries and switches connection, and fails with a clear error instead of returning partial or invented data.\r\n\r\n## FAQ\r\n\r\n**Is this affiliated with World Market or Cost Plus World Market?**\r\nNo. This is an independent, third-party actor that reads the same public product pages any shopper sees. It is not affiliated with, endorsed by or connected to World Market.\r\n\r\n**Do I need to log in or provide cookies?**\r\nNo. World Market publishes prices, availability and product details on public pages without an account.\r\n\r\n**How is `price` chosen when a product has several sizes or a sale range?**\r\n`price` is the lowest current price shown for the product. When a sale tile shows a range, the lowest sale value is used, and `priceMax` records the highest value. This avoids the common mistake of returning the highest price in a range.\r\n\r\n**Why do only some products have an `originalPrice`?**\r\nOnly discounted products show a higher list price. Products at their regular price omit `originalPrice`, `discountAmount` and `discountPercent` rather than repeating the current price.\r\n\r\n**Why are `rating` and `reviewCount` missing on some products?**\r\nThose fields are only included when a product has at least one customer review. New or niche items may not have reviews yet, so the fields are omitted instead of showing a fake zero.\r\n\r\n**How do I get pickup availability?**\r\nSet `includePickup` to `true` and provide either a `storeId` (for example `store398`) or a US `postalCode`. The actor resolves the store, then reports `pickupStatus`, `pickupMessage`, `storeQty`, `storeId` and `storeName` for each product. Without a store or ZIP, pickup is skipped.\r\n\r\n**What do the pickup statuses mean?**\r\n`available` means the item can be picked up today. `delayed` means pickup is possible but the site shows a later date range. `out` means the item is not available for pickup at that store.\r\n\r\n**How many products can I scrape in one run?**\r\nUp to 500 via `maxItems`, read 120 tiles at a time. For larger catalogs, split the work by department, collection or keyword. Direct URL mode accepts up to 500 unique URLs and fetches the first `maxItems` of them.\r\n\r\n**Does `byCategory` cover every sub-category?**\r\nThe dropdown covers 17 top-level departments and curated collections. For a narrower slice, paste its URL into `categoryUrl` or use a keyword search.\r\n\r\n**Are variant prices included for every option?**\r\n`variants[]` lists the selectable options and which one is selected. `price` and `priceMax` describe the product's price range, and `skus[]` lists all SKUs. Per-option prices are not invented when the site does not show them on the product summary.\r\n\r\n**How fresh is the data?**\r\nEvery run reads live World Market pages. There is no cached catalog, so prices, sale badges and pickup status reflect the moment of the run.\r\n\r\n**Do I need to set up a proxy?**\r\nNo. The actor connects directly first and only uses a proxy fallback if World Market blocks a request. You can optionally choose your own proxy in the advanced settings.\r\n",
      "input": {
        "title": "World Market Product Scraper Input",
        "description": "Search worldmarket.com by keyword, browse a department or collection, or paste product URLs. Prices, sale savings, images, SKUs, variants and optional store pickup. No login or cookies required.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch. `search` uses a keyword, `byCategory` browses a department or collection, and `byProductUrls` reads the URLs you paste.",
            "editor": "select",
            "enum": [
              "search",
              "byCategory",
              "byProductUrls"
            ],
            "enumTitles": [
              "Search by keyword",
              "Browse a department or collection",
              "Look up product URLs"
            ],
            "default": "search",
            "prefill": "search"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Keyword to search for (mode=search), e.g. `candle`, `dining chair`, `chocolate`.",
            "editor": "textfield",
            "default": "candle",
            "prefill": "candle"
          },
          "category": {
            "title": "Department or collection (mode=byCategory)",
            "type": "string",
            "description": "A World Market department or curated collection. Use `categoryUrl` instead if you want a sub-category that is not listed here.",
            "editor": "select",
            "enum": [
              "bestSellers",
              "bath",
              "clothingAndJewelry",
              "decorAndPillows",
              "dining",
              "foodAndDrinks",
              "freeShipping",
              "furniture",
              "gifts",
              "holidays",
              "kitchen",
              "lighting",
              "newAndTrending",
              "outdoor",
              "rugs",
              "sale",
              "wallDecorAndMirrors"
            ],
            "enumTitles": [
              "Best Sellers",
              "Bath & Body",
              "Clothing & Jewelry",
              "Decor & Pillows",
              "Dining",
              "Food & Drinks",
              "Free Shipping",
              "Furniture",
              "Gifts",
              "Holidays",
              "Kitchen",
              "Lighting",
              "New & Trending",
              "Outdoor",
              "Rugs",
              "Sale / Clearance",
              "Wall Decor & Mirrors"
            ]
          },
          "categoryUrl": {
            "title": "Custom category or collection URL (mode=byCategory)",
            "type": "string",
            "description": "A worldmarket.com category or collection URL, e.g. `https://www.worldmarket.com/c/furniture/shop-all-furniture/`. Takes priority over `category`.",
            "editor": "textfield"
          },
          "productUrls": {
            "title": "Product URLs (mode=byProductUrls)",
            "type": "array",
            "description": "Direct worldmarket.com product-page URLs, e.g. `https://www.worldmarket.com/p/<slug>-<id>.html`. Up to 500 unique URLs per run.",
            "editor": "stringList",
            "default": []
          },
          "sortBy": {
            "title": "Sort order",
            "type": "string",
            "description": "Sort order for search and department results. `bestselling` and `newArrivals` keep World Market's own listing order.",
            "editor": "select",
            "enum": [
              "bestselling",
              "newArrivals",
              "ratingHighToLow",
              "priceLowToHigh",
              "priceHighToLow"
            ],
            "enumTitles": [
              "Bestselling",
              "New Arrivals",
              "Rating: High to Low",
              "Price: Low to High",
              "Price: High to Low"
            ],
            "default": "bestselling"
          },
          "minPrice": {
            "title": "Minimum price (USD)",
            "type": "integer",
            "description": "Drop products whose current price is below this amount.",
            "minimum": 0,
            "maximum": 100000
          },
          "maxPrice": {
            "title": "Maximum price (USD)",
            "type": "integer",
            "description": "Drop products whose current price is above this amount.",
            "minimum": 0,
            "maximum": 100000
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Hard cap on emitted products (1–500). Search and department pages are read 120 tiles at a time.",
            "minimum": 1,
            "maximum": 500,
            "default": 20,
            "prefill": 1
          },
          "storeId": {
            "title": "Store ID (optional, pickup only)",
            "type": "string",
            "description": "A World Market store ID such as `store398`. Used only when `includePickup` is enabled. If omitted, the nearest store is resolved from `postalCode`.",
            "editor": "textfield"
          },
          "postalCode": {
            "title": "ZIP / postal code (optional, pickup only)",
            "type": "string",
            "description": "US ZIP code used to resolve the nearest store when `storeId` is not set and `includePickup` is enabled.",
            "editor": "textfield"
          },
          "includeVariants": {
            "title": "Include variant options",
            "type": "boolean",
            "description": "Include the selectable color, size or fragrance options for products that have them (up to 20).",
            "default": true,
            "prefill": true
          },
          "includePickup": {
            "title": "Include store pickup availability",
            "type": "boolean",
            "description": "Add per-store pickup status, quantity and message. Requires `storeId` or `postalCode`.",
            "default": false,
            "prefill": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The actor connects directly first and only uses a proxy fallback if World Market blocks a request. Choose your own proxy to use it as that fallback, or leave it unset.",
            "editor": "proxy",
            "sectionCaption": "Advanced",
            "sectionDescription": "Proxy settings."
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "World Market Product Scraper Output",
        "description": "World Market products with exact current price, original price and discount, sale badges, brand, SKU and master ID, rating, images, variants, category, availability and optional store pickup status.",
        "properties": {
          "products": {
            "type": "string",
            "title": "World Market products",
            "description": "Dataset containing all scraped World Market products.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Products",
              "transformation": {
                "fields": [
                  "title",
                  "price",
                  "originalPrice",
                  "saleBadge",
                  "brand",
                  "sku",
                  "availability",
                  "pickupStatus",
                  "rating",
                  "reviewCount",
                  "productUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.2.1",
    "imageDigest": "e0638c861201b36ff53bab5ecc5f398bd36e1658f58ee9d80a3e88eb9ff9e052",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.2"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0074422222222222225
    }
  }
}