{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper — Keyword Rank, ASINs and Prices",
    "description": "\"Amazon Product Scraper extracts product data with precision. Capture titles, prices, images, reviews, ratings, variations, and seller details fast. Ideal for market research, price tracking, and e-commerce insights with clean, structured JSON output",
    "version": "0.2",
    "x-build-id": "nGBlXQtgRy99xB36W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simpleapi~amazon-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simpleapi-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/simpleapi~amazon-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-simpleapi-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/simpleapi~amazon-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-simpleapi-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": {
          "searchUrls": {
            "title": "🔗 Amazon search URLs to rank-track",
            "type": "array",
            "description": "One or more Amazon search-results URLs (the page you want to measure rank on), e.g. https://www.amazon.com/s?k=wireless+earbuds . Product /dp/ URLs are also accepted (they return full detail but no search rank). Use a different Amazon domain to track another marketplace, e.g. https://www.amazon.co.uk/s?k=... — no proxy country change needed. (Accepts the base key `categoryOrProductUrls` too.)",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerKeyword": {
            "title": "📊 Max results to rank (per search URL)",
            "minimum": 0,
            "type": "integer",
            "description": "How deep down the search results to go per keyword. Example: 30 → rank the top 30 results for the keyword. Default is 10. (Accepts the base key `maxItemsPerStartUrl` too.)",
            "default": 10
          },
          "trackAsins": {
            "title": "🎯 Track these ASINs only",
            "type": "array",
            "description": "Optional list of your ASINs (e.g. B09B8V1LZ3). When set, only these products are returned for each search URL, each with its rank for that keyword. Any tracked ASIN that does NOT appear in the results is still reported as an uncharged 'not found' row so you can see it dropped off. Leave empty to rank every result on the page.",
            "items": {
              "type": "string"
            }
          },
          "organicRankOnly": {
            "title": "🌱 Organic results only (skip sponsored)",
            "type": "boolean",
            "description": "When enabled, Sponsored / ad placements are excluded from the output entirely, leaving only true organic search positions. Organic rank is always computed with sponsored slots removed regardless of this toggle; this simply drops the paid rows. Default is false (both organic and sponsored are returned, each labelled).",
            "default": false
          },
          "language": {
            "title": "🌐 Language",
            "enum": [
              "cs",
              "da",
              "de",
              "en",
              "es",
              "fr",
              "nl",
              "pl",
              "pt",
              "sv",
              "tr",
              "he",
              "ar",
              "mrta",
              "hi",
              "bn",
              "ta",
              "te",
              "kn",
              "ml",
              "ko",
              "zh_CN",
              "zh_TW",
              "ja"
            ],
            "type": "string",
            "description": "Language to use on Amazon. Disclaimer: each Amazon domain has a different set of supported languages. If you choose a language that is not supported by the domain, the scraper will use the default language of the domain."
          },
          "proxyCountry": {
            "title": "🌍 Proxy country",
            "enum": [
              "AUTO_SELECT_PROXY_COUNTRY",
              "NO_PROXY",
              "AF",
              "AL",
              "DZ",
              "AS",
              "AD",
              "AO",
              "AI",
              "AQ",
              "AG",
              "AR",
              "AM",
              "AW",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BM",
              "BT",
              "BO",
              "BQ",
              "BA",
              "BW",
              "BV",
              "BR",
              "IO",
              "VG",
              "BN",
              "BG",
              "BF",
              "BI",
              "KH",
              "CM",
              "CA",
              "CV",
              "KY",
              "CF",
              "TD",
              "CL",
              "CN",
              "CX",
              "CC",
              "CO",
              "KM",
              "CK",
              "CR",
              "HR",
              "CU",
              "CW",
              "CY",
              "CZ",
              "CD",
              "DK",
              "DJ",
              "DM",
              "DO",
              "TL",
              "EC",
              "EG",
              "SV",
              "GQ",
              "ER",
              "EE",
              "ET",
              "FK",
              "FO",
              "FJ",
              "FI",
              "FR",
              "GF",
              "PF",
              "TF",
              "GA",
              "GM",
              "GE",
              "DE",
              "GH",
              "GI",
              "GR",
              "GL",
              "GD",
              "GP",
              "GU",
              "GT",
              "GG",
              "GW",
              "GN",
              "GY",
              "HT",
              "HM",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IR",
              "IQ",
              "IE",
              "IM",
              "IL",
              "IT",
              "CI",
              "JM",
              "JP",
              "JE",
              "JO",
              "KZ",
              "KE",
              "KI",
              "XK",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LI",
              "LT",
              "LU",
              "MO",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MQ",
              "MR",
              "MU",
              "YT",
              "MX",
              "FM",
              "MD",
              "MC",
              "MN",
              "ME",
              "MS",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "NL",
              "NC",
              "NZ",
              "NI",
              "NE",
              "NG",
              "NU",
              "NF",
              "KP",
              "MK",
              "MP",
              "NO",
              "OM",
              "PK",
              "PW",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PN",
              "PL",
              "PT",
              "PR",
              "QA",
              "CG",
              "RE",
              "RO",
              "RU",
              "RW",
              "BL",
              "SH",
              "KN",
              "LC",
              "MF",
              "PM",
              "VC",
              "WS",
              "SM",
              "ST",
              "SA",
              "SN",
              "RS",
              "SC",
              "SL",
              "SG",
              "SX",
              "SK",
              "SI",
              "SB",
              "SO",
              "ZA",
              "GS",
              "KR",
              "SS",
              "ES",
              "LK",
              "SD",
              "SR",
              "SJ",
              "SZ",
              "SE",
              "CH",
              "SY",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TG",
              "TK",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TC",
              "TV",
              "UM",
              "VI",
              "UG",
              "UA",
              "AE",
              "GB",
              "US",
              "UY",
              "UZ",
              "VU",
              "VA",
              "VE",
              "VN",
              "WF",
              "EH",
              "YE",
              "ZM",
              "ZW",
              "AX"
            ],
            "type": "string",
            "description": "You can set proxy country to avoid geo-blocking and access region-specific content. Amazon shows you the products that can be shipped to your address based on the proxy you use. By default, the scraper automatically selects the proxy country based on the used Amazon website domain, ensuring low blocking rates and results relevant to the base domain.",
            "default": "AUTO_SELECT_PROXY_COUNTRY"
          },
          "maxSearchPagesPerStartUrl": {
            "title": "📄 Maximum search pages to rank (per keyword)",
            "minimum": 1,
            "type": "integer",
            "description": "How many search-results pages to walk per keyword. Rank is continuous across pages, and each row records its page number. E.g. 5 = rank the first 5 pages. Stops at whichever of this and the max-results limit is hit first.",
            "default": 9999
          },
          "maxProductVariantsAsSeparateResults": {
            "title": "🔄 Maximum product variants (as separate results)",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the maximum number of product variants you want to scrape per each product, outputted as separate results. Please beware that you can already get most of the variant details changes, in the variantDetails field, which is outputted by default. Note that this will increase the number of requests and extend the scraping time."
          },
          "maxOffers": {
            "title": "💰 Maximum scraped offers",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the maximum number of offers you want to scrape per each product. This will let the scraper know when to stop. Note that this will increase the number of requests and extend the scraping time.",
            "default": 0
          },
          "scrapeSellers": {
            "title": "👤 Scrape sellers",
            "type": "boolean",
            "description": "Enable this option to extract further information about sellers of the product. Scrapes the featured offer seller (main seller). This option goes hand in hand with the maxOffers option by scraping the seller of each offer. If you set maxOffers to 0, only the featured offer seller will be scraped. Note that this will increase the number of requests and extend the scraping time.",
            "default": false
          },
          "ensureLoadedProductDescriptionFields": {
            "title": "📝 Ensure loaded product description fields",
            "type": "boolean",
            "description": "Enable this feature to always load all seller-editable product description fields, such as description, aPlusContent, attributes, etc. Amazon sometimes hides these fields as a form of blocking. Enabling this option helps ensure data consistency but will increase the number of requests and may extend scraping time based on the blocking rate. Turn it on only if you need the data.",
            "default": false
          },
          "useCaptchaSolver": {
            "title": "🤖 Use Captcha solver (warning: see description)",
            "type": "boolean",
            "description": "If enabled the scraper will automatically solve captchas thrown by Amazon. This will decrease the amount of request retries and increase the speed of the scraper. IMPORTANT - This option works well only for the '.com' Amazon domain, but even for that one Amazon doesn't show a few product fields after solving a captcha (specifically: 'attributes', 'manufacturer attributes', and 'bestseller ranks').",
            "default": false
          },
          "scrapeProductVariantPrices": {
            "title": "💵 Scrape product variant prices",
            "type": "boolean",
            "description": "Enable this option to extract prices of different variations of a product. Useful when you need prices for each variant. Note that this will increase the number of requests and extend the scraping time.",
            "default": false
          },
          "scrapeProductDetails": {
            "title": "📦 Fetch full product detail per ranked result",
            "type": "boolean",
            "description": "If enabled (default), every ranked result is opened and its full product detail is returned alongside the rank fields. If disabled, only the lightweight search-tile data (title, price, stars, rank) is returned — much faster for pure rank tracking across many keywords.",
            "default": true
          },
          "maxConcurrentRequests": {
            "title": "⚡ Maximum concurrent requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Number of concurrent product page requests.",
            "default": 10
          },
          "countryCode": {
            "title": "🏳️ Country code",
            "enum": [
              "AF",
              "AX",
              "AL",
              "DZ",
              "AS",
              "AD",
              "AO",
              "AI",
              "AG",
              "AR",
              "AM",
              "AW",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BM",
              "BT",
              "BO",
              "BQ",
              "BA",
              "BW",
              "BV",
              "BR",
              "IO",
              "BN",
              "BG",
              "BF",
              "BI",
              "KH",
              "CM",
              "CA",
              "CV",
              "KY",
              "CF",
              "TD",
              "CL",
              "CN",
              "CX",
              "CC",
              "CO",
              "KM",
              "CD",
              "CG",
              "CK",
              "CR",
              "CI",
              "HR",
              "CW",
              "CY",
              "CZ",
              "DK",
              "DJ",
              "DM",
              "DO",
              "EC",
              "EG",
              "SV",
              "GQ",
              "ER",
              "EE",
              "ET",
              "FK",
              "FO",
              "FJ",
              "FI",
              "FR",
              "GF",
              "PF",
              "TF",
              "GA",
              "GM",
              "GE",
              "DE",
              "GH",
              "GI",
              "GR",
              "GL",
              "GD",
              "GP",
              "GT",
              "GG",
              "GW",
              "GN",
              "GY",
              "HT",
              "HM",
              "VA",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IQ",
              "IE",
              "IM",
              "IL",
              "IT",
              "JM",
              "JP",
              "JE",
              "JO",
              "KZ",
              "KE",
              "KI",
              "XK",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LI",
              "LT",
              "LU",
              "MO",
              "MK",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MQ",
              "MR",
              "MU",
              "YT",
              "MX",
              "FM",
              "MD",
              "MC",
              "MN",
              "ME",
              "MS",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "AN",
              "NL",
              "NC",
              "NZ",
              "NI",
              "NE",
              "NG",
              "NU",
              "NF",
              "NO",
              "OM",
              "PK",
              "PW",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PN",
              "PL",
              "PT",
              "QA",
              "KR",
              "RE",
              "RO",
              "RU",
              "RW",
              "BL",
              "SH",
              "KN",
              "LC",
              "MF",
              "PM",
              "VC",
              "WS",
              "SM",
              "ST",
              "SA",
              "SN",
              "RS",
              "SC",
              "SL",
              "SG",
              "SX",
              "SK",
              "SI",
              "SB",
              "SO",
              "ZA",
              "GS",
              "ES",
              "LK",
              "SR",
              "SJ",
              "SZ",
              "SE",
              "CH",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TL",
              "TG",
              "TK",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TC",
              "TV",
              "UG",
              "UA",
              "AE",
              "GB",
              "UM",
              "US",
              "UY",
              "UZ",
              "VU",
              "VE",
              "VN",
              "VG",
              "WF",
              "EH",
              "YE",
              "ZM",
              "ZW"
            ],
            "type": "string",
            "description": "The country code to use as the delivery location."
          },
          "zipCode": {
            "title": "📮 Zip code",
            "type": "string",
            "description": "The zip code to use as the delivery location. This is useful for more precise location settings, especially in larger countries."
          },
          "locationDeliverableRoutes": {
            "title": "🛣️ Location deliverable routes",
            "type": "array",
            "description": "The list of routes/page types, for which the deliverable location settings should be applied. This is useful for speeding up the scraping process by not applying the location settings to all pages, for which you don't need the localized data for. For example, you can set it to ['SEARCH', 'PRODUCT'] to apply the location settings only to search and product pages. By default, all pages are included.",
            "items": {
              "type": "string",
              "enum": [
                "PRODUCT",
                "SEARCH",
                "OFFERS"
              ]
            },
            "default": [
              "PRODUCT",
              "SEARCH",
              "OFFERS"
            ]
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy configuration",
            "type": "object",
            "description": "🔒 Apify proxy settings. Use residential proxy for best results and fewer blocks."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}