{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper – Prices, Reviews, Offers & Sellers",
    "description": "Scrape Amazon products from search, category, best-seller and product URLs on every Amazon country: price, list price, stock, delivery, rating breakdown, reviews count, features, attributes, variants, images, best-seller ranks, plus other sellers' offers and seller details. Pay only for results.",
    "version": "1.0",
    "x-build-id": "3lEOguR0IylqN4AQM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/badr_xba~amazon-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-badr_xba-amazon-product-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/badr_xba~amazon-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-badr_xba-amazon-product-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/badr_xba~amazon-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-badr_xba-amazon-product-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": {
          "categoryOrProductUrls": {
            "title": "🔗 Amazon URLs, ASINs or keywords",
            "type": "array",
            "description": "Paste anything from Amazon, one per line (several links pasted in one line are split automatically, duplicates removed):<br>• a search: <code>https://www.amazon.com/s?k=keyboard</code><br>• a category, filters kept: <code>https://www.amazon.com/s?bbn=16225016011&rh=n%3A20972781011</code><br>• a best-seller / new-release list: <code>https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics</code><br>• a product, any shape: <code>https://www.amazon.de/dp/B09X7MPX8L</code>, <code>/gp/product/…</code>, mobile <code>/gp/aw/d/…</code>, with or without <code>ref=</code>/<code>th=</code>/<code>psc=</code><br>• a short link: <code>https://amzn.to/…</code>, <code>a.co/d/…</code><br>• a bare ASIN: <code>B09X7MPX8L</code> (any case) or plain keywords: <code>wireless mouse</code> — both use the <b>Amazon site</b> option below.<br>Every Amazon country works: .com, .co.uk, .de, .fr, .es, .it, .nl, .se, .pl, .com.be, .com.tr, .ca, .com.mx, .com.br, .co.jp, .in, .com.au, .sg, .ae, .sa, .eg, .co.za, .ie.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchKeywords": {
            "title": "🔎 Search keywords",
            "type": "array",
            "description": "Optional. Words to search on the chosen Amazon site, one search per line (e.g. <code>mechanical keyboard</code>, <code>usb c cable</code>). Same as pasting the search URL above.",
            "items": {
              "type": "string"
            }
          },
          "asins": {
            "title": "🏷️ ASINs",
            "type": "array",
            "description": "Optional. Product codes alone, one per line or comma-separated (e.g. <code>B09X7MPX8L</code>), read on the chosen Amazon site (amazon.com by default). You can also paste ASINs in the first box.",
            "items": {
              "type": "string"
            }
          },
          "amazonDomain": {
            "title": "🌍 Amazon site (for ASINs and keywords)",
            "enum": [
              "amazon.com",
              "amazon.co.uk",
              "amazon.de",
              "amazon.fr",
              "amazon.es",
              "amazon.it",
              "amazon.nl",
              "amazon.se",
              "amazon.pl",
              "amazon.com.be",
              "amazon.ie",
              "amazon.com.tr",
              "amazon.ca",
              "amazon.com.mx",
              "amazon.com.br",
              "amazon.co.jp",
              "amazon.in",
              "amazon.com.au",
              "amazon.sg",
              "amazon.ae",
              "amazon.sa",
              "amazon.eg",
              "amazon.co.za"
            ],
            "type": "string",
            "description": "Amazon country used for bare ASINs and search keywords. Full URLs always keep their own country.",
            "default": "amazon.com"
          },
          "maxItemsPerStartUrl": {
            "title": "Max results (per start URL)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum products saved for each start URL. 0 = no limit (the search stops when Amazon has no more pages).",
            "default": 100
          },
          "maxSearchPagesPerStartUrl": {
            "title": "Maximum search pages (per start URL)",
            "minimum": 1,
            "type": "integer",
            "description": "Stops after this many result pages for each search or category, even if the results limit is not reached. Amazon itself shows at most about 7–20 pages per search: to go further, use a narrower category or filters.",
            "default": 9999
          },
          "scrapeProductDetails": {
            "title": "Scrape product details",
            "type": "boolean",
            "description": "On (default): opens every product found in a list for the full data — features, description, attributes, variants, seller, delivery, rating breakdown, best-seller ranks, images. Off: keeps only the quick data shown in the list (title, price, rating, reviews, image, position, sponsored), much faster.",
            "default": true
          },
          "maxOffers": {
            "title": "Maximum offers per product",
            "minimum": 0,
            "type": "integer",
            "description": "Adds the offers of other sellers (price, condition, seller, rating, ships from, delivery) to each product, up to this number. 0 = no offers. Billed per offer.",
            "default": 0
          },
          "scrapeSellers": {
            "title": "Scrape sellers",
            "type": "boolean",
            "description": "Opens the page of the featured seller (and of each offer's seller when offers are on) to add its rating, ratings count, positive feedback, business name and address. Billed per seller page read; each seller is read once per run.",
            "default": false
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "pl",
              "pt",
              "sv",
              "tr",
              "cs",
              "da",
              "he",
              "ar",
              "hi",
              "ko",
              "zh_CN",
              "zh_TW",
              "ja"
            ],
            "type": "string",
            "description": "Language of the pages. Each Amazon country supports a few languages; an unsupported choice falls back to the country's default."
          },
          "countryCode": {
            "title": "Deliver to country",
            "type": "string",
            "description": "Two-letter country code used as the delivery address (e.g. US, DE, MA), so prices, availability and delivery dates match that country. Leave empty to use the address Amazon picks. Billed once per Amazon site per run, only when the address is set."
          },
          "zipCode": {
            "title": "Deliver to ZIP / postal code",
            "type": "string",
            "description": "Postal code inside the Amazon site's own country (e.g. 10001 on amazon.com, 10115 on amazon.de). More precise than the country. Billed once per Amazon site per run, only when the address is set."
          },
          "maxItems": {
            "title": "Maximum results for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "Hard ceiling on products saved (and billed) across all start URLs. 0 = no ceiling. The run also stops cleanly when your maximum cost per run is reached.",
            "default": 0
          },
          "proxyCountry": {
            "title": "Proxy country",
            "enum": [
              "AUTO_SELECT_PROXY_COUNTRY",
              "US",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "CA",
              "MX",
              "BR",
              "JP",
              "IN",
              "AU",
              "NL",
              "SE",
              "PL",
              "TR",
              "AE",
              "SA",
              "MA"
            ],
            "type": "string",
            "description": "Country of the residential proxy addresses. Auto picks the country of each Amazon site (amazon.de → Germany). Only applies with the residential proxy group.",
            "default": "AUTO_SELECT_PROXY_COUNTRY"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The default Apify proxy works for most Amazon sites and is the cheapest. Switch to the residential group if many pages are refused.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}