{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Reviews Scraper — Reviews, Ratings & Prices",
    "description": "Extract Amazon reviews, ratings, and product data from 14 marketplaces. Up to 500+ reviews per product. Price monitoring with alerts. No API key needed. Free trial included.",
    "version": "0.3",
    "x-build-id": "LaPdkhZMPoceMc5FT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rastriq~amazon-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rastriq-amazon-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/rastriq~amazon-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rastriq-amazon-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/rastriq~amazon-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rastriq-amazon-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "asins"
        ],
        "properties": {
          "asins": {
            "title": "ASINs or Product URLs",
            "type": "array",
            "description": "List of Amazon ASINs (e.g. B09V3KXJPB) or full product/review URLs. Accepts mixed formats.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Extraction Mode",
            "enum": [
              "reviews",
              "products",
              "both",
              "monitor",
              "cookie_refresh",
              "diagnostic"
            ],
            "type": "string",
            "description": "What to extract: 'reviews' (headless Chromium + HTML parsing), 'products' (Playwright, full product data), 'both' (reviews + products), 'monitor' (price & availability tracking). 'cookie_refresh' (internal: keeps the session alive and checks review access). Tip: for product data and price/stock tracking at catalog scale (no reviews), use Amazon Product Scraper & Price Tracker (rastriq/amazon-product-price-tracker) — one request per product, no cookies, price-drop alerts.",
            "default": "reviews"
          },
          "diagnostic_variant": {
            "title": "Diagnostic Variant",
            "enum": [
              "A1",
              "A2",
              "FACTORIAL",
              "A2CLEAN"
            ],
            "type": "string",
            "description": "Only for mode=diagnostic. A1: Playwright headless (control). A2: Camoufox anti-fingerprint. FACTORIAL: both sequential, same IP, dynamic ASIN discovery.",
            "default": "A1"
          },
          "marketplace": {
            "title": "Amazon Marketplace",
            "enum": [
              "amazon.com",
              "amazon.co.uk",
              "amazon.de",
              "amazon.fr",
              "amazon.es",
              "amazon.it",
              "amazon.ca",
              "amazon.com.mx",
              "amazon.com.br",
              "amazon.com.au",
              "amazon.nl",
              "amazon.pl",
              "amazon.se"
            ],
            "type": "string",
            "description": "Amazon domain to scrape. Default: amazon.com",
            "default": "amazon.com"
          },
          "max_reviews": {
            "title": "Max Reviews per ASIN",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of reviews to extract per product. Default: 100. This is a ceiling, not a promise: each ASIN emits an extraction_summary with the number actually extracted and the stop reason.",
            "default": 100
          },
          "sort_by": {
            "title": "Sort Reviews By",
            "enum": [
              "recent",
              "helpful"
            ],
            "type": "string",
            "description": "How to sort reviews. 'recent' for newest first, 'helpful' for most-voted.",
            "default": "recent"
          },
          "filter_by_star": {
            "title": "Filter by Star Rating",
            "enum": [
              "all_stars",
              "five_star",
              "four_star",
              "three_star",
              "two_star",
              "one_star",
              "positive",
              "critical"
            ],
            "type": "string",
            "description": "Filter reviews by star rating. 'all_stars' returns all ratings. 'positive' = 4-5 stars, 'critical' = 1-3 stars, or pick a specific star level.",
            "default": "all_stars"
          },
          "filter_by_keyword": {
            "title": "Filter by Keyword",
            "type": "string",
            "description": "Keep only reviews matching this keyword. Applied by Amazon on /product-reviews/; on other strategies reviews are verified locally (title/body contains all terms) and non-matching ones are discarded.",
            "default": ""
          },
          "verified_only": {
            "title": "Verified Purchases Only",
            "type": "boolean",
            "description": "Only extract reviews from verified purchases.",
            "default": false
          },
          "media_only": {
            "title": "Reviews with Media Only",
            "type": "boolean",
            "description": "Only reviews with images or videos. On strategies that cannot apply it server-side, reviews are verified locally by the presence of images (video-only reviews are then discarded).",
            "default": false
          },
          "all_stars_mode": {
            "title": "All Stars Mode (star-by-star)",
            "type": "boolean",
            "description": "Walk the 5 star filters sequentially (not in parallel) within the same browser page, with a soft share per star and the unused share redistributed to stars that still have reviews. Only applies when filter_by_star is 'all_stars'. It does not guarantee a minimum number of reviews: it uses the same session-dependent review pages as the normal mode.",
            "default": false
          },
          "max_concurrent": {
            "title": "Max Concurrent ASINs",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many ASINs to process in parallel per marketplace. Each worker uses its own isolated browser context and page. Higher = faster but more memory (~1 GB recommended for 1–2 workers). Default: 3.",
            "default": 3
          },
          "proxy_type": {
            "title": "Proxy Type",
            "enum": [
              "decodo",
              "residential"
            ],
            "type": "string",
            "description": "Proxy pool to use. Decodo residential is the default and recommended option. Apify residential is experimental: it may be blocked by Amazon on review endpoints. mode=cookie_refresh always uses Decodo.",
            "default": "decodo"
          },
          "delay_between_pages": {
            "title": "Delay Between Pages (seconds)",
            "minimum": 0.3,
            "maximum": 10,
            "type": "number",
            "description": "Delay between review page requests in seconds. Higher = safer, lower = faster. Default: 1.0",
            "default": 1
          },
          "price_alert_threshold": {
            "title": "Price Alert Threshold (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "For monitor mode: minimum price change percentage to report. Set to 0 to report all changes. Default: 0",
            "default": 0
          },
          "monitor_output": {
            "title": "Monitor Output Filter",
            "enum": [
              "all",
              "changes_only"
            ],
            "type": "string",
            "description": "For monitor mode: 'all' outputs every check, 'changes_only' outputs only when price or availability changed.",
            "default": "all"
          },
          "max_requests_per_asin": {
            "title": "Max page requests per ASIN",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Budget of page loads / AJAX calls per ASIN, including retries. Leave empty for an automatic budget proportional to max_reviews (40 + 3 per 10 reviews, capped at 600)."
          },
          "max_time_per_asin_secs": {
            "title": "Max time per ASIN (seconds)",
            "minimum": 30,
            "maximum": 7200,
            "type": "integer",
            "description": "Time budget per ASIN. When reached, the ASIN stops with stop_reason=budget_time_exhausted.",
            "default": 900
          },
          "verify_reviews_access": {
            "title": "Verify review access on cookie refresh",
            "type": "boolean",
            "description": "Only for mode=cookie_refresh: after refreshing, load review page 1 (and page 2 if available) of the first ASIN to verify review access and pagination. A homepage greeting alone does not prove review access. If no ASIN is given, or the ASIN does not exist in that marketplace, a rated best seller of the marketplace is probed instead.",
            "default": true
          },
          "proxy_session_id": {
            "title": "Proxy session ID (advanced)",
            "type": "string",
            "description": "Optional fixed Decodo sticky-session ID (letters and digits). The marketplace is appended so countries never share it. Empty: a new session per run (cookie_refresh uses one session per marketplace and UTC day)."
          },
          "proxy_session_duration_mins": {
            "title": "Proxy session duration (minutes, advanced)",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "Sticky-session duration for Decodo. A fixed session ID only keeps the same IP within this window. Default: 30."
          },
          "fail_on_functional_error": {
            "title": "Fail the run on functional error",
            "type": "boolean",
            "description": "If enabled, the run finishes as FAILED when the functional result is 'failed' (e.g. expired session, no ASIN with results). By default the run finishes SUCCEEDED and the functional status is reported in RUN_SUMMARY, the status message and the dataset.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}