{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Best Sellers Scraper: Ranks, 21 Countries, $1.9/1K",
    "description": "Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas ranks in 21 countries: rank, ASIN, title, price, rating, reviews, images, category path. Subcategory crawl, rank-change monitor, optional product details.",
    "version": "0.1",
    "x-build-id": "ZPfDWmoAIt39VjbqN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/transparent_meteorite~amazon-bestsellers/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-transparent_meteorite-amazon-bestsellers",
        "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/transparent_meteorite~amazon-bestsellers/runs": {
      "post": {
        "operationId": "runs-sync-transparent_meteorite-amazon-bestsellers",
        "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/transparent_meteorite~amazon-bestsellers/run-sync": {
      "post": {
        "operationId": "run-sync-transparent_meteorite-amazon-bestsellers",
        "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": "Categories",
            "type": "array",
            "description": "Department names or slugs as Amazon shows them in the country you pick, e.g. \"electronics\", \"Toys & Games\", \"kitchen\", \"Küche, Haushalt & Wohnen\". Each is matched against the country's department list; an unknown name lists the valid ones in the log. Leave empty and add no URLs for Electronics.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "List URLs",
            "type": "array",
            "description": "Any Amazon Best Sellers / New Releases / Movers & Shakers / Most Wished For / Gift Ideas URL, including subcategories, e.g. https://www.amazon.com/Best-Sellers-Electronics-Camera-Photo-Products/zgbs/electronics/502394/ or https://www.amazon.de/gp/new-releases/kitchen/. The country and list type are read from the URL. A root URL such as https://www.amazon.com/gp/bestsellers/ expands into every department.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listTypes": {
            "title": "List types",
            "type": "array",
            "description": "Which Amazon lists to read for each category above (URLs carry their own type). Movers & Shakers, Most Wished For and Gift Ideas are often empty on Amazon; an empty list is reported in the log and costs nothing.",
            "items": {
              "type": "string",
              "enum": [
                "bestsellers",
                "new-releases",
                "movers-and-shakers",
                "most-wished-for",
                "most-gifted"
              ],
              "enumTitles": [
                "Best Sellers",
                "New Releases",
                "Movers & Shakers (biggest 24h rank gains)",
                "Most Wished For",
                "Gift Ideas (most gifted)"
              ]
            },
            "default": [
              "bestsellers"
            ]
          },
          "countryCode": {
            "title": "Country",
            "enum": [
              "US",
              "UK",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "BE",
              "SE",
              "PL",
              "TR",
              "CA",
              "MX",
              "BR",
              "JP",
              "IN",
              "AU",
              "SG",
              "AE",
              "SA",
              "EG"
            ],
            "type": "string",
            "description": "Amazon site for the categories above. Prices are requested in the site's own currency.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "enum": [
              "local",
              "en"
            ],
            "type": "string",
            "description": "Language of titles and category names. English uses Amazon's own /-/en/ pages; sites without an English version stay in their language.",
            "default": "local"
          },
          "maxItemsPerCategory": {
            "title": "Ranks per list",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Top N ranks per list (Amazon publishes 100: ranks 1-50 on page 1 and 51-100 on page 2). 30 or less needs one request per list.",
            "default": 100
          },
          "maxItems": {
            "title": "Max rows (whole run)",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard stop for the whole run. You pay per row delivered, so this is also your cost cap.",
            "default": 100
          },
          "depth": {
            "title": "Subcategory depth",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "0 = only the categories you gave. 1 = also every direct subcategory (e.g. Electronics -> Headphones, Cell Phones, ...). 2 = their subcategories too, and so on.",
            "default": 0
          },
          "maxCategories": {
            "title": "Max lists",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on lists read in one run (each category x list type x subcategory is one list). Protects deep crawls from running away.",
            "default": 50
          },
          "minRating": {
            "title": "Min stars",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only products rated at least this many stars, e.g. 4.5."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "number",
            "description": "Keep only products at or below this price (site currency). Rows without a price are dropped when this is set."
          },
          "minReviews": {
            "title": "Min reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many ratings."
          },
          "scrapeProductDetails": {
            "title": "Add product details",
            "type": "boolean",
            "description": "Also open each product page: brand, feature bullets, availability, seller, all images, breadcrumbs, best-sellers ranks, bought-in-past-month, model, dimensions, weight, description. One extra request per row; same price per row.",
            "default": false
          },
          "detailConcurrency": {
            "title": "Detail pages in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Only used with product details.",
            "default": 5
          },
          "monitorMode": {
            "title": "Monitor mode (only changes)",
            "type": "boolean",
            "description": "Remember each list's ranks between runs and output only products that are new to the list or moved rank (with rankLastRun and rankChange). Unchanged products are not output and not charged. Schedule it daily for a cheap rank tracker. The first run outputs everything.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that holds the last ranks. Use a different name per tracker.",
            "default": "amazon-bestsellers-monitor"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy by default (fast and cheap). Each blocked page is retried on a new IP.",
            "default": {
              "useApifyProxy": true
            }
          },
          "autoProxyFallback": {
            "title": "Switch to residential proxy if blocked",
            "type": "boolean",
            "description": "If a country keeps blocking the proxy above, switch that country to Apify residential proxy for the rest of the run.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}