{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product & Best Sellers Scraper: Search, Buy Box",
    "description": "Amazon product search, Best Sellers ranks and Buy Box offers on 21 stores, $0.54 per 1,000 search rows vs $1 at the two most used search actors. Position, sponsored flag, ASIN, price, rating, badges, bought in past month; Bestsellers, New Releases, Movers. Leader input works. Free error rows.",
    "version": "0.1",
    "x-build-id": "ES5pUuivppWQChusV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/arcadium~amazon-products/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-arcadium-amazon-products",
        "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/arcadium~amazon-products/runs": {
      "post": {
        "operationId": "runs-sync-arcadium-amazon-products",
        "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/arcadium~amazon-products/run-sync": {
      "post": {
        "operationId": "run-sync-arcadium-amazon-products",
        "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": {
          "searches": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search on the chosen store, e.g. [\"wireless earbuds\", \"usb c cable\"]. Each term gives up to maxResultsPerSearch result rows in Amazon's order: position, sponsored flag, ASIN, title, price, list price, rating, rating count, badges, bought in past month. Also read from keywords, searchQueries, searchQuery or queries (other Amazon actors' names).",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories (Best Sellers, New Releases, Movers & Shakers)",
            "type": "array",
            "description": "Category paths as in the store's Best Sellers URLs, e.g. [\"electronics\", \"electronics/172541\", \"kitchen\"] (amazon.de: \"ce-de\"). Each category gives one ranked list per listTypes entry, up to maxResultsPerList ranks. A Best Sellers URL works here too.",
            "items": {
              "type": "string"
            }
          },
          "listTypes": {
            "title": "Ranked lists",
            "type": "array",
            "description": "Which ranked lists to read for every category: Best Sellers (default), New Releases, Movers & Shakers (biggest 24-hour gainers, with the rank change), Most Wished For, Gift Ideas.",
            "items": {
              "type": "string",
              "enum": [
                "bestsellers",
                "new-releases",
                "movers-and-shakers",
                "most-wished-for",
                "most-gifted"
              ],
              "enumTitles": [
                "Best Sellers",
                "New Releases",
                "Movers & Shakers",
                "Most Wished For",
                "Gift Ideas"
              ]
            },
            "default": [
              "bestsellers"
            ]
          },
          "asins": {
            "title": "ASINs (product rows)",
            "type": "array",
            "description": "Product ids, e.g. [\"B0DCH8VDXF\", \"B08JHCVHTY\"]. Each gives one product row: title, image, rating, star split, rating count, Buy Box price and seller, list price, ships from, delivery promise, and the other offers (condition, price, seller).",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Amazon URLs",
            "type": "array",
            "description": "Any mix of search URLs (https://www.amazon.com/s?k=yoga+mat, filters kept), Best Sellers / New Releases / Movers & Shakers URLs (https://www.amazon.de/gp/bestsellers/kitchen) and product URLs (https://www.amazon.co.uk/dp/B0DCH8VDXF). Each URL is read on its own store.",
            "items": {
              "type": "string"
            }
          },
          "marketplace": {
            "title": "Amazon store",
            "enum": [
              "US",
              "GB",
              "DE",
              "FR",
              "IT",
              "ES",
              "CA",
              "JP",
              "AU",
              "IN",
              "MX",
              "BR",
              "NL",
              "SE",
              "PL",
              "BE",
              "TR",
              "AE",
              "SA",
              "SG",
              "EG",
              "us",
              "uk",
              "de",
              "fr",
              "it",
              "es",
              "ca",
              "jp",
              "au",
              "in",
              "mx",
              "br",
              "nl",
              "se",
              "pl",
              "be",
              "tr",
              "ae",
              "sa",
              "sg",
              "eg"
            ],
            "type": "string",
            "description": "Store for searches, categories and ASINs (URLs use their own store). Prices, sellers and delivery are those a shopper in that country sees: non-US stores are read from an IP in their country. Example: DE. Lowercase codes (us, uk, de) and the names country, countryCode, amazonDomain or website are accepted too."
          },
          "maxResultsPerSearch": {
            "title": "Max results per search term",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Result rows per search term or search URL, 1 to 1,000 (default 48). Amazon shows 16-60 cards per page; the actor reads as many pages as needed. Sponsored cards count unless includeSponsored is off. Also read from maxResultsPerKeyword or maxResultsPerQuery."
          },
          "maxPagesPerSearch": {
            "title": "Max result pages per search term",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Upper bound of result pages per search term, 1 to 20 (default 20). Amazon itself stops after about 7 to 20 pages. Also read from maxPages or maxSearchPages."
          },
          "maxResultsPerList": {
            "title": "Max ranks per list",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Ranks per Best Sellers / New Releases / Movers & Shakers list, 1 to 100 (default 50). Ranks 51-100 come from the list's second page.",
            "default": 50
          },
          "sort": {
            "title": "Search sort order",
            "enum": [
              "relevance",
              "priceAsc",
              "priceDesc",
              "rating",
              "newest",
              "bestSellers"
            ],
            "type": "string",
            "description": "Order of search results: Amazon's relevance (default), price low to high, price high to low, average rating, newest, best sellers."
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "number",
            "description": "Search filter in the store's currency, e.g. 10 for $10 on amazon.com. Applied by Amazon."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "number",
            "description": "Search filter in the store's currency, e.g. 50 for €50 on amazon.de. Applied by Amazon."
          },
          "minRating": {
            "title": "Min star rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keeps only search results rated at least this (0 to 5, e.g. 4). Skipped results are free."
          },
          "includeSponsored": {
            "title": "Include sponsored results",
            "type": "boolean",
            "description": "Keeps sponsored (ad) cards in search results, flagged with sponsored: true. Turn off to get organic results only; skipped ads are free. Default: true. excludeSponsored: true (another actor's name) means the same as false here."
          },
          "includeProductRows": {
            "title": "Add a product row for every ASIN found",
            "type": "boolean",
            "description": "Also reads the product row (Buy Box, sellers, offers, star split) of every ASIN a search or list returned. Each product row is charged as a product row. Off by default.",
            "default": false
          },
          "maxOffers": {
            "title": "Max other offers per product",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Other offers (besides the Buy Box) listed in a product row, 0 to 20 (default 10). Offers 11-20 take one more small request.",
            "default": 10
          },
          "maxItems": {
            "title": "Max rows in total",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops the run after this many charged rows (search, list and product rows together), 1 to 1,000,000. A cost cap; leave empty for no limit."
          },
          "watch": {
            "title": "Watch mode: pay only for changes",
            "type": "boolean",
            "description": "Compare every row with the last run that used the same watch key and output only new rows and rows whose rank, price, rating, badges or Buy Box changed, each with a change object (fields old -> new). Unchanged rows are not output and not charged; one free watch-summary row counts unchanged, changed, new and gone. The first run is a normal run, charged normally.",
            "default": false
          },
          "watchKey": {
            "title": "Watch key",
            "type": "string",
            "description": "Name of the saved snapshot for watch mode (letters, digits, - and _, up to 60). Use one key per monitored search or list set, for example \"weekly-check\". A new key starts a new baseline. The snapshot is kept in a key-value store in your account.",
            "default": "default"
          },
          "digest": {
            "title": "Add a weekly digest row",
            "type": "boolean",
            "description": "Watch mode only. Adds one free watch-digest row per run that sums up the changes of the last digest days for this watch key: counts by change type, price drops and rises, rank moves, the biggest price, Buy Box price and rank moves, and a one-line plain-text summary you can paste into an email or Slack. No extra charge.",
            "default": false
          },
          "digestDays": {
            "title": "Digest window (days)",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "How many days the digest row covers (rolling window, 1-90). Runs older than this drop out of the digest.",
            "default": 7
          },
          "includeErrorRows": {
            "title": "Add a row for inputs without data",
            "type": "boolean",
            "description": "Adds a free row (rowType error, with a code and message) for every search, category, ASIN or URL that gave no data: not found, invalid input, nothing matched, temporarily blocked. On by default.",
            "default": true
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Advanced. How often a request is retried after a block or temporary error (each retry uses a new IP), 0 to 10 (default 5)."
          },
          "proxyConfiguration": {
            "title": "Proxy (advanced)",
            "type": "object",
            "description": "Advanced. Leave empty: the actor picks the IPs itself (residential IPs of the store's country for prices, cheaper datacenter IPs where they show the same data) and rotates them."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}