{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Best Sellers Scraper — Ranked Top 100, 4 Charts",
    "description": "Scrape Amazon's ranked charts into clean rows — Best Sellers, New Releases, Movers & Shakers and Most Wished For — with rank, ASIN, title, numeric price, rating, review count and image. Any category, 18 marketplaces, full top-100 per chart. Pure HTTP, no browser.",
    "version": "0.0",
    "x-build-id": "Ho8njJh3G66yhCTnY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~amazon-bestsellers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-amazon-bestsellers-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/memo23~amazon-bestsellers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-amazon-bestsellers-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/memo23~amazon-bestsellers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-amazon-bestsellers-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": {
          "categories": {
            "title": "Category slugs",
            "type": "array",
            "description": "Amazon category node slugs, e.g. \"electronics\", \"books\", \"kitchen\". At least one is required — the chart root is Amazon's category picker, not a chart, so it returns no items. Slugs differ per marketplace: \"electronics\" works on 17 of 18 marketplaces but NOT amazon.de, which uses \"computers\". Only automotive, beauty, books, gift-cards and videogames work on all 18. See the README for the full per-marketplace table. Sub-categories work too (e.g. \"electronics/172623\"). Each category is crossed with every selected chart and marketplace.",
            "default": [
              "electronics"
            ],
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "Charts",
            "type": "array",
            "description": "Which ranked charts to pull. Amazon publishes four per category.",
            "items": {
              "type": "string",
              "enum": [
                "bestsellers",
                "new-releases",
                "movers-and-shakers",
                "most-wished-for"
              ],
              "enumTitles": [
                "Best Sellers",
                "New Releases",
                "Movers & Shakers",
                "Most Wished For"
              ]
            },
            "default": [
              "bestsellers"
            ]
          },
          "marketplaces": {
            "title": "Marketplaces",
            "type": "array",
            "description": "Amazon marketplace TLDs to scrape.",
            "items": {
              "type": "string",
              "enum": [
                "com",
                "co.uk",
                "de",
                "fr",
                "it",
                "es",
                "ca",
                "com.au",
                "co.jp",
                "in",
                "nl",
                "se",
                "pl",
                "com.be",
                "ae",
                "com.mx",
                "com.tr",
                "sg"
              ],
              "enumTitles": [
                "amazon.com (US)",
                "amazon.co.uk (UK)",
                "amazon.de (DE)",
                "amazon.fr (FR)",
                "amazon.it (IT)",
                "amazon.es (ES)",
                "amazon.ca (CA)",
                "amazon.com.au (AU)",
                "amazon.co.jp (JP)",
                "amazon.in (IN)",
                "amazon.nl (NL)",
                "amazon.se (SE)",
                "amazon.pl (PL)",
                "amazon.com.be (BE)",
                "amazon.ae (AE)",
                "amazon.com.mx (MX)",
                "amazon.com.tr (TR)",
                "amazon.sg (SG)"
              ]
            },
            "default": [
              "com"
            ]
          },
          "startUrls": {
            "title": "Chart URLs (optional)",
            "type": "array",
            "description": "Paste full chart URLs instead of picking categories — e.g. https://www.amazon.com/gp/bestsellers/electronics/ or https://www.amazon.de/gp/movers-and-shakers/computers/. Works with /gp/bestsellers/, /zgbs/, /gp/new-releases/, /gp/movers-and-shakers/ and /gp/most-wished-for/.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on rows across the whole run. You are charged per row returned.",
            "default": 200
          },
          "maxItemsPerChart": {
            "title": "Max items per chart",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Amazon charts hold 100 ranked products (2 pages of 50). Set 50 to take only the first page.",
            "default": 100
          },
          "fetchMissingDetails": {
            "title": "Fill gaps from product pages",
            "type": "boolean",
            "description": "Amazon server-renders only ~30 of the 50 rows per chart page; the rest arrive with rank + ASIN but no title/price. Turn this on to fetch each of those product pages and fill the missing fields. Slower and uses more requests.",
            "default": false
          },
          "skipIncompleteRows": {
            "title": "Skip rows without details",
            "type": "boolean",
            "description": "Drop the un-hydrated rows entirely instead of returning them with rank + ASIN only. Gives ~60 complete rows per chart instead of 100 mixed ones.",
            "default": false
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel page fetches. Lower it if you hit Amazon throttling.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Leave empty to use the actor's built-in residential proxy, which is what reliably returns full Amazon pages. Only set this to override with your own Apify proxy."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}