{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Seller Central Review Scraper & Monitor – Brand Reviews",
    "description": "Amazon review monitoring and negative review alerts for brand owners. Export all reviews of your brand from Seller Central (US, EU, JP, IN) with Order IDs, no ASIN list needed. Get new 1-3 star reviews in Slack, Teams or Discord; each review is billed once. Sign in yourself in Live View.",
    "version": "0.9",
    "x-build-id": "HI7btFfhd241Nc7ug"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/k-data-lab~amazon-seller-central-review-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-k-data-lab-amazon-seller-central-review-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/k-data-lab~amazon-seller-central-review-scraper/runs": {
      "post": {
        "operationId": "runs-sync-k-data-lab-amazon-seller-central-review-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/k-data-lab~amazon-seller-central-review-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-k-data-lab-amazon-seller-central-review-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": [
          "marketplaces"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "scrape",
              "login"
            ],
            "type": "string",
            "description": "\"scrape\" (default) collects reviews using saved or pasted sessions. \"login\" only signs in: start it, open the run's <b>Live View</b> tab and sign in to Seller Central yourself (email, password, 2-step code); the session is saved privately in your Apify account. Example: \"scrape\". An agent cannot do the login step — a human must, once, before Scrape mode works.",
            "default": "scrape"
          },
          "marketplaces": {
            "title": "Marketplaces",
            "type": "array",
            "description": "Seller Central marketplaces to scrape, as country codes: US, DE, IT, FR, ES, UK, JP, IN. Example: [\"US\"] (default) or [\"US\", \"DE\", \"UK\"]. DE / IT / FR / ES / UK all use the one <b>Europe</b> session and are scraped one after another (DE → IT → FR → ES → UK).",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "DE",
                "IT",
                "FR",
                "ES",
                "UK",
                "JP",
                "IN"
              ],
              "enumTitles": [
                "🇺🇸 US",
                "🇩🇪 Germany (EU session)",
                "🇮🇹 Italy (EU session)",
                "🇫🇷 France (EU session)",
                "🇪🇸 Spain (EU session)",
                "🇬🇧 United Kingdom (EU session)",
                "🇯🇵 Japan",
                "🇮🇳 India"
              ]
            },
            "default": [
              "US"
            ]
          },
          "loginTimeoutMinutes": {
            "title": "Login mode: minutes to sign in (per region)",
            "minimum": 2,
            "maximum": 30,
            "type": "integer",
            "description": "Login mode only: how many minutes to wait for you to finish signing in to each region before moving on. Example: 10 (default). Ignored in Scrape mode.",
            "default": 10
          },
          "sessionUS": {
            "title": "🇺🇸 US session",
            "type": "string",
            "description": "<b>Optional — leave empty if you used Login mode.</b> Your logged-in Seller Central session for 🇺🇸 US (<code>sellercentral.amazon.com</code>): Cookie-Editor extension → open <code>https://sellercentral.amazon.com/brand-customer-reviews/</code> → <b>Export → JSON</b> → paste. Example: a JSON cookie array, or a raw Cookie header \"session-id=…; at-main=…\". ⚠️ Sessions expire; paste a fresh one before scheduled runs. Stored encrypted; never logged."
          },
          "sessionEU": {
            "title": "🇪🇺 Europe session",
            "type": "string",
            "description": "<b>Optional — leave empty if you used Login mode.</b> Your logged-in Seller Central session for 🇪🇺 Europe (<code>sellercentral-europe.amazon.com</code>): Cookie-Editor extension → open <code>https://sellercentral-europe.amazon.com/brand-customer-reviews/</code> → <b>Export → JSON</b> → paste. Example: a JSON cookie array, or a raw Cookie header \"session-id=…; at-main=…\". Covers DE, IT, FR, ES, UK. ⚠️ Sessions expire; paste a fresh one before scheduled runs. Stored encrypted; never logged."
          },
          "sessionJP": {
            "title": "🇯🇵 Japan session",
            "type": "string",
            "description": "<b>Optional — leave empty if you used Login mode.</b> Your logged-in Seller Central session for 🇯🇵 Japan (<code>sellercentral.amazon.co.jp</code>): Cookie-Editor extension → open <code>https://sellercentral.amazon.co.jp/brand-customer-reviews/</code> → <b>Export → JSON</b> → paste. Example: a JSON cookie array, or a raw Cookie header \"session-id=…; at-main=…\". ⚠️ Sessions expire; paste a fresh one before scheduled runs. Stored encrypted; never logged."
          },
          "sessionIN": {
            "title": "🇮🇳 India session",
            "type": "string",
            "description": "<b>Optional — leave empty if you used Login mode.</b> Your logged-in Seller Central session for 🇮🇳 India (<code>sellercentral.amazon.in</code>): Cookie-Editor extension → open <code>https://sellercentral.amazon.in/brand-customer-reviews/</code> → <b>Export → JSON</b> → paste. Example: a JSON cookie array, or a raw Cookie header \"session-id=…; at-main=…\". ⚠️ Sessions expire; paste a fresh one before scheduled runs. Stored encrypted; never logged."
          },
          "maxPagesPerMarketplace": {
            "title": "Max pages per marketplace",
            "minimum": 1,
            "maximum": 400,
            "type": "integer",
            "description": "Maximum review pages per marketplace, newest reviews first. Reviews per marketplace ≈ pages × page size. Example: 30 (default) × 50 = up to 1,500 reviews; use 2 for a quick check of the latest ~100. Stops early when reviews run out.",
            "default": 30
          },
          "pageSize": {
            "title": "Reviews per page",
            "minimum": 25,
            "maximum": 100,
            "type": "integer",
            "description": "Reviews per Seller Central page: 25, 50 or 100 (other numbers are rounded to the nearest). Example: 50 (default).",
            "default": 50
          },
          "stars": {
            "title": "Star ratings",
            "type": "array",
            "description": "Star ratings to keep, as strings \"1\"–\"5\". Example: [\"1\", \"2\", \"3\"] for critical reviews only; default is all five stars.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "★1",
                "★2",
                "★3",
                "★4",
                "★5"
              ]
            },
            "default": [
              "1",
              "2",
              "3",
              "4",
              "5"
            ]
          },
          "minReviewDate": {
            "title": "Only reviews on/after (yyyy-mm-dd)",
            "type": "string",
            "description": "Optional: only reviews written on or after this date (YYYY-MM-DD); paging also stops early once pages are older. Example: \"2026-10-01\". Leave empty for no date limit."
          },
          "onlyNewReviews": {
            "title": "Only new reviews (monitoring)",
            "type": "boolean",
            "description": "Set true for daily / hourly monitoring schedules: each review is delivered — and billed — <b>once</b>. Example: true (default false). The actor remembers the Review IDs it already returned (record <code>SEEN_&lt;marketplace&gt;</code> in your session store) and skips them next time; paging stops as soon as a page has nothing new. Delete that record to start over.",
            "default": false
          },
          "reviewsFromDaysAgo": {
            "title": "Only reviews from the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Optional relative window that moves with your schedule: only reviews from the last N days. Example: 7 = the last week. Works like <i>Only reviews on/after</i>; if both are set, the later date wins. 0 (default) = off.",
            "default": 0
          },
          "alertWebhookUrl": {
            "title": "Alert webhook URL (Slack, Teams, Discord…)",
            "type": "string",
            "description": "Optional: get new negative reviews pushed to your team. Paste an incoming-webhook URL from Slack, Microsoft Teams (Workflows), Discord or Google Chat, or any URL that accepts JSON (n8n, Make, Zapier, your API). Example: \"https://hooks.slack.com/services/…\". After each run the actor posts one free message with the low-star reviews it delivered, and warns you if a session expired. Use it with <b>Only new reviews</b> and a daily schedule so each review alerts once. No session yet? The run sends a test message, so you can check the connection before signing in. Leave empty for no alerts. Stored encrypted; never logged."
          },
          "alertMaxStars": {
            "title": "Alert on reviews with at most N stars",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only used with an alert webhook: reviews at or below this star rating trigger the alert. Example: 3 (default) = 1★, 2★ and 3★; 2 = only 1★ and 2★; 5 = every review. It doesn't change the dataset.",
            "default": 3
          },
          "asinFilter": {
            "title": "ASIN filter",
            "type": "array",
            "description": "Optional: keep only reviews of these child ASINs. Example: [\"B0G7RYP439\", \"B0G7QZ7RMD\"]. Leave empty to keep reviews of every product in the account.",
            "items": {
              "type": "string"
            }
          },
          "fetchOrderId": {
            "title": "Fetch Order ID",
            "type": "boolean",
            "description": "Adds the Amazon order ID of verified-purchase reviews (from Seller Central's own reviews API, same session). Example: true (default); set false to skip it.",
            "default": true
          },
          "fetchImages": {
            "title": "Fetch reviewer photo URLs",
            "type": "boolean",
            "description": "Set true to fill Has Photo / Image URL. Example: false (default). Needs an Amazon <b>shopper</b> session in the next field (photos are only shown to signed-in shoppers); leave false if you don't have one.",
            "default": false
          },
          "storefrontSession": {
            "title": "Amazon shopper (storefront) session — for photos",
            "type": "string",
            "description": "Only if Fetch photos is on; leave empty otherwise. Cookie-Editor JSON exports from the Amazon store sites (e.g. www.amazon.com, www.amazon.de) while signed in as a shopper. You can paste several exports one after another inside one JSON array. Example: [{\"name\": \"session-id\", \"value\": \"…\", \"domain\": \".amazon.com\"}, …]."
          },
          "accountUS": {
            "title": "Account name (US)",
            "type": "string",
            "description": "Only for sellers with several US accounts: the account name exactly as Seller Central's account switcher shows it. Example: \"Spigen Inc\". Leave empty to use the session's current account."
          },
          "accountEU": {
            "title": "Account name (Europe)",
            "type": "string",
            "description": "Only for sellers with several Europe accounts: the account name as the switcher shows it; also used to switch between DE / IT / FR / ES / UK. Example: \"Spigen EU\". Leave empty to use the current account."
          },
          "accountJP": {
            "title": "Account name (Japan)",
            "type": "string",
            "description": "Only for sellers with several Japan accounts: the account name as Seller Central's switcher shows it. Example: \"Spigen 公式直営店\". Leave empty to use the current account."
          },
          "accountIN": {
            "title": "Account name (India)",
            "type": "string",
            "description": "Only for sellers with several India accounts: the account name as Seller Central's switcher shows it. Example: \"Spigen India\". Leave empty to use the current account."
          },
          "outputFieldNames": {
            "title": "Output field names",
            "enum": [
              "title",
              "camel"
            ],
            "type": "string",
            "description": "Column names in the output: \"title\" (default) = Title Case like \"ASIN\", \"Created Date\", \"Has Photo\"; \"camel\" = camelCase like \"asin\", \"createdDate\", \"hasPhoto\". Example: \"camel\" for code and agents.",
            "default": "title"
          },
          "detectionAvoidance": {
            "title": "Pace",
            "enum": [
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "type": "string",
            "description": "Pace: delays and scrolling between pages. \"LOW\" fastest, \"MEDIUM\" human-like (default, recommended), \"HIGH\" slowest, safest for big or frequent runs. Example: \"MEDIUM\". Every page load also retries with backoff (8s → 25s → 60s) on throttling or robot checks.",
            "default": "MEDIUM"
          },
          "returnRefreshedSessions": {
            "title": "Save refreshed sessions",
            "type": "boolean",
            "description": "Set true to save the refreshed session cookies (Amazon rotates them while you browse) to this run's key-value store (record REFRESHED_SESSIONS, private to your account), so you can paste them into the next run. Example: false (default).",
            "default": false
          },
          "useSavedSessions": {
            "title": "Use sessions saved by Login mode",
            "type": "boolean",
            "description": "Scrape mode reuses the sessions you saved with Login mode (when that region's paste field is empty). Example: true (default); set false to use only pasted sessions.",
            "default": true
          },
          "saveSessions": {
            "title": "Keep saved sessions fresh",
            "type": "boolean",
            "description": "After a successful region, save the refreshed cookies back to the session store so sessions last longer; pasted sessions are saved too, so next time you don't need to paste. Example: true (default).",
            "default": true
          },
          "sessionStoreName": {
            "title": "Session store name",
            "type": "string",
            "description": "Name of the key-value store in YOUR Apify account that holds saved sessions (one record per region: SESSION_US, SESSION_EU …). Example: \"sc-review-sessions\" (default); use a different name per brand / seller account, e.g. \"sc-sessions-brand2\". Delete the store to forget all sessions.",
            "default": "sc-review-sessions"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}