{
  "description": "Collect Amazon customer reviews and rating summaries with no login and no proxy setup. The actor reads the product page's inline review block (~8-13 top reviews, retried across desktop and mobile because the wall is probabilistic) and, when `extendedHistory` is on, merges Amazon's public extended review feed for the same ASIN (typically 100-850+ unique US reviews). `mergeMarketplaces` adds the product page from other Amazon marketplaces and unions the deduplicated reviews.",
  "properties": {
    "categoryUrls": {
      "default": [],
      "description": "Advanced mode: supply your own Amazon `/s?...` or `/b?node=...` category/search URL(s) directly (used only when `productUrls` is empty). Products are discovered the same way as `keywords`.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Category / Search URLs (auto-discover products)",
      "type": "array"
    },
    "country": {
      "default": "amazon.com",
      "description": "Amazon country domain to scrape from. URLs from a different domain are honored automatically.",
      "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.sg",
        "amazon.ae",
        "amazon.sa",
        "amazon.pl",
        "amazon.se",
        "amazon.com.tr"
      ],
      "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)",
        "Singapore (amazon.sg)",
        "UAE (amazon.ae)",
        "Saudi Arabia (amazon.sa)",
        "Poland (amazon.pl)",
        "Sweden (amazon.se)",
        "Turkey (amazon.com.tr)"
      ],
      "prefill": "amazon.com",
      "title": "Amazon Domain",
      "type": "string"
    },
    "extendedHistory": {
      "default": true,
      "description": "Merge Amazon's public extended review feed for each ASIN (no login, no cookie): up to 100 reviews per star/sort bucket, and walking every bucket yields 100-850+ unique reviews for popular US products, deduplicated against the product-page sample. Coverage varies by ASIN (some products expose few or no rows) and the feed carries Amazon.com reviews only; when off, only the ~8-13 product-page top reviews are returned.",
      "prefill": true,
      "title": "Extended Review History",
      "type": "boolean"
    },
    "filterByStar": {
      "default": "",
      "description": "Keep only reviews with this rating. `positive` keeps 4-5 star reviews; `critical` keeps 1-2 star reviews. Applied to the merged set, so narrow filters can legitimately return few or no rows.",
      "editor": "select",
      "enum": [
        "",
        "1",
        "2",
        "3",
        "4",
        "5",
        "positive",
        "critical"
      ],
      "enumTitles": [
        "All Stars",
        "1 Star",
        "2 Stars",
        "3 Stars",
        "4 Stars",
        "5 Stars",
        "Positive (4-5 stars)",
        "Critical (1-2 stars)"
      ],
      "title": "Filter by Star Rating",
      "type": "string"
    },
    "filterKeywords": {
      "default": [],
      "description": "Keep only reviews whose title or text contains at least one of these keywords (case-insensitive). Empty = no keyword filter.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Filter by Keywords",
      "type": "array"
    },
    "includeAggregates": {
      "default": true,
      "description": "Emit one additional `amazon_review_aggregate` record per product with the product title, average rating, global ratings count, star histogram (plus derived per-star counts), and \"Customers say\" AI summary with aspects -- parsed from the same page HTML already fetched. These widgets render server-side even when individual review cards are gated, so this record is available more reliably than the reviews themselves.",
      "prefill": true,
      "title": "Include Review Aggregates",
      "type": "boolean"
    },
    "includeGdprSensitive": {
      "default": false,
      "description": "Include reviewer names, profile links, and avatars. Set to false for GDPR compliance.",
      "prefill": false,
      "title": "Include GDPR Sensitive Data",
      "type": "boolean"
    },
    "includeImages": {
      "default": true,
      "description": "Extract images and videos uploaded by reviewers (full-resolution URLs).",
      "prefill": true,
      "sectionCaption": "Output Options",
      "sectionDescription": "Toggle which fields are emitted. GDPR-sensitive fields are off by default.",
      "title": "Include Review Images",
      "type": "boolean"
    },
    "keywords": {
      "default": [],
      "description": "Search keywords used to auto-discover products when `productUrls` is empty (e.g. \"wireless earbuds\"). Fetches Amazon's public `/s?k=` search results page for each keyword and reviews up to `maxProductsToDiscover` resulting products.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Keywords (auto-discover products)",
      "type": "array"
    },
    "maxProductsToDiscover": {
      "default": 10,
      "description": "Maximum number of products to discover per run from `keywords`/`categoryUrls`. Ignored when `productUrls` is supplied directly.",
      "editor": "number",
      "maximum": 50,
      "minimum": 1,
      "prefill": 10,
      "title": "Max Products to Discover",
      "type": "integer"
    },
    "maxReviews": {
      "default": 100,
      "description": "Hard cap on the number of reviews returned per product AFTER merging and deduplication (1-2000). The product-page sample alone yields ~8-13; the extended review feed can add 100-850+ for popular US products.",
      "editor": "number",
      "maximum": 2000,
      "minimum": 1,
      "prefill": 15,
      "sectionCaption": "Filters & Sorting",
      "sectionDescription": "Limit and shape the merged review set returned per product. All filters below are applied after merging and deduplication.",
      "title": "Max Reviews per Product",
      "type": "integer"
    },
    "mediaReviewsOnly": {
      "default": false,
      "description": "Keep only reviews that include at least one reviewer-uploaded image or video.",
      "prefill": false,
      "title": "Media Reviews Only",
      "type": "boolean"
    },
    "mergeMarketplaces": {
      "default": [],
      "description": "Additional Amazon marketplaces whose product page is fetched for the same ASIN and whose reviews are merged (deduplicated by review ID and content). Each marketplace typically adds a handful of locally-written reviews. Empty = only the product's own marketplace.",
      "editor": "select",
      "items": {
        "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.sg",
          "amazon.ae",
          "amazon.sa",
          "amazon.pl",
          "amazon.se",
          "amazon.com.tr"
        ],
        "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)",
          "Singapore (amazon.sg)",
          "UAE (amazon.ae)",
          "Saudi Arabia (amazon.sa)",
          "Poland (amazon.pl)",
          "Sweden (amazon.se)",
          "Turkey (amazon.com.tr)"
        ],
        "type": "string"
      },
      "prefill": [],
      "title": "Merge Extra Marketplaces",
      "type": "array"
    },
    "productUrls": {
      "description": "List of Amazon product URLs to scrape reviews from. Supports /dp/, /gp/product/, /gp/aw/d/ and /product/ URL formats across 19+ Amazon domains. A bare 10-character ASIN (e.g. \"B09X7MPX8L\", no URL) is also accepted -- it is expanded into a full URL using the `country` domain below. Leave empty and use `keywords`/`categoryUrls` instead to discover products automatically.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "https://www.amazon.com/dp/B09X7MPX8L"
      ],
      "sectionCaption": "Inputs",
      "sectionDescription": "Product URLs whose reviews should be scraped. Any of the supported Amazon country domains is accepted.",
      "title": "Product URLs",
      "type": "array"
    },
    "reviewsNewerThan": {
      "description": "Keep only reviews dated on or after this date (e.g. 2026-01-15 or any ISO date). Reviews whose localized date cannot be parsed are kept. Empty = no date filter.",
      "editor": "datepicker",
      "prefill": "",
      "title": "Reviews Newer Than",
      "type": "string"
    },
    "sortBy": {
      "default": "helpful",
      "description": "How to sort the returned reviews: most helpful first, or most recent first.",
      "editor": "select",
      "enum": [
        "helpful",
        "recent"
      ],
      "enumTitles": [
        "Most Helpful",
        "Most Recent"
      ],
      "prefill": "helpful",
      "title": "Sort Reviews By",
      "type": "string"
    },
    "verifiedPurchasesOnly": {
      "default": false,
      "description": "Keep only reviews carrying Amazon's Verified Purchase badge. Applied server-side for the extended feed and client-side for product-page rows.",
      "prefill": false,
      "title": "Verified Purchases Only",
      "type": "boolean"
    }
  },
  "schemaVersion": 1,
  "title": "Amazon Reviews Scraper Input",
  "type": "object"
}
