{
  "title": "Amazon Customer Review & Rating Summary Scraper Input",
  "description": "Collect Amazon customer reviews plus each product's rating summary with no login or proxy setup. Add product URLs/ASINs or discover products by keyword; reviews are merged and deduplicated, with optional extended history and filters.",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "productUrls": {
      "title": "Product URLs or ASINs",
      "type": "array",
      "description": "Amazon product URLs (/dp/, /gp/product/, /gp/aw/d/, /product/) or bare 10-character ASINs, on any supported Amazon domain. Leave empty to discover products from `keywords`/`categoryUrls` instead.",
      "editor": "stringList",
      "prefill": [
        "https://www.amazon.com/dp/B09X7MPX8L"
      ],
      "items": {
        "type": "string"
      },
      "sectionCaption": "Products",
      "sectionDescription": "Scrape these products, or leave empty and discover products by keyword or category."
    },
    "keywords": {
      "title": "Keywords (discover products)",
      "type": "array",
      "description": "Search terms used to discover products when `productUrls` is empty (e.g. \"wireless earbuds\"). Each keyword contributes up to `maxProductsToDiscover` products.",
      "editor": "stringList",
      "prefill": [],
      "default": [],
      "items": {
        "type": "string"
      }
    },
    "categoryUrls": {
      "title": "Category or Search URLs (discover products)",
      "type": "array",
      "description": "Advanced discovery: Amazon `/s?...` search URLs or `/b?node=...` category URLs. Used only when `productUrls` is empty.",
      "editor": "stringList",
      "prefill": [],
      "default": [],
      "items": {
        "type": "string"
      }
    },
    "maxProductsToDiscover": {
      "title": "Max Products to Discover",
      "type": "integer",
      "description": "Maximum products discovered from each keyword or category URL (1-50). Ignored when `productUrls` is supplied.",
      "editor": "number",
      "default": 5,
      "prefill": 5,
      "minimum": 1,
      "maximum": 50
    },
    "country": {
      "title": "Amazon Marketplace",
      "type": "string",
      "description": "Amazon storefront to use for bare ASINs, discovery, and products whose URL does not carry a domain. Product URLs keep their own domain.",
      "editor": "select",
      "default": "amazon.com",
      "prefill": "amazon.com",
      "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",
        "amazon.ie",
        "amazon.com.be",
        "amazon.co.za",
        "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)",
        "Singapore (amazon.sg)",
        "United Arab Emirates (amazon.ae)",
        "Saudi Arabia (amazon.sa)",
        "Poland (amazon.pl)",
        "Sweden (amazon.se)",
        "Turkey (amazon.com.tr)",
        "Ireland (amazon.ie)",
        "Belgium (amazon.com.be)",
        "South Africa (amazon.co.za)",
        "Egypt (amazon.eg)"
      ]
    },
    "maxReviews": {
      "title": "Max Reviews per Product",
      "type": "integer",
      "description": "Hard cap per product after merging and deduplication (1-2000). The product-page sample alone yields about 8-13 rows; the optional extended feed can add 100-800+ for popular US products. In optional cookie mode this is the paginated cap.",
      "editor": "number",
      "default": 100,
      "prefill": 15,
      "minimum": 1,
      "maximum": 2000,
      "sectionCaption": "Review collection",
      "sectionDescription": "Control review depth and which public sources are merged."
    },
    "extendedHistory": {
      "title": "Extended Review History",
      "type": "boolean",
      "description": "Merge Amazon's public extended review feed for each ASIN (no login): up to 100 rows per star/sort bucket, typically 100-800+ unique reviews for popular US products, deduplicated against the product-page sample. Coverage varies by ASIN and the feed carries Amazon.com reviews only.",
      "default": true,
      "prefill": true
    },
    "mergeMarketplaces": {
      "title": "Merge Extra Marketplaces",
      "type": "array",
      "description": "Fetch the same product on these additional Amazon marketplaces and merge their deduplicated product-page reviews. Empty = the product's own marketplace only.",
      "editor": "select",
      "prefill": [],
      "default": [],
      "items": {
        "type": "string",
        "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",
          "amazon.ie",
          "amazon.com.be",
          "amazon.co.za",
          "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)",
          "Singapore (amazon.sg)",
          "United Arab Emirates (amazon.ae)",
          "Saudi Arabia (amazon.sa)",
          "Poland (amazon.pl)",
          "Sweden (amazon.se)",
          "Turkey (amazon.com.tr)",
          "Ireland (amazon.ie)",
          "Belgium (amazon.com.be)",
          "South Africa (amazon.co.za)",
          "Egypt (amazon.eg)"
        ]
      }
    },
    "sortBy": {
      "title": "Sort Reviews By",
      "type": "string",
      "description": "Order of the returned reviews: most helpful first, or most recent first.",
      "editor": "select",
      "default": "helpful",
      "prefill": "helpful",
      "enum": [
        "helpful",
        "recent"
      ],
      "enumTitles": [
        "Most Helpful",
        "Most Recent"
      ]
    },
    "filterByStar": {
      "title": "Filter by Star Rating",
      "type": "string",
      "description": "Keep only reviews with this rating. `positive` keeps 4-5 stars and `critical` keeps 1-2 stars. Applied after merging, so narrow filters can legitimately return few or no rows.",
      "editor": "select",
      "default": "",
      "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)"
      ]
    },
    "verifiedPurchasesOnly": {
      "title": "Verified Purchases Only",
      "type": "boolean",
      "description": "Keep only reviews carrying Amazon's Verified Purchase badge. Applied server-side in the extended feed (and cookie mode) and client-side for product-page rows.",
      "default": false,
      "prefill": false
    },
    "filterKeywords": {
      "title": "Filter by Keywords",
      "type": "array",
      "description": "Keep only reviews whose title or text contains at least one of these keywords (case-insensitive). Empty = no keyword filter.",
      "editor": "stringList",
      "prefill": [],
      "default": [],
      "items": {
        "type": "string"
      }
    },
    "reviewsNewerThan": {
      "title": "Reviews Newer Than",
      "type": "string",
      "description": "Keep only reviews dated on or after this date (YYYY-MM-DD or any ISO date). Reviews whose localized date cannot be parsed are kept. Empty = no date filter.",
      "editor": "datepicker",
      "default": "",
      "prefill": ""
    },
    "mediaReviewsOnly": {
      "title": "Media Reviews Only",
      "type": "boolean",
      "description": "Keep only reviews that include at least one reviewer-uploaded image or video.",
      "default": false,
      "prefill": false
    },
    "includeImages": {
      "title": "Include Review Images and Videos",
      "type": "boolean",
      "description": "Extract full-resolution image and video URLs uploaded by reviewers.",
      "default": true,
      "prefill": true,
      "sectionCaption": "Output options",
      "sectionDescription": "Toggle optional fields. GDPR-sensitive reviewer identity is off by default."
    },
    "includeAggregates": {
      "title": "Include Rating Summary",
      "type": "boolean",
      "description": "Emit one `amazon_review_aggregate` record per product with product title, average rating, global ratings count, star histogram, derived per-star counts, and Amazon's \"Customers say\" summary with aspects. The histogram is filled from the rating-summary popover when the page omits it.",
      "default": true,
      "prefill": true
    },
    "includeGdprSensitive": {
      "title": "Include Reviewer Names and Profiles",
      "type": "boolean",
      "description": "Include reviewer display name, profile link, and avatar. Leave off for GDPR-sensitive workloads.",
      "default": false,
      "prefill": false
    },
    "cookieString": {
      "title": "Amazon Session Cookie (optional)",
      "type": "string",
      "description": "Optional. Paste your own logged-in Amazon session cookie (the literal Cookie header value) to use paginated /product-reviews/ and unlock deeper history. Never required; the actor returns real public data without it. Never paste a password.",
      "editor": "textarea",
      "isSecret": true
    }
  }
}
