{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Bestseller Rank Scraper - Prices, ASIN, Product Data",
    "description": "ASIN lookup and Amazon product scraper past the 306-product search ceiling: 691 unique products where the same search returns 61, measured. Prices, Best Sellers Rank, duplicates removed by ASIN after a measured reshuffle between identical queries. Amazon best sellers list.",
    "version": "0.1",
    "x-build-id": "55WrWQV6TqpVFIkx5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/snow_leo_data~amazon-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-snow_leo_data-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/snow_leo_data~amazon-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-snow_leo_data-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/snow_leo_data~amazon-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-snow_leo_data-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search on amazon.com, one per line. Amazon stops a single search at 306 organic products (measured); switch on Deep scan to go past that.",
            "default": [
              "wireless earbuds"
            ],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Amazon URLs or ASINs",
            "type": "array",
            "description": "Product pages (/dp/ASIN), search result URLs and Best Sellers URLs. Bare ASINs work too. Anything that is not an amazon.com URL or an ASIN is listed in the REPORT record as skipped instead of being silently ignored.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "bestsellerCategories": {
            "title": "Best Sellers categories",
            "type": "array",
            "description": "Best Sellers category nodes, for example electronics, kitchen, toys-and-games or electronics/12097478011. Each list gives 60 ranked products over two pages.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "department": {
            "title": "Department",
            "enum": [
              "",
              "alexa-skills",
              "vehicles",
              "amazon-devices",
              "amazon-global-store",
              "bazaar",
              "amazon-one-medical",
              "amazon-pharmacy",
              "warehouse-deals",
              "appliances",
              "mobile-apps",
              "arts-crafts",
              "audible",
              "automotive",
              "baby-products",
              "fashion-baby",
              "beauty",
              "stripbooks",
              "fashion-boys",
              "popular",
              "mobile",
              "fashion",
              "collectibles",
              "computers",
              "financial",
              "digital-music",
              "electronics",
              "lawngarden",
              "gift-cards",
              "fashion-girls",
              "grocery",
              "handmade",
              "hpc",
              "local-services",
              "garden",
              "industrial",
              "prime-exclusive",
              "digital-text",
              "fashion-luggage",
              "luxury",
              "magazines",
              "fashion-mens",
              "movies-tv",
              "mi",
              "office-products",
              "pets",
              "luxury-beauty",
              "instant-video",
              "smart-home",
              "software",
              "sporting",
              "specialty-aps-sns",
              "subscribe-with-amazon",
              "tools",
              "toys-and-games",
              "under-ten-dollars",
              "videogames",
              "wholefoods",
              "fashion-womens"
            ],
            "type": "string",
            "description": "Limit the search to one Amazon department. An unknown name stops the run with a named reason on purpose: Amazon answers an unknown department with HTTP 200 and ordinary unfiltered results (measured: 14 of 16 products identical to the unfiltered search).",
            "default": ""
          },
          "minPrice": {
            "title": "Minimum price, USD",
            "minimum": 0,
            "type": "integer",
            "description": "Sent to Amazon as a price filter, not applied afterwards.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price, USD",
            "minimum": 0,
            "type": "integer",
            "description": "Sent to Amazon as a price filter, not applied afterwards. Leave at 0 for no upper limit.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "",
              "price-asc-rank",
              "price-desc-rank",
              "review-rank",
              "date-desc-rank",
              "exact-aware-popularity-rank"
            ],
            "type": "string",
            "description": "Amazon's own sort order. Each order is a different window into the same catalogue: measured, four orders returned 64 products of which 64 were unique.",
            "default": ""
          },
          "deepScan": {
            "title": "Deep scan: break the 306-product ceiling",
            "type": "boolean",
            "description": "Walks the same keyword through 11 separate price bands instead of one plain search. Measured on amazon.com: six price bands returned 96 products with zero overlap, so each band is its own window with its own ceiling. Costs more requests.",
            "default": false
          },
          "maxPagesPerSearch": {
            "title": "Pages per search window",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "16 organic products per page. Amazon's own limit is 20 pages per window (measured: page 20 returned 2 products and there was no page 21).",
            "default": 3
          },
          "maxItems": {
            "title": "Maximum products in the output",
            "minimum": 0,
            "type": "integer",
            "description": "Limits what is WRITTEN to the dataset, not what is crawled. Filters are applied before this count, so a filtered run still fills up to this number. 0 means no limit.",
            "default": 50
          },
          "fetchProductDetails": {
            "title": "Fetch product details",
            "type": "boolean",
            "description": "Open every product page for brand, seller, availability, bullet points, specifications, high-resolution images and Best Sellers Rank. One extra request per product.",
            "default": false
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Products with no rating at all are kept: missing data is not a mismatch.",
            "default": 0
          },
          "minReviews": {
            "title": "Minimum number of ratings",
            "minimum": 0,
            "type": "integer",
            "description": "Products with no rating count at all are kept: missing data is not a mismatch.",
            "default": 0
          },
          "onlyDiscounted": {
            "title": "Only products with a discount",
            "type": "boolean",
            "description": "Keeps products that show a struck-through list price. Works without product details.",
            "default": false
          },
          "onlyInStock": {
            "title": "Only products in stock",
            "type": "boolean",
            "description": "Stock is only stated on the product page, so switching this on switches product details on as well, and the log says so.",
            "default": false
          },
          "titleContains": {
            "title": "Title must contain",
            "type": "string",
            "description": "Case-insensitive. Products with no title are kept.",
            "default": ""
          },
          "brandIs": {
            "title": "Brand is exactly",
            "type": "string",
            "description": "Brand is only stated on the product page, so this switches product details on as well.",
            "default": ""
          },
          "onlyChanged": {
            "title": "Monitor mode: only new and changed products",
            "type": "boolean",
            "description": "Compares against what earlier runs delivered and writes only products whose price, list price, stock, rating, rating count or best seller rank moved. Every row is labelled NEW, UPDATED or UNCHANGED.",
            "default": false
          },
          "emitUnchanged": {
            "title": "Also write unchanged products",
            "type": "boolean",
            "description": "Monitor mode with the labels but without skipping anything.",
            "default": false
          },
          "compactOutput": {
            "title": "Compact output",
            "type": "boolean",
            "description": "15 columns instead of 35, for CSV exports and AI agents.",
            "default": false
          },
          "dropEmptyFields": {
            "title": "Drop empty fields",
            "type": "boolean",
            "description": "Leave out keys whose value is empty.",
            "default": false
          },
          "requestDelaySeconds": {
            "title": "Delay between requests, seconds",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Measured from the Apify cloud: 30 requests back to back with no delay returned 30 answers with code 200 and no rate limiting. The default is polite rather than necessary.",
            "default": 0
          },
          "requestTimeoutSeconds": {
            "title": "Request timeout, seconds",
            "minimum": 10,
            "maximum": 180,
            "type": "integer",
            "description": "How long to wait for one Amazon page before giving up and retrying.",
            "default": 45
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Where the requests go out from. Measured on 18 Sep 2026 from Apify's own cloud: amazon.com answered 503 to every direct request and no product could be read, so a residential address is the default. Turn it off to run without a proxy.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}