{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Reviews Scraper — Customer Reviews, Product Reviews",
    "description": "Amazon product reviews by ASIN or URL, 20 marketplaces. One row per review: rating, title, text, author, country, date, verified purchase, helpful votes. Product row: Amazon ratings, ratings count, histogram. Free filters: negative reviews, verified only, with text. 8-13 per product, no login.",
    "version": "1.5",
    "x-build-id": "pjia9mAeMcvznuL1h"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kestrel~amazon-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kestrel-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/kestrel~amazon-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kestrel-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/kestrel~amazon-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kestrel-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",
        "properties": {
          "asins": {
            "title": "ASINs or product URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Amazon ASINs or product URLs, e.g. [\"B0BSHF7WHW\", \"https://www.amazon.co.uk/dp/B09G9FPHY6\"]. A URL's marketplace is used as is; a bare ASIN uses `domain`. Each ASIN + marketplace is fetched and billed once per run. Expect 8 to 13 reviews per product, never more: Amazon shows only that many without a login, so review rows cost at most $0.065 per product, plus $0.003 for its product row. An unknown ASIN or a page Amazon blocks costs nothing and is reported in a status row.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "domain": {
            "title": "Marketplace",
            "type": "string",
            "description": "Marketplace for bare ASINs, e.g. \"de\" for amazon.de. Default \"com\". One of: com, co.uk, de, fr, it, es, ca, com.au, co.jp, in, com.mx, com.br, nl, se, pl, sa, ae, sg, com.tr, com.be. Reviews, ratings and currency are that marketplace's own, so the same ASIN on two marketplaces is two products. Reviews come in whatever languages the marketplace page shows (no language filter, no translation). Ignored for full URLs, which carry their own marketplace.",
            "default": "com"
          },
          "minRating": {
            "title": "Only reviews at or below this rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Star CEILING, not a floor: keeps only reviews rated at or BELOW this many stars, e.g. 2 = one- and two-star reviews only, 3 = three stars and below. 0 (default) = every rating. Use for \"negative reviews\", \"complaints\", \"what do customers dislike\". The filter selects within the 8 to 13 reviews on the page, so a negative-only run returns a few rows per product and none when no visible review is negative. Dropped reviews are never charged; the product row is still delivered.",
            "default": 0
          },
          "verifiedOnly": {
            "title": "Only verified purchases",
            "type": "boolean",
            "description": "true = keep only reviews Amazon marks as Verified Purchase. Default false (every review). Dropped reviews are never charged. Use for \"verified purchase reviews only\".",
            "default": false
          },
          "requireText": {
            "title": "Only reviews with written text",
            "type": "boolean",
            "description": "true = drop rating-only reviews that have no written text. Default false. Use for sentiment analysis, topic mining or any request that needs words; dropped reviews are never charged.",
            "default": false
          },
          "includeProductRow": {
            "title": "Include a product row",
            "type": "boolean",
            "description": "true (DEFAULT) = one extra row per product at $0.003 with its overall rating, ratings count, 5-to-1-star histogram (when Amazon shows it), title, brand, availability, image, feature bullets and reviews_visible. Keep it for \"rating and review count for these ASINs\" and catalogue-wide rating sweeps. Set false to pay for review rows only.",
            "default": true
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 0,
            "maximum": 13,
            "type": "integer",
            "description": "0 (default) = every visible review: 8 to 13, the most Amazon shows without a login (the hard ceiling of this actor, hence the maximum of 13). N = the first N in Amazon's order (a mix of most recent and most helpful), e.g. 1 for a rating-only sweep: one review row plus the product row per ASIN, $0.008. There is no sort, date or only-new control: each run re-reads the same visible sample, so dedupe on review_id between runs. Applied after the filters.",
            "default": 0
          },
          "sessions": {
            "title": "Parallel sessions",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Parallel proxy sessions (one egress IP each), 1 to 16, e.g. 4 (default 4). More is faster for long ASIN lists; each session is paced separately.",
            "default": 4
          },
          "perIp": {
            "title": "Requests per second per IP",
            "minimum": 0.1,
            "maximum": 2,
            "type": "number",
            "description": "Requests per second per session, 0.1 to 2 (default 0.5). Amazon tolerates about 0.5/s per IP; faster causes captchas, not speed. Leave the default.",
            "default": 0.5
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy, default {\"useApifyProxy\": true} (datacentre). Required: Amazon captchas unrotated datacentre traffic. The run detects a captcha or a \"Sign in to see customer reviews\" page and rotates the IP, and after two refusals in a row moves the run to residential proxies by itself. For the most reliable runs outside amazon.com pass residential explicitly: {\"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"]}.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}