{
  "data": {
    "id": "aAJedoI4DhBVoe0x1",
    "actId": "jLafkpWTCRAFfUa54",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-11-04T12:35:24.228Z",
    "finishedAt": "2026-11-04T12:36:10.968Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 46640,
      "runTimeSecs": 46.64,
      "computeUnits": 0.05182222222222222,
      "imageSizeBytes": 1410130432
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Amazon Listings Extractor Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"categoryUrls\": {\n      \"title\": \"Search, Category & Product URLs\",\n      \"type\": \"array\",\n      \"description\": \"Amazon search, category, seller-profile, or exact product URLs. Search pages (/s?k=), browse nodes (/b?node=), seller profiles (/sp?seller=), and product pages (/dp/) are routed automatically. Combine with any other mode.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"example\": [\n        \"https://www.amazon.com/s?k=laptops\",\n        \"https://www.amazon.com/dp/B08N5WRWNW\"\n      ]\n    },\n    \"keywords\": {\n      \"title\": \"Search Keywords\",\n      \"type\": \"array\",\n      \"description\": \"Plain search keywords or phrases. Each keyword builds an Amazon search URL (/s?k={query}).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"example\": [\n        \"wireless earbuds\",\n        \"bluetooth speaker\"\n      ],\n      \"prefill\": [\n        \"wireless earbuds\"\n      ]\n    },\n    \"productUrls\": {\n      \"title\": \"Product URLs\",\n      \"type\": \"array\",\n      \"description\": \"Exact Amazon product URLs. Each URL is normalized to /dp/{ASIN} on its own marketplace and fetched directly (never as a search).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"example\": [\n        \"https://www.amazon.com/dp/B08N5WRWNW\"\n      ]\n    },\n    \"asins\": {\n      \"title\": \"ASINs\",\n      \"type\": \"array\",\n      \"description\": \"Amazon ASINs to fetch exactly. Each ASIN opens its own product page (/dp/{ASIN}) directly, never a keyword search.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"example\": [\n        \"B08N5WRWNW\",\n        \"B09X7MPX8L\"\n      ]\n    },\n    \"sellerIds\": {\n      \"title\": \"Seller IDs\",\n      \"type\": \"array\",\n      \"description\": \"Amazon seller/merchant IDs. Each ID builds that seller's storefront listing (/s?me={sellerId}).\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"example\": [\n        \"A1B2C3D4E5F6G7\"\n      ]\n    },\n    \"categoryNodeIds\": {\n      \"title\": \"Category Node IDs\",\n      \"type\": \"array\",\n      \"description\": \"Amazon browse-node IDs. Each node builds a real category listing (/s?rh=n:{node}&fs=true), with a merchandising fallback only when Amazon renders no listing grid.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"example\": [\n        \"172282\"\n      ]\n    },\n    \"marketplaceDomain\": {\n      \"title\": \"Marketplace\",\n      \"type\": \"string\",\n      \"description\": \"Amazon marketplace used for keyword, ASIN, seller, and node modes. URLs in categoryUrls/productUrls keep their own marketplace.\",\n      \"default\": \"amazon.com\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"amazon.com\",\n        \"amazon.co.uk\",\n        \"amazon.de\",\n        \"amazon.fr\",\n        \"amazon.it\",\n        \"amazon.es\",\n        \"amazon.ca\",\n        \"amazon.com.au\",\n        \"amazon.co.jp\",\n        \"amazon.in\",\n        \"amazon.com.br\",\n        \"amazon.com.mx\",\n        \"amazon.nl\",\n        \"amazon.se\",\n        \"amazon.pl\",\n        \"amazon.com.tr\",\n        \"amazon.ae\",\n        \"amazon.sa\",\n        \"amazon.sg\",\n        \"amazon.com.be\",\n        \"amazon.eg\"\n      ],\n      \"enumTitles\": [\n        \"United States (amazon.com)\",\n        \"United Kingdom (amazon.co.uk)\",\n        \"Germany (amazon.de)\",\n        \"France (amazon.fr)\",\n        \"Italy (amazon.it)\",\n        \"Spain (amazon.es)\",\n        \"Canada (amazon.ca)\",\n        \"Australia (amazon.com.au)\",\n        \"Japan (amazon.co.jp)\",\n        \"India (amazon.in)\",\n        \"Brazil (amazon.com.br)\",\n        \"Mexico (amazon.com.mx)\",\n        \"Netherlands (amazon.nl)\",\n        \"Sweden (amazon.se)\",\n        \"Poland (amazon.pl)\",\n        \"Turkey (amazon.com.tr)\",\n        \"United Arab Emirates (amazon.ae)\",\n        \"Saudi Arabia (amazon.sa)\",\n        \"Singapore (amazon.sg)\",\n        \"Belgium (amazon.com.be)\",\n        \"Egypt (amazon.eg)\"\n      ],\n      \"prefill\": \"amazon.com\"\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum Items (all sources)\",\n      \"type\": \"integer\",\n      \"description\": \"Global cap across every source in the run. 0 means no global cap.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 100000,\n      \"editor\": \"number\",\n      \"prefill\": 3\n    },\n    \"maxItemsPerCategory\": {\n      \"title\": \"Maximum Items Per Source\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum products to return from each keyword, URL, seller, or node source.\",\n      \"default\": 10,\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"editor\": \"number\",\n      \"prefill\": 3\n    },\n    \"maxPages\": {\n      \"title\": \"Maximum Pages\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum listing pages per source. Amazon keyword search itself stops at page 7; category listings go deeper.\",\n      \"default\": 1,\n      \"minimum\": 1,\n      \"maximum\": 50,\n      \"editor\": \"number\"\n    },\n    \"scrapeProductDetails\": {\n      \"title\": \"Scrape Product Details\",\n      \"type\": \"boolean\",\n      \"description\": \"If true, visit each accepted product's own page for specs, gallery images, seller, BSR, variants, and histogram. ASIN/product-URL modes always use detail pages. If false, only listing-card fields are returned.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeSpecifications\": {\n      \"title\": \"Include Specifications\",\n      \"type\": \"boolean\",\n      \"description\": \"If true (and detail pages are scraped), return the specifications object parsed from the overview and technical-detail tables.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"sortBy\": {\n      \"title\": \"Sort By\",\n      \"type\": \"string\",\n      \"description\": \"Sort order applied to search and category listings.\",\n      \"default\": \"relevanceblender\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"relevanceblender\",\n        \"price-asc-rank\",\n        \"price-desc-rank\",\n        \"review-rank\",\n        \"date-desc-rank\",\n        \"exact-aware-popularity-rank\"\n      ],\n      \"enumTitles\": [\n        \"Featured/Relevance\",\n        \"Price: Low to High\",\n        \"Price: High to Low\",\n        \"Avg. Customer Review\",\n        \"Newest Arrivals\",\n        \"Best Sellers\"\n      ]\n    },\n    \"priceMin\": {\n      \"title\": \"Minimum Price\",\n      \"type\": \"number\",\n      \"description\": \"Only return products priced at or above this amount (marketplace currency).\",\n      \"minimum\": 0,\n      \"editor\": \"number\"\n    },\n    \"priceMax\": {\n      \"title\": \"Maximum Price\",\n      \"type\": \"number\",\n      \"description\": \"Only return products priced at or below this amount (marketplace currency).\",\n      \"minimum\": 0,\n      \"editor\": \"number\"\n    },\n    \"minRating\": {\n      \"title\": \"Minimum Rating\",\n      \"type\": \"number\",\n      \"description\": \"Only return products with a star rating at or above this value (0-5).\",\n      \"minimum\": 0,\n      \"maximum\": 5,\n      \"editor\": \"number\"\n    },\n    \"includeSponsored\": {\n      \"title\": \"Include Sponsored Results\",\n      \"type\": \"boolean\",\n      \"description\": \"If true (default), sponsored/ad placements are included. Set false to return organic results only.\",\n      \"default\": true\n    },\n    \"onlyDeals\": {\n      \"title\": \"Only Deals\",\n      \"type\": \"boolean\",\n      \"description\": \"If true, only return products with visible deal evidence (coupon, limited-time-deal badge, or genuine strike-through list price).\",\n      \"default\": false\n    },\n    \"primeOnly\": {\n      \"title\": \"Prime Only\",\n      \"type\": \"boolean\",\n      \"description\": \"If true, only return products with a visible Amazon Prime badge. Badges are render-dependent in some marketplaces.\",\n      \"default\": false\n    },\n    \"rateLimitDelay\": {\n      \"title\": \"Base Request Delay (seconds)\",\n      \"type\": \"integer\",\n      \"description\": \"Base pacing delay between live requests. Product-detail requests always add human-like jitter.\",\n      \"default\": 2,\n      \"minimum\": 1,\n      \"maximum\": 30,\n      \"editor\": \"number\"\n    }\n  },\n  \"required\": []\n}",
    "readme": "# Amazon Search, Category & Seller Listings Extractor\n\nPull Amazon product listings from **keyword search, category/search URLs, browse-node IDs, seller\nstorefronts, ASINs, and exact product URLs** in one run. Every record carries the listing card\ndata — price, brand, rating, badges, images, delivery hints, and organic/sponsored position — and\noptional product-detail enrichment adds specifications, the full gallery, seller identity, rating\nhistogram, variants, and bestseller ranks. No login, cookies, or API key needed.\n\n## What this actor does\n\n- **Six additive input modes.** Combine `keywords`, `categoryUrls`, `categoryNodeIds`,\n  `sellerIds`, `asins`, and `productUrls` in the same run; every source is processed and\n  deduplicated by ASIN.\n- **Exact product lookup.** ASIN and product-URL modes open `/dp/{ASIN}` directly. They never\n  fall back to an Amazon keyword search, so a known product cannot turn into an unrelated result.\n- **Real category listings.** Node IDs use Amazon's `/s?rh=n:{node}&fs=true` listing route, not\n  the `/b?node=` merchandising landing page. Search, seller (`/s?me=`), and seller-profile\n  (`/sp?seller=`) URLs are routed automatically.\n- **Playwright reliability.** Each marketplace session is warmed up on the homepage and paced\n  with human-like jitter. Continue-shopping interstitials, dog pages, rate limits, and\n  interstitial challenges are classified and retried. Proxy selection is automatic: an available\n  non-residential (datacenter/static) group in the marketplace's country, never residential by\n  default.\n- **Listing intelligence.** Brand, card image set and large image, organic position, sponsored\n  flag, ships-to line, variant count, unit price, deal text, stock hint, sold-by line, and a\n  genuine list price kept separate from Amazon's \"Typical price\".\n- **Detail enrichment.** Specifications, gallery images, rating histogram, reviews link, seller\n  ID/name/URL, variant dimensions, BSR, breadcrumbs, description, features, and stock status.\n- **Safe output.** Empty fields are omitted at every depth; nothing is emitted as `null`.\n\n## Output per product\n\n### Listing fields (all modes)\n\n- `asin`, `title`, `url`, `marketplace`, `sourceMode`, `searchQuery`\n- `price` `{value, currency, display}`, `listPrice`, `typicalPrice`, `discountPercent`\n- `stars`, `reviewsCount`, `brand`\n- `thumbnailImage`, `images`, `imageLarge`\n- `badge`, `coupon`, `dealText`, `stockText`, `unitPrice`, `soldByText`, `moreOptionsText`\n- `boughtInPastMonth`, `boughtInPastMonthText`\n- `deliveryEstimate`, `shipsTo`, `sustainabilityFeatures`, `variantsCount`\n- `offerCount`, `lowestOfferPrice`\n- `sponsored` / `isSponsored`, `resultType`, `prime` / `isPrime`\n- `organicPosition`, `categoryPosition`\n- `categoryUrl`, `categoryPage`, `sourceLayout`, `position`\n- `resultsTotal`, `resultsFrom`, `resultsTo`, `facets`, `relatedSearches`\n- `scrapedAt`\n\n### Product-detail fields (detail enrichment or ASIN/product-URL modes)\n\n- `brand`, `inStock`, `inStockText`, `currency`\n- `specifications` (overview + technical tables)\n- `images` (gallery), `imageLarge`\n- `starsBreakdown` (share per star, 0.0-1.0)\n- `reviewsLink`, `answeredQuestions`\n- `breadCrumbs`, `description`, `features`\n- `variantAsins`, `variantAttributes`, `priceVariants`\n- `delivery`, `fastestDelivery`, `shippingPrice`, `returnPolicy`, `support`\n- `seller` `{name, id, url}` — omitted when no real seller ID can be resolved\n- `bestsellerRanks`, `locationText`\n\nFields that Amazon does not render for a specific product are omitted, never fabricated. This\nincludes render-dependent badges (Prime, sponsored), seller identity, and some buy-box details.\n\n## Input\n\nAt least one of `categoryUrls`, `keywords`, `productUrls`, `asins`, `sellerIds`, or\n`categoryNodeIds` is required. All modes are additive.\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `categoryUrls` | array | – | Search, category, seller-profile, or product URLs; routed automatically |\n| `keywords` | array | – | Search phrases; each builds `/s?k={query}` |\n| `productUrls` | array | – | Exact product URLs; normalized to `/dp/{ASIN}` on their own marketplace |\n| `asins` | array | – | Exact ASINs; each opens `/dp/{ASIN}` directly |\n| `sellerIds` | array | – | Seller/merchant IDs; each builds `/s?me={id}` |\n| `categoryNodeIds` | array | – | Browse-node IDs; each builds `/s?rh=n:{id}&fs=true` |\n| `marketplaceDomain` | select | `amazon.com` | Marketplace for keyword/ASIN/seller/node modes (21 domains) |\n| `maxItems` | integer | `0` | Global cap across all sources; `0` means unlimited |\n| `maxItemsPerCategory` | integer | `10` | Cap per keyword/URL/seller/node source (1-10000) |\n| `maxPages` | integer | `1` | Pages per listing source (1-50); keyword search itself stops at 7 |\n| `scrapeProductDetails` | boolean | `true` | Visit each accepted product page for detail fields |\n| `includeSpecifications` | boolean | `true` | Include the specifications object when detail pages are scraped |\n| `sortBy` | select | `relevanceblender` | Featured, price, review, newest, or best-seller sort |\n| `priceMin`, `priceMax` | number | – | Price range in the marketplace currency |\n| `minRating` | number | – | Minimum star rating (0-5) |\n| `includeSponsored` | boolean | `true` | Include sponsored placements |\n| `onlyDeals` | boolean | `false` | Keep only cards with visible deal evidence |\n| `primeOnly` | boolean | `false` | Keep only cards with a visible Prime badge |\n| `rateLimitDelay` | integer | `2` | Base delay in seconds between requests (1-30) |\n\n### Example: keyword search, cards only\n\n```json\n{\n  \"keywords\": [\"wireless earbuds\", \"bluetooth speaker\"],\n  \"maxItemsPerCategory\": 100,\n  \"maxPages\": 3,\n  \"scrapeProductDetails\": false,\n  \"sortBy\": \"review-rank\",\n  \"minRating\": 4\n}\n```\n\n### Example: exact products and a product URL together\n\n```json\n{\n  \"asins\": [\"B08N5WRWNW\", \"B09X7MPX8L\"],\n  \"productUrls\": [\"https://www.amazon.de/dp/B08N5WRWNW\"],\n  \"scrapeProductDetails\": true,\n  \"includeSpecifications\": true\n}\n```\n\n### Example: category node, seller storefront, and filters\n\n```json\n{\n  \"categoryNodeIds\": [\"172282\"],\n  \"sellerIds\": [\"A1B2C3D4E5F6G7\"],\n  \"marketplaceDomain\": \"amazon.co.uk\",\n  \"maxItemsPerCategory\": 50,\n  \"onlyDeals\": true,\n  \"maxPages\": 3\n}\n```\n\n## Supported Amazon Marketplaces\n\namazon.com (US), amazon.co.uk (UK), amazon.de (Germany), amazon.fr (France), amazon.it (Italy),\namazon.es (Spain), amazon.ca (Canada), amazon.com.au (Australia), amazon.co.jp (Japan),\namazon.in (India), amazon.com.br (Brazil), amazon.com.mx (Mexico), amazon.nl (Netherlands),\namazon.se (Sweden), amazon.pl (Poland), amazon.com.tr (Turkey), amazon.ae (UAE),\namazon.sa (Saudi Arabia), amazon.sg (Singapore), amazon.com.be (Belgium), amazon.eg (Egypt).\n\n## Use cases\n\n- **Competitor price tracking** — monitor price, list price, typical price, and deal evidence.\n- **Category and keyword research** — collect top products with brand, rating, and organic rank.\n- **Sponsored-placement analysis** — compare organic position with sponsored rows.\n- **Seller storefront audits** — enumerate a seller's listed products.\n- **Product research** — pull full specifications, gallery, variants, and BSR for a shortlist.\n- **Multi-marketplace checks** — compare the same ASIN or keyword across 21 storefronts.\n\n## FAQ\n\n**Do I need Amazon cookies or an API key?**\nNo. The actor reads public search, category, seller, and product pages anonymously. No account,\ncookie, token, or API key is required.\n\n**Do ASIN inputs still search Amazon?**\nNo. ASIN and product-URL modes fetch the exact `/dp/{ASIN}` page. Keyword mode is the only mode\nthat performs a search.\n\n**Why is `listPrice` missing on a product that shows a \"Typical price\"?**\n\"Typical price\" is not a strike-through list price. It is returned separately as `typicalPrice`,\nand `discountPercent` is calculated only from a genuine current price plus list price. This\nprevents fake discounts.\n\n**Why are Prime or sponsored fields missing from some records?**\nAmazon does not render Prime icons or sponsored labels for every marketplace, exit country, or\nlayout. The actor reports only what the page actually shows and never claims a product is \"not\nPrime\" from a missing badge.\n\n**Why do I get fewer results than `maxPages` suggests?**\nAmazon caps keyword search at page 7. Category listings can go deeper. For more than a keyword\nsurface allows, split the query by category, brand, or price band and combine the runs.\n\n**Does the actor need my proxy?**\nNo. Proxy selection is automatic: it uses an available non-residential Apify Proxy group in the\nmarketplace's own country and never switches to residential billing on its own. There is no proxy\ninput to configure.\n\n**Why do prices appear in a currency different from the marketplace domain?**\nAmazon localizes currency and delivery to the request's exit country. The actor sets the\nmarketplace country automatically and reports the resolved `currency`; cross-border renders can\nstill differ from the domain's nominal currency.\n\n**How expensive is detail enrichment?**\nEach detail page is a full Amazon product page (roughly 2.5-3.1 MB). Set\n`scrapeProductDetails` to `false` for large listing runs and enable it only for a shortlist or\nfor ASIN/product-URL modes.\n\n**Is this affiliated with Amazon?**\nNo. It is an independent third-party actor that reads Amazon's public pages.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "amazon-search-category-and-seller-listings",
      "title": "Amazon Search, Category & Seller Listings Extractor",
      "description": "Scrape Amazon keyword, category, seller, ASIN, and product-URL listings across 21 marketplaces with prices, brand, ratings, images, specs, and variants.",
      "version": "1.0",
      "meta": {
        "templateId": "python-playwright"
      },
      "input": {
        "title": "Amazon Listings Extractor Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "categoryUrls": {
            "title": "Search, Category & Product URLs",
            "type": "array",
            "description": "Amazon search, category, seller-profile, or exact product URLs. Search pages (/s?k=), browse nodes (/b?node=), seller profiles (/sp?seller=), and product pages (/dp/) are routed automatically. Combine with any other mode.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "example": [
              "https://www.amazon.com/s?k=laptops",
              "https://www.amazon.com/dp/B08N5WRWNW"
            ]
          },
          "keywords": {
            "title": "Search Keywords",
            "type": "array",
            "description": "Plain search keywords or phrases. Each keyword builds an Amazon search URL (/s?k={query}).",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "example": [
              "wireless earbuds",
              "bluetooth speaker"
            ],
            "prefill": [
              "wireless earbuds"
            ]
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Exact Amazon product URLs. Each URL is normalized to /dp/{ASIN} on its own marketplace and fetched directly (never as a search).",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "example": [
              "https://www.amazon.com/dp/B08N5WRWNW"
            ]
          },
          "asins": {
            "title": "ASINs",
            "type": "array",
            "description": "Amazon ASINs to fetch exactly. Each ASIN opens its own product page (/dp/{ASIN}) directly, never a keyword search.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "example": [
              "B08N5WRWNW",
              "B09X7MPX8L"
            ]
          },
          "sellerIds": {
            "title": "Seller IDs",
            "type": "array",
            "description": "Amazon seller/merchant IDs. Each ID builds that seller's storefront listing (/s?me={sellerId}).",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "example": [
              "A1B2C3D4E5F6G7"
            ]
          },
          "categoryNodeIds": {
            "title": "Category Node IDs",
            "type": "array",
            "description": "Amazon browse-node IDs. Each node builds a real category listing (/s?rh=n:{node}&fs=true), with a merchandising fallback only when Amazon renders no listing grid.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "example": [
              "172282"
            ]
          },
          "marketplaceDomain": {
            "title": "Marketplace",
            "type": "string",
            "description": "Amazon marketplace used for keyword, ASIN, seller, and node modes. URLs in categoryUrls/productUrls keep their own marketplace.",
            "default": "amazon.com",
            "editor": "select",
            "enum": [
              "amazon.com",
              "amazon.co.uk",
              "amazon.de",
              "amazon.fr",
              "amazon.it",
              "amazon.es",
              "amazon.ca",
              "amazon.com.au",
              "amazon.co.jp",
              "amazon.in",
              "amazon.com.br",
              "amazon.com.mx",
              "amazon.nl",
              "amazon.se",
              "amazon.pl",
              "amazon.com.tr",
              "amazon.ae",
              "amazon.sa",
              "amazon.sg",
              "amazon.com.be",
              "amazon.eg"
            ],
            "enumTitles": [
              "United States (amazon.com)",
              "United Kingdom (amazon.co.uk)",
              "Germany (amazon.de)",
              "France (amazon.fr)",
              "Italy (amazon.it)",
              "Spain (amazon.es)",
              "Canada (amazon.ca)",
              "Australia (amazon.com.au)",
              "Japan (amazon.co.jp)",
              "India (amazon.in)",
              "Brazil (amazon.com.br)",
              "Mexico (amazon.com.mx)",
              "Netherlands (amazon.nl)",
              "Sweden (amazon.se)",
              "Poland (amazon.pl)",
              "Turkey (amazon.com.tr)",
              "United Arab Emirates (amazon.ae)",
              "Saudi Arabia (amazon.sa)",
              "Singapore (amazon.sg)",
              "Belgium (amazon.com.be)",
              "Egypt (amazon.eg)"
            ],
            "prefill": "amazon.com"
          },
          "maxItems": {
            "title": "Maximum Items (all sources)",
            "type": "integer",
            "description": "Global cap across every source in the run. 0 means no global cap.",
            "default": 0,
            "minimum": 0,
            "maximum": 100000,
            "editor": "number",
            "prefill": 3
          },
          "maxItemsPerCategory": {
            "title": "Maximum Items Per Source",
            "type": "integer",
            "description": "Maximum products to return from each keyword, URL, seller, or node source.",
            "default": 10,
            "minimum": 1,
            "maximum": 10000,
            "editor": "number",
            "prefill": 3
          },
          "maxPages": {
            "title": "Maximum Pages",
            "type": "integer",
            "description": "Maximum listing pages per source. Amazon keyword search itself stops at page 7; category listings go deeper.",
            "default": 1,
            "minimum": 1,
            "maximum": 50,
            "editor": "number"
          },
          "scrapeProductDetails": {
            "title": "Scrape Product Details",
            "type": "boolean",
            "description": "If true, visit each accepted product's own page for specs, gallery images, seller, BSR, variants, and histogram. ASIN/product-URL modes always use detail pages. If false, only listing-card fields are returned.",
            "default": true,
            "prefill": false
          },
          "includeSpecifications": {
            "title": "Include Specifications",
            "type": "boolean",
            "description": "If true (and detail pages are scraped), return the specifications object parsed from the overview and technical-detail tables.",
            "default": true,
            "prefill": false
          },
          "sortBy": {
            "title": "Sort By",
            "type": "string",
            "description": "Sort order applied to search and category listings.",
            "default": "relevanceblender",
            "editor": "select",
            "enum": [
              "relevanceblender",
              "price-asc-rank",
              "price-desc-rank",
              "review-rank",
              "date-desc-rank",
              "exact-aware-popularity-rank"
            ],
            "enumTitles": [
              "Featured/Relevance",
              "Price: Low to High",
              "Price: High to Low",
              "Avg. Customer Review",
              "Newest Arrivals",
              "Best Sellers"
            ]
          },
          "priceMin": {
            "title": "Minimum Price",
            "type": "number",
            "description": "Only return products priced at or above this amount (marketplace currency).",
            "minimum": 0,
            "editor": "number"
          },
          "priceMax": {
            "title": "Maximum Price",
            "type": "number",
            "description": "Only return products priced at or below this amount (marketplace currency).",
            "minimum": 0,
            "editor": "number"
          },
          "minRating": {
            "title": "Minimum Rating",
            "type": "number",
            "description": "Only return products with a star rating at or above this value (0-5).",
            "minimum": 0,
            "maximum": 5,
            "editor": "number"
          },
          "includeSponsored": {
            "title": "Include Sponsored Results",
            "type": "boolean",
            "description": "If true (default), sponsored/ad placements are included. Set false to return organic results only.",
            "default": true
          },
          "onlyDeals": {
            "title": "Only Deals",
            "type": "boolean",
            "description": "If true, only return products with visible deal evidence (coupon, limited-time-deal badge, or genuine strike-through list price).",
            "default": false
          },
          "primeOnly": {
            "title": "Prime Only",
            "type": "boolean",
            "description": "If true, only return products with a visible Amazon Prime badge. Badges are render-dependent in some marketplaces.",
            "default": false
          },
          "rateLimitDelay": {
            "title": "Base Request Delay (seconds)",
            "type": "integer",
            "description": "Base pacing delay between live requests. Product-detail requests always add human-like jitter.",
            "default": 2,
            "minimum": 1,
            "maximum": 30,
            "editor": "number"
          }
        },
        "required": []
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Amazon Search, Category & Seller Listings Extractor Output",
        "type": "object",
        "description": "Amazon product records from search, category, and seller listings with price, rating, badges, and delivery details.",
        "properties": {
          "title": {
            "title": "Product Title",
            "type": "string",
            "description": "Product title",
            "template": "{{title}}"
          },
          "url": {
            "title": "Product URL",
            "type": "string",
            "description": "Direct Amazon URL for the product page",
            "template": "{{url}}"
          },
          "marketplace": {
            "title": "Marketplace",
            "type": "string",
            "description": "Bare Amazon marketplace domain this record came from (e.g. amazon.com)",
            "template": "{{marketplace}}"
          },
          "sourceMode": {
            "title": "Source Mode",
            "type": "string",
            "description": "Input mode that produced this record: keywords, categoryUrls, categoryNodeIds, sellerIds, asins, or productUrls",
            "template": "{{sourceMode}}"
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Keyword, node ID, or seller ID that produced this listing record",
            "template": "{{searchQuery}}"
          },
          "asin": {
            "title": "ASIN",
            "type": "string",
            "description": "Amazon Standard Identification Number",
            "template": "{{asin}}"
          },
          "brand": {
            "title": "Brand",
            "type": "string",
            "description": "Product brand name",
            "template": "{{brand}}"
          },
          "images": {
            "title": "Images",
            "type": "string",
            "description": "All deduplicated image URLs for the product (JSON array)",
            "template": "{{images}}"
          },
          "imageLarge": {
            "title": "Large Image",
            "type": "string",
            "description": "Largest product image URL available (upscaled Amazon media URL)",
            "template": "{{imageLarge}}"
          },
          "price": {
            "title": "Price",
            "type": "string",
            "description": "Current price (JSON object with value, currency, display)",
            "template": "{{price}}"
          },
          "listPrice": {
            "title": "List Price",
            "type": "string",
            "description": "Genuine list/strike-through price only; never Amazon's \"Typical price\" reference",
            "template": "{{listPrice}}"
          },
          "typicalPrice": {
            "title": "Typical Price",
            "type": "string",
            "description": "Amazon's separate \"Typical price\" reference price (never used as listPrice)",
            "template": "{{typicalPrice}}"
          },
          "discountPercent": {
            "title": "Discount Percent",
            "type": "string",
            "description": "Discount percentage, calculated only from a genuine current price and strike-through list price",
            "template": "{{discountPercent}}"
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "ISO currency code resolved from the product price, when available",
            "template": "{{currency}}"
          },
          "stars": {
            "title": "Rating",
            "type": "string",
            "description": "Average star rating from 1 to 5",
            "template": "{{stars}}"
          },
          "starsBreakdown": {
            "title": "Rating Breakdown",
            "type": "string",
            "description": "Rating breakdown by star count as a share per star, 0.0-1.0 (JSON object), from the product detail page when rendered",
            "template": "{{starsBreakdown}}"
          },
          "reviewsCount": {
            "title": "Reviews Count",
            "type": "string",
            "description": "Total number of customer reviews",
            "template": "{{reviewsCount}}"
          },
          "answeredQuestions": {
            "title": "Answered Questions",
            "type": "string",
            "description": "Answered-question count, only when the detail page renders it",
            "template": "{{answeredQuestions}}"
          },
          "inStock": {
            "title": "In Stock",
            "type": "string",
            "description": "Whether the product is currently in stock",
            "template": "{{inStock}}"
          },
          "inStockText": {
            "title": "Stock Status",
            "type": "string",
            "description": "Detailed stock availability text",
            "template": "{{inStockText}}"
          },
          "thumbnailImage": {
            "title": "Image",
            "type": "string",
            "description": "Main product image URL",
            "template": "{{thumbnailImage}}"
          },
          "features": {
            "title": "Features",
            "type": "string",
            "description": "List of product features and bullet points (JSON array)",
            "template": "{{features}}"
          },
          "description": {
            "title": "Description",
            "type": "string",
            "description": "Full product description",
            "template": "{{description}}"
          },
          "breadCrumbs": {
            "title": "Categories",
            "type": "string",
            "description": "Product category breadcrumb path",
            "template": "{{breadCrumbs}}"
          },
          "bestsellerRanks": {
            "title": "Bestseller Ranks",
            "type": "string",
            "description": "Bestseller rankings in different categories (JSON array)",
            "template": "{{bestsellerRanks}}"
          },
          "specifications": {
            "title": "Specifications",
            "type": "string",
            "description": "Deduplicated product specifications (JSON object), from the overview and technical-detail tables",
            "template": "{{specifications}}"
          },
          "seller": {
            "title": "Seller",
            "type": "string",
            "description": "Seller identity {name, id, url}; omitted when no real seller ID can be resolved",
            "template": "{{seller}}"
          },
          "delivery": {
            "title": "Delivery",
            "type": "string",
            "description": "Delivery information and estimated date",
            "template": "{{delivery}}"
          },
          "fastestDelivery": {
            "title": "Fastest Delivery",
            "type": "string",
            "description": "Fastest delivery estimate, only when the detail page renders it",
            "template": "{{fastestDelivery}}"
          },
          "returnPolicy": {
            "title": "Return Policy",
            "type": "string",
            "description": "Return policy text, from the product detail page",
            "template": "{{returnPolicy}}"
          },
          "support": {
            "title": "Support",
            "type": "string",
            "description": "Support/warranty information, only when the detail page renders it",
            "template": "{{support}}"
          },
          "priceVariants": {
            "title": "Price Variants",
            "type": "string",
            "description": "Per-variant price map, only when the detail page exposes one",
            "template": "{{priceVariants}}"
          },
          "locationText": {
            "title": "Delivery Location",
            "type": "string",
            "description": "Delivery destination the product detail page rendered for",
            "template": "{{locationText}}"
          },
          "shippingPrice": {
            "title": "Shipping Price",
            "type": "string",
            "description": "Shipping cost when explicitly shown (0 means free shipping)",
            "template": "{{shippingPrice}}"
          },
          "variantAsins": {
            "title": "Variant ASINs",
            "type": "string",
            "description": "List of variant product ASINs (JSON array)",
            "template": "{{variantAsins}}"
          },
          "variantAttributes": {
            "title": "Variant Attributes",
            "type": "string",
            "description": "Visible variant dimensions (JSON array of {name, values}), when a twister widget exists",
            "template": "{{variantAttributes}}"
          },
          "reviewsLink": {
            "title": "Reviews Link",
            "type": "string",
            "description": "Absolute link to the full reviews page, when available",
            "template": "{{reviewsLink}}"
          },
          "categoryUrl": {
            "title": "Category URL",
            "type": "string",
            "description": "Source category/search URL",
            "template": "{{categoryUrl}}"
          },
          "categoryPage": {
            "title": "Category Page",
            "type": "string",
            "description": "Page number in search results",
            "template": "{{categoryPage}}"
          },
          "categoryPosition": {
            "title": "Position",
            "type": "string",
            "description": "Position in search results",
            "template": "{{categoryPosition}}"
          },
          "organicPosition": {
            "title": "Organic Position",
            "type": "string",
            "description": "Position among organic results (sponsored rows are excluded from this count)",
            "template": "{{organicPosition}}"
          },
          "scrapedAt": {
            "title": "Scraped At",
            "type": "string",
            "description": "ISO timestamp when the data was scraped",
            "template": "{{scrapedAt}}"
          },
          "sourceLayout": {
            "title": "Source Layout",
            "type": "string",
            "description": "Which page layout this card was extracted from: SEARCH_GRID, MERCHANDISING_LANDING, or MIXED",
            "template": "{{sourceLayout}}"
          },
          "sponsored": {
            "title": "Sponsored",
            "type": "string",
            "description": "Whether this result is a sponsored/ad placement (evidence-only)",
            "template": "{{sponsored}}"
          },
          "isSponsored": {
            "title": "Is Sponsored",
            "type": "string",
            "description": "Same true/false value as `sponsored`",
            "template": "{{isSponsored}}"
          },
          "resultType": {
            "title": "Result Type",
            "type": "string",
            "description": "Result classification: ORGANIC, SPONSORED, EDITORIAL, or OTHER",
            "template": "{{resultType}}"
          },
          "badge": {
            "title": "Badge",
            "type": "string",
            "description": "Merchandising badge shown on the card (e.g. BestSeller, AmazonsChoice)",
            "template": "{{badge}}"
          },
          "boughtInPastMonth": {
            "title": "Bought In Past Month",
            "type": "string",
            "description": "Number of units bought in the past month, parsed from the card's compact-count hint",
            "template": "{{boughtInPastMonth}}"
          },
          "boughtInPastMonthText": {
            "title": "Bought In Past Month (raw text)",
            "type": "string",
            "description": "Raw \"X+ bought in past month\" card text",
            "template": "{{boughtInPastMonthText}}"
          },
          "coupon": {
            "title": "Coupon",
            "type": "string",
            "description": "Coupon text shown on the card, if any",
            "template": "{{coupon}}"
          },
          "stockText": {
            "title": "Stock Text",
            "type": "string",
            "description": "Raw stock hint shown on the listing card",
            "template": "{{stockText}}"
          },
          "unitPrice": {
            "title": "Unit Price",
            "type": "string",
            "description": "Per-unit price text shown on the listing card",
            "template": "{{unitPrice}}"
          },
          "dealText": {
            "title": "Deal Text",
            "type": "string",
            "description": "Raw deal/percent-off text shown on the listing card",
            "template": "{{dealText}}"
          },
          "soldByText": {
            "title": "Sold By Text",
            "type": "string",
            "description": "Raw \"Sold by\" line shown on the listing card",
            "template": "{{soldByText}}"
          },
          "moreOptionsText": {
            "title": "More Options Text",
            "type": "string",
            "description": "Raw \"More options\" hint shown on the listing card",
            "template": "{{moreOptionsText}}"
          },
          "deliveryEstimate": {
            "title": "Delivery Estimate",
            "type": "string",
            "description": "Estimated delivery text shown on the card",
            "template": "{{deliveryEstimate}}"
          },
          "shipsTo": {
            "title": "Ships To",
            "type": "string",
            "description": "Ships-to location text shown on the card, if any",
            "template": "{{shipsTo}}"
          },
          "sustainabilityFeatures": {
            "title": "Sustainability Features",
            "type": "string",
            "description": "Sustainability/Climate Pledge Friendly badge labels (JSON array)",
            "template": "{{sustainabilityFeatures}}"
          },
          "variantsCount": {
            "title": "Variants Count",
            "type": "string",
            "description": "Number of additional color/style variants shown via the card's \"+N\" hint",
            "template": "{{variantsCount}}"
          },
          "prime": {
            "title": "Prime",
            "type": "string",
            "description": "Whether the card shows an Amazon Prime badge (evidence-only)",
            "template": "{{prime}}"
          },
          "isPrime": {
            "title": "Is Prime",
            "type": "string",
            "description": "Same true/false value as `prime`",
            "template": "{{isPrime}}"
          },
          "offerCount": {
            "title": "Offer Count",
            "type": "string",
            "description": "Number of \"More Buying Choices\" offers shown on the card",
            "template": "{{offerCount}}"
          },
          "lowestOfferPrice": {
            "title": "Lowest Offer Price",
            "type": "string",
            "description": "Lowest \"More Buying Choices\" offer price (JSON object with value and currency)",
            "template": "{{lowestOfferPrice}}"
          },
          "resultsTotal": {
            "title": "Results Total",
            "type": "string",
            "description": "Total number of results reported by the results-info bar",
            "template": "{{resultsTotal}}"
          },
          "resultsFrom": {
            "title": "Results From",
            "type": "string",
            "description": "Starting result index reported by the results-info bar",
            "template": "{{resultsFrom}}"
          },
          "resultsTo": {
            "title": "Results To",
            "type": "string",
            "description": "Ending result index reported by the results-info bar",
            "template": "{{resultsTo}}"
          },
          "position": {
            "title": "Position",
            "type": "string",
            "description": "Position metadata (JSON object with page, positionOnPage, globalPosition, uuid)",
            "template": "{{position}}"
          },
          "facets": {
            "title": "Facets",
            "type": "string",
            "description": "Refinement facets available on this results page (JSON array)",
            "template": "{{facets}}"
          },
          "relatedSearches": {
            "title": "Related Searches",
            "type": "string",
            "description": "Related search suggestions shown on this results page (JSON array of text/url pairs)",
            "template": "{{relatedSearches}}"
          }
        },
        "required": [
          "url",
          "asin",
          "scrapedAt"
        ]
      },
      "dockerfile": "../Dockerfile",
      "readme": "# Amazon Search, Category & Seller Listings Extractor\n\nPull Amazon product listings from **keyword search, category/search URLs, browse-node IDs, seller\nstorefronts, ASINs, and exact product URLs** in one run. Every record carries the listing card\ndata — price, brand, rating, badges, images, delivery hints, and organic/sponsored position — and\noptional product-detail enrichment adds specifications, the full gallery, seller identity, rating\nhistogram, variants, and bestseller ranks. No login, cookies, or API key needed.\n\n## What this actor does\n\n- **Six additive input modes.** Combine `keywords`, `categoryUrls`, `categoryNodeIds`,\n  `sellerIds`, `asins`, and `productUrls` in the same run; every source is processed and\n  deduplicated by ASIN.\n- **Exact product lookup.** ASIN and product-URL modes open `/dp/{ASIN}` directly. They never\n  fall back to an Amazon keyword search, so a known product cannot turn into an unrelated result.\n- **Real category listings.** Node IDs use Amazon's `/s?rh=n:{node}&fs=true` listing route, not\n  the `/b?node=` merchandising landing page. Search, seller (`/s?me=`), and seller-profile\n  (`/sp?seller=`) URLs are routed automatically.\n- **Playwright reliability.** Each marketplace session is warmed up on the homepage and paced\n  with human-like jitter. Continue-shopping interstitials, dog pages, rate limits, and\n  interstitial challenges are classified and retried. Proxy selection is automatic: an available\n  non-residential (datacenter/static) group in the marketplace's country, never residential by\n  default.\n- **Listing intelligence.** Brand, card image set and large image, organic position, sponsored\n  flag, ships-to line, variant count, unit price, deal text, stock hint, sold-by line, and a\n  genuine list price kept separate from Amazon's \"Typical price\".\n- **Detail enrichment.** Specifications, gallery images, rating histogram, reviews link, seller\n  ID/name/URL, variant dimensions, BSR, breadcrumbs, description, features, and stock status.\n- **Safe output.** Empty fields are omitted at every depth; nothing is emitted as `null`.\n\n## Output per product\n\n### Listing fields (all modes)\n\n- `asin`, `title`, `url`, `marketplace`, `sourceMode`, `searchQuery`\n- `price` `{value, currency, display}`, `listPrice`, `typicalPrice`, `discountPercent`\n- `stars`, `reviewsCount`, `brand`\n- `thumbnailImage`, `images`, `imageLarge`\n- `badge`, `coupon`, `dealText`, `stockText`, `unitPrice`, `soldByText`, `moreOptionsText`\n- `boughtInPastMonth`, `boughtInPastMonthText`\n- `deliveryEstimate`, `shipsTo`, `sustainabilityFeatures`, `variantsCount`\n- `offerCount`, `lowestOfferPrice`\n- `sponsored` / `isSponsored`, `resultType`, `prime` / `isPrime`\n- `organicPosition`, `categoryPosition`\n- `categoryUrl`, `categoryPage`, `sourceLayout`, `position`\n- `resultsTotal`, `resultsFrom`, `resultsTo`, `facets`, `relatedSearches`\n- `scrapedAt`\n\n### Product-detail fields (detail enrichment or ASIN/product-URL modes)\n\n- `brand`, `inStock`, `inStockText`, `currency`\n- `specifications` (overview + technical tables)\n- `images` (gallery), `imageLarge`\n- `starsBreakdown` (share per star, 0.0-1.0)\n- `reviewsLink`, `answeredQuestions`\n- `breadCrumbs`, `description`, `features`\n- `variantAsins`, `variantAttributes`, `priceVariants`\n- `delivery`, `fastestDelivery`, `shippingPrice`, `returnPolicy`, `support`\n- `seller` `{name, id, url}` — omitted when no real seller ID can be resolved\n- `bestsellerRanks`, `locationText`\n\nFields that Amazon does not render for a specific product are omitted, never fabricated. This\nincludes render-dependent badges (Prime, sponsored), seller identity, and some buy-box details.\n\n## Input\n\nAt least one of `categoryUrls`, `keywords`, `productUrls`, `asins`, `sellerIds`, or\n`categoryNodeIds` is required. All modes are additive.\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `categoryUrls` | array | – | Search, category, seller-profile, or product URLs; routed automatically |\n| `keywords` | array | – | Search phrases; each builds `/s?k={query}` |\n| `productUrls` | array | – | Exact product URLs; normalized to `/dp/{ASIN}` on their own marketplace |\n| `asins` | array | – | Exact ASINs; each opens `/dp/{ASIN}` directly |\n| `sellerIds` | array | – | Seller/merchant IDs; each builds `/s?me={id}` |\n| `categoryNodeIds` | array | – | Browse-node IDs; each builds `/s?rh=n:{id}&fs=true` |\n| `marketplaceDomain` | select | `amazon.com` | Marketplace for keyword/ASIN/seller/node modes (21 domains) |\n| `maxItems` | integer | `0` | Global cap across all sources; `0` means unlimited |\n| `maxItemsPerCategory` | integer | `10` | Cap per keyword/URL/seller/node source (1-10000) |\n| `maxPages` | integer | `1` | Pages per listing source (1-50); keyword search itself stops at 7 |\n| `scrapeProductDetails` | boolean | `true` | Visit each accepted product page for detail fields |\n| `includeSpecifications` | boolean | `true` | Include the specifications object when detail pages are scraped |\n| `sortBy` | select | `relevanceblender` | Featured, price, review, newest, or best-seller sort |\n| `priceMin`, `priceMax` | number | – | Price range in the marketplace currency |\n| `minRating` | number | – | Minimum star rating (0-5) |\n| `includeSponsored` | boolean | `true` | Include sponsored placements |\n| `onlyDeals` | boolean | `false` | Keep only cards with visible deal evidence |\n| `primeOnly` | boolean | `false` | Keep only cards with a visible Prime badge |\n| `rateLimitDelay` | integer | `2` | Base delay in seconds between requests (1-30) |\n\n### Example: keyword search, cards only\n\n```json\n{\n  \"keywords\": [\"wireless earbuds\", \"bluetooth speaker\"],\n  \"maxItemsPerCategory\": 100,\n  \"maxPages\": 3,\n  \"scrapeProductDetails\": false,\n  \"sortBy\": \"review-rank\",\n  \"minRating\": 4\n}\n```\n\n### Example: exact products and a product URL together\n\n```json\n{\n  \"asins\": [\"B08N5WRWNW\", \"B09X7MPX8L\"],\n  \"productUrls\": [\"https://www.amazon.de/dp/B08N5WRWNW\"],\n  \"scrapeProductDetails\": true,\n  \"includeSpecifications\": true\n}\n```\n\n### Example: category node, seller storefront, and filters\n\n```json\n{\n  \"categoryNodeIds\": [\"172282\"],\n  \"sellerIds\": [\"A1B2C3D4E5F6G7\"],\n  \"marketplaceDomain\": \"amazon.co.uk\",\n  \"maxItemsPerCategory\": 50,\n  \"onlyDeals\": true,\n  \"maxPages\": 3\n}\n```\n\n## Supported Amazon Marketplaces\n\namazon.com (US), amazon.co.uk (UK), amazon.de (Germany), amazon.fr (France), amazon.it (Italy),\namazon.es (Spain), amazon.ca (Canada), amazon.com.au (Australia), amazon.co.jp (Japan),\namazon.in (India), amazon.com.br (Brazil), amazon.com.mx (Mexico), amazon.nl (Netherlands),\namazon.se (Sweden), amazon.pl (Poland), amazon.com.tr (Turkey), amazon.ae (UAE),\namazon.sa (Saudi Arabia), amazon.sg (Singapore), amazon.com.be (Belgium), amazon.eg (Egypt).\n\n## Use cases\n\n- **Competitor price tracking** — monitor price, list price, typical price, and deal evidence.\n- **Category and keyword research** — collect top products with brand, rating, and organic rank.\n- **Sponsored-placement analysis** — compare organic position with sponsored rows.\n- **Seller storefront audits** — enumerate a seller's listed products.\n- **Product research** — pull full specifications, gallery, variants, and BSR for a shortlist.\n- **Multi-marketplace checks** — compare the same ASIN or keyword across 21 storefronts.\n\n## FAQ\n\n**Do I need Amazon cookies or an API key?**\nNo. The actor reads public search, category, seller, and product pages anonymously. No account,\ncookie, token, or API key is required.\n\n**Do ASIN inputs still search Amazon?**\nNo. ASIN and product-URL modes fetch the exact `/dp/{ASIN}` page. Keyword mode is the only mode\nthat performs a search.\n\n**Why is `listPrice` missing on a product that shows a \"Typical price\"?**\n\"Typical price\" is not a strike-through list price. It is returned separately as `typicalPrice`,\nand `discountPercent` is calculated only from a genuine current price plus list price. This\nprevents fake discounts.\n\n**Why are Prime or sponsored fields missing from some records?**\nAmazon does not render Prime icons or sponsored labels for every marketplace, exit country, or\nlayout. The actor reports only what the page actually shows and never claims a product is \"not\nPrime\" from a missing badge.\n\n**Why do I get fewer results than `maxPages` suggests?**\nAmazon caps keyword search at page 7. Category listings can go deeper. For more than a keyword\nsurface allows, split the query by category, brand, or price band and combine the runs.\n\n**Does the actor need my proxy?**\nNo. Proxy selection is automatic: it uses an available non-residential Apify Proxy group in the\nmarketplace's own country and never switches to residential billing on its own. There is no proxy\ninput to configure.\n\n**Why do prices appear in a currency different from the marketplace domain?**\nAmazon localizes currency and delivery to the request's exit country. The actor sets the\nmarketplace country automatically and reports the resolved `currency`; cross-border renders can\nstill differ from the domain's nominal currency.\n\n**How expensive is detail enrichment?**\nEach detail page is a full Amazon product page (roughly 2.5-3.1 MB). Set\n`scrapeProductDetails` to `false` for large listing runs and enable it only for a shortlist or\nfor ASIN/product-URL modes.\n\n**Is this affiliated with Amazon?**\nNo. It is an independent third-party actor that reads Amazon's public pages.\n",
      "categories": [
        "ECOMMERCE",
        "PRODUCTS"
      ],
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "title",
                  "asin",
                  "price",
                  "stars",
                  "reviewsCount",
                  "inStock",
                  "brand",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "title": {
                    "label": "Product Title",
                    "format": "text"
                  },
                  "asin": {
                    "label": "ASIN",
                    "format": "text"
                  },
                  "price": {
                    "label": "Price",
                    "format": "object"
                  },
                  "stars": {
                    "label": "Rating",
                    "format": "number"
                  },
                  "reviewsCount": {
                    "label": "Reviews",
                    "format": "number"
                  },
                  "inStock": {
                    "label": "In Stock",
                    "format": "boolean"
                  },
                  "brand": {
                    "label": "Brand",
                    "format": "text"
                  },
                  "url": {
                    "label": "URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      },
      "defaultRunOptions": {
        "build": "latest",
        "memoryMbytes": 1024,
        "timeoutSecs": 3600
      }
    },
    "buildNumber": "1.0.2",
    "imageDigest": "12a5d89e7cc3975c44d25f9f23c4573f16f3d3706cc7c2dabf65951007479562",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.05182222222222222
    }
  }
}