{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon.ca Product & Trending Tracker",
    "description": "Track Amazon.ca Best Sellers and New Releases (the whole top 100), prices with price history, stock and Best Sellers Rank, search positions, keyword suggestions and reviews, on Canada and 22 more marketplaces. Scheduled runs show what moved, what is new and which prices dropped.",
    "version": "0.1",
    "x-build-id": "p12OYdmJTUK8kv4A1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/akhil_rajesh~amazon-ca-product-trending-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-akhil_rajesh-amazon-ca-product-trending-tracker",
        "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/akhil_rajesh~amazon-ca-product-trending-tracker/runs": {
      "post": {
        "operationId": "runs-sync-akhil_rajesh-amazon-ca-product-trending-tracker",
        "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/akhil_rajesh~amazon-ca-product-trending-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-akhil_rajesh-amazon-ca-product-trending-tracker",
        "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": {
          "mode": {
            "title": "What to get",
            "enum": [
              "trending",
              "products",
              "search",
              "reviews",
              "suggestions"
            ],
            "type": "string",
            "description": "Trending lists: a category's Best Sellers or New Releases, the whole top 100. Products: product pages by ASIN or link, with price, stock, seller and Best Sellers Rank. Search: keyword search results in Amazon's order, sponsored ones marked. Reviews: the reviews a product page shows, with their text. Keyword suggestions: what Amazon's search box suggests for each keyword in Search keywords (keyword research), optionally expanded a to z.",
            "default": "trending"
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "ca",
              "com",
              "uk",
              "de",
              "fr",
              "it",
              "es",
              "mx",
              "jp",
              "in",
              "au",
              "br",
              "nl",
              "se",
              "pl",
              "tr",
              "be",
              "ie",
              "sg",
              "ae",
              "sa",
              "eg",
              "za"
            ],
            "type": "string",
            "description": "Which Amazon site to read. A pasted link (category or product) uses its own site.",
            "default": "ca"
          },
          "category": {
            "title": "Category",
            "enum": [
              "all",
              "electronics",
              "computers",
              "cell-phones",
              "camera-photo",
              "appliances",
              "home-kitchen",
              "kitchen-dining",
              "lighting",
              "tools",
              "garden",
              "toys",
              "videogames",
              "books",
              "kindle",
              "music",
              "movies-tv",
              "software",
              "apps",
              "beauty",
              "health",
              "grocery",
              "baby",
              "fashion",
              "shoes",
              "jewelry",
              "watches",
              "luggage",
              "sports",
              "automotive",
              "pet-supplies",
              "office",
              "industrial",
              "musical-instruments",
              "arts-crafts",
              "amazon-devices",
              "amazon-renewed",
              "handmade",
              "gift-cards"
            ],
            "type": "string",
            "description": "Trending lists: the category whose list to read, or All departments (every department's list on the marketplace). Each marketplace names its categories its own way; this list maps them for you, and the run says so when a marketplace has no such list (with those that have it). For a subcategory (Headphones, Laptops...), paste its link in Category links, or read them all with Subcategories.",
            "default": "electronics"
          },
          "listTypes": {
            "title": "Lists",
            "type": "array",
            "description": "Best Sellers, New Releases (the bestselling new and coming products), or both. Each list has 100 products. Amazon's Movers & Shakers, Most Wished For and Gift Ideas pages show no lists now, so they aren't offered.",
            "items": {
              "type": "string",
              "enum": [
                "bestsellers",
                "new-releases"
              ],
              "enumTitles": [
                "Best Sellers",
                "New Releases"
              ]
            },
            "default": [
              "bestsellers"
            ]
          },
          "categoryUrls": {
            "title": "Category links (optional)",
            "type": "array",
            "description": "Links of Best Sellers or New Releases pages, subcategories too, such as https://www.amazon.ca/gp/bestsellers/electronics/680468011/ (Headphones). Open the list on Amazon and copy its address. The overview link (https://www.amazon.ca/gp/bestsellers/) reads every department. When given, these lists are read instead of Category and Lists, each on its own marketplace.",
            "items": {
              "type": "string"
            }
          },
          "subcategoryLevels": {
            "title": "Subcategories",
            "enum": [
              "0",
              "1",
              "2"
            ],
            "type": "string",
            "description": "Also read the subcategories of each list, as Amazon's list page names them: Electronics on Amazon.ca has 15 (Headphones, Televisions...), and they have their own. Each subcategory is a list of up to 100 products, with its level and the list above it in each row. Max results is shared over all the lists: raise it, or set Max results per list.",
            "default": "0"
          },
          "maxResultsPerList": {
            "title": "Max results per list (optional)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Trending lists: the most products from one list, such as 10 for each subcategory's top 10. Empty: up to 100 (the whole list), as Max results allows."
          },
          "asins": {
            "title": "Products (ASINs or links)",
            "type": "array",
            "description": "Products and Reviews modes: ASINs such as B0F7K67DY2, or product links (https://www.amazon.ca/dp/B0F7K67DY2). A link to another of the 23 marketplaces is read there; links to other sites are skipped and named.",
            "items": {
              "type": "string"
            }
          },
          "reviewStars": {
            "title": "Reviews: stars",
            "type": "array",
            "description": "Reviews mode: only reviews with these stars. Positive is 4 and 5 stars, critical 1 to 3. Empty: all.",
            "items": {
              "type": "string",
              "enum": [
                "positive",
                "critical",
                "5",
                "4",
                "3",
                "2",
                "1"
              ],
              "enumTitles": [
                "Positive (4-5 stars)",
                "Critical (1-3 stars)",
                "5 stars",
                "4 stars",
                "3 stars",
                "2 stars",
                "1 star"
              ]
            }
          },
          "verifiedOnly": {
            "title": "Reviews: verified purchases only",
            "type": "boolean",
            "description": "Reviews mode: only reviews Amazon marks as a verified purchase.",
            "default": false
          },
          "reviewSort": {
            "title": "Reviews: order",
            "enum": [
              "top",
              "recent",
              "helpful"
            ],
            "type": "string",
            "description": "Reviews mode: the order of each product's reviews, which decides which ones Max results keeps. Top: Amazon's own order on the product page.",
            "default": "top"
          },
          "reviewMarketplaces": {
            "title": "Reviews: also read on these marketplaces",
            "type": "array",
            "description": "Reviews mode: each product's page on these marketplaces too. A product page shows 8 to 13 reviews, and each marketplace shows others (its own top reviews, and some from other countries), so this gets more reviews of a product without signing in. A review shown on several is returned once. A product a marketplace doesn't sell is named.",
            "items": {
              "type": "string",
              "enum": [
                "ca",
                "com",
                "uk",
                "de",
                "fr",
                "it",
                "es",
                "mx",
                "jp",
                "in",
                "au",
                "br",
                "nl",
                "se",
                "pl",
                "tr",
                "be",
                "ie",
                "sg",
                "ae",
                "sa",
                "eg",
                "za"
              ],
              "enumTitles": [
                "Canada (amazon.ca)",
                "United States (amazon.com)",
                "United Kingdom (amazon.co.uk)",
                "Germany (amazon.de)",
                "France (amazon.fr)",
                "Italy (amazon.it)",
                "Spain (amazon.es)",
                "Mexico (amazon.com.mx)",
                "Japan (amazon.co.jp)",
                "India (amazon.in)",
                "Australia (amazon.com.au)",
                "Brazil (amazon.com.br)",
                "Netherlands (amazon.nl)",
                "Sweden (amazon.se)",
                "Poland (amazon.pl)",
                "Türkiye (amazon.com.tr)",
                "Belgium (amazon.com.be)",
                "Ireland (amazon.ie)",
                "Singapore (amazon.sg)",
                "United Arab Emirates (amazon.ae)",
                "Saudi Arabia (amazon.sa)",
                "Egypt (amazon.eg)",
                "South Africa (amazon.co.za)"
              ]
            }
          },
          "reviewSummary": {
            "title": "Reviews: add a summary row per product",
            "type": "boolean",
            "description": "Reviews mode: one more row for each product page read, before its reviews: its rating, number of ratings, star breakdown, Amazon's AI summary (Customers say) with each aspect's sentiment, and how many reviews the page showed and matched. Each summary row counts as a result.",
            "default": false
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Search mode: one keyword or phrase per line, searched on the chosen marketplace, or an Amazon search link: its own filters are kept (star rating, Prime, brand, department, sort). Each result has its position on the page and its organic position (sponsored results not counted). Keyword suggestions mode: the keywords whose search-box suggestions to get.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price-low-to-high",
              "price-high-to-low",
              "average-review",
              "newest",
              "best-sellers"
            ],
            "type": "string",
            "description": "Search mode: the order of the results, as Amazon sorts them. A sorted search is tracked apart from the same keyword unsorted. For other filters, set them on Amazon and paste the search's link in Search keywords.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Minimum price (optional)",
            "minimum": 0,
            "type": "number",
            "description": "Search mode: only results at this price or above, in the marketplace's currency. Empty or 0: no limit."
          },
          "maxPrice": {
            "title": "Maximum price (optional)",
            "minimum": 0,
            "type": "number",
            "description": "Search mode: only results at this price or below, in the marketplace's currency. Empty or 0: no limit."
          },
          "suggestionExpansion": {
            "title": "Expand each keyword (suggestions)",
            "enum": [
              "none",
              "letters",
              "letters-digits"
            ],
            "type": "string",
            "description": "Keyword suggestions mode: the search box suggests 10 keywords for what is typed. Letters also asks for the keyword followed by a, b, c ... z (up to about 270 suggestions per keyword); letters and digits adds 0 to 9 (up to about 370). Each suggestion is one row, at its first place.",
            "default": "none"
          },
          "productDetails": {
            "title": "Add product details to each row",
            "type": "boolean",
            "description": "Trending lists and search: also read each product's page, and add what it shows to the row: all images, variants, description, star breakdown, Customers say, coupon, other offers, Best Sellers Rank, seller and specifications. Takes about a second per product; with Only changes, only changed products are read.",
            "default": false
          },
          "setDeliveryAddress": {
            "title": "Set a delivery address where Amazon shows none",
            "type": "boolean",
            "description": "Products and product details: Amazon prices a product page for a delivery address, and where it picks none for the visit it often shows \"add this item to your cart to see its details\" instead of the price (Amazon.com, .co.uk, .de, .es, .nl, .com.tr and .com.au did from Apify's servers). Then the run sets the marketplace's main city (New York 10001, London SW1A 1AA, Berlin 10115...) the way Amazon's own location dialog does, no sign-in, and reads the page again. Each row's deliveryLocation says which address it was shown for.",
            "default": true
          },
          "deliveryPostcode": {
            "title": "Delivery postcode (optional)",
            "type": "string",
            "description": "Products and product details: price product pages for this postcode (ZIP) on the chosen marketplace, such as 90210 on Amazon.com or M1 1AE on Amazon.co.uk, whatever address Amazon picked. Pasted links of other marketplaces keep their main city. Amazon.com.be, .co.za, .ae, .sa and .eg take no postcodes."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "The most rows a run outputs (and charges for). Several lists or keywords share it evenly, and one that has fewer rows passes its share on to the others. Each Best Sellers or New Releases list has 100 products: set 200 to get two whole lists. In Products mode it caps the number of products read. With Only changes it is how many ranks or results are watched: only their changes go out, and products that dropped off come on top.",
            "default": 100
          },
          "trackChanges": {
            "title": "Compare with the previous run",
            "type": "boolean",
            "description": "Adds what changed since the last run of the same list, search, product or keyword's suggestions: previous rank and rank change, whether a product (or suggestion) is new, previous price. Snapshots are kept in a key-value store of your account (amazon-tracker-history), so schedule the run to track a list day by day. Reviews mode doesn't compare.",
            "default": true
          },
          "priceHistoryRuns": {
            "title": "Price history: runs to keep",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Trending lists, search and products: each row also gets the lowest, highest and average price of the product over the last runs that read it (in this list, this search, or as a product), whether it is now at its lowest, and the readings themselves. This many runs are kept per product; 0 turns it off. Built from your own runs, so it fills up as a schedule runs; needs Compare with the previous run.",
            "default": 30
          },
          "onlyChanges": {
            "title": "Only changes",
            "type": "boolean",
            "description": "Output, and pay for, only what changed since the last run of the same list, search, product or keyword's suggestions: new products or suggestions, moves, price and stock changes, and products or suggestions that dropped off. The first run outputs everything as the baseline. Sponsored search results are left out. Needs Compare with the previous run.",
            "default": false
          },
          "minRankChange": {
            "title": "Smallest move, in places (Only changes)",
            "minimum": 1,
            "type": "integer",
            "description": "Lists, searches and keyword suggestions: a product (or suggestion) counts as moved when its rank or position changed at least this many places. Smaller moves add up until they reach it.",
            "default": 1
          },
          "minPriceChangePercent": {
            "title": "Smallest price change, in % (Only changes)",
            "minimum": 0,
            "type": "number",
            "description": "A price counts as changed when it moved at least this much from the last price reported. Smaller moves add up until they reach it.",
            "default": 1
          },
          "minBestSellersRankChangePercent": {
            "title": "Smallest Best Sellers Rank change, in % (Only changes)",
            "minimum": 0,
            "type": "number",
            "description": "Products mode: a Best Sellers Rank counts as changed when it moved at least this much from the last one reported (10: #100 to #90 or #110).",
            "default": 10
          },
          "includeDropped": {
            "title": "Include products that dropped off (Only changes)",
            "type": "boolean",
            "description": "Lists, searches and keyword suggestions: a row for each product (or suggestion) that was in the ranks this run read last time and isn't now, with its previous rank or position.",
            "default": true
          },
          "historyName": {
            "title": "History name (optional)",
            "type": "string",
            "description": "The key-value store that keeps the snapshots compared with. Give schedules that should track separately (for example, hourly and daily runs of one list) their own name. Letters, digits and hyphens."
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Amazon's pages load without one. Apify's datacenter proxy or your own proxies can be used (of your own, the first one: a run sends its requests through one address); residential proxies aren't, as they are billed per GB on top of the result price."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}