{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Keyword Rank Tracker - ASIN & Brand Search Rank",
    "description": "Amazon keyword rank tracker: where your ASINs (or a brand) rank in Amazon search for each keyword: organic rank, page and position, results count, top competitors above you, and sponsored (ad) rank when Amazon shows ads. 21 marketplaces, no login. Export rank data to CSV, JSON or Excel, or via API.",
    "version": "1.0",
    "x-build-id": "cF7l8PSyIWvOdmLBI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyscrape~amazon-keyword-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyscrape-amazon-keyword-rank-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/steadyscrape~amazon-keyword-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-steadyscrape-amazon-keyword-rank-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/steadyscrape~amazon-keyword-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-steadyscrape-amazon-keyword-rank-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",
        "required": [
          "keywords"
        ],
        "properties": {
          "asins": {
            "title": "ASINs to track",
            "type": "array",
            "description": "Your products (or a competitor's), one per line: the ASIN (<code>B09FT58QQP</code>) or the product link (<code>https://www.amazon.com/dp/B09FT58QQP</code>). Each one gets a row per keyword with its organic rank and its sponsored (ad) rank. Matched by the ASIN on the search result card: Amazon shows one variation per product family, so track the ASIN its search results link to. Up to 50.",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands to track (optional)",
            "type": "array",
            "description": "Brand names, one per line (<code>Soundcore</code>, <code>JBL</code>): the rank of the brand's best product and how many of its products show, organic and sponsored. A product counts for a brand when its title starts with the brand name, as Amazon titles do, or when the card prints the brand on its own line (fashion, beauty). Case and accents are ignored. Up to 10. A brand is counted over every page, so with brands the scan always reads the pages you ask for.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "What shoppers type in Amazon's search box, one per line (<code>wireless earbuds</code>). A link to an Amazon search results page (<code>https://www.amazon.co.uk/s?k=desk+lamp&i=kitchen</code>) is taken as it is, with its own marketplace, department and filters. One keyword is one check: every ASIN and brand above is ranked from the same pages.",
            "items": {
              "type": "string"
            }
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "com",
              "ca",
              "com.mx",
              "com.br",
              "co.uk",
              "de",
              "it",
              "es",
              "nl",
              "com.be",
              "ie",
              "se",
              "pl",
              "com.tr",
              "co.jp",
              "in",
              "com.au",
              "sg",
              "ae",
              "sa",
              "eg"
            ],
            "type": "string",
            "description": "Where keywords are searched (links carry their own). Measured from Apify's cloud: amazon.com, .ca, .com.mx, .com.br, .co.jp and .com.au answer through datacenter IPs; .co.uk, .de, .it, .es and .in only through residential IPs of their own country, so their pages add a residential-page charge. amazon.fr answers a challenge on every route and is not offered.",
            "default": "com"
          },
          "department": {
            "title": "Department (optional)",
            "type": "string",
            "description": "Rank inside one department, by the alias Amazon puts after <code>i=</code> in a search link: on amazon.com <code>electronics</code>, <code>stripbooks</code> (Books), <code>fashion</code>, <code>beauty</code>, <code>garden</code> (Home & Kitchen), <code>hpc</code> (Health & Household), <code>sporting</code>, <code>toys-and-games</code>, <code>pets</code>. Empty: all departments, as the search box does by default."
          },
          "maxPages": {
            "title": "Pages to scan per keyword",
            "minimum": 1,
            "maximum": 7,
            "type": "integer",
            "description": "How deep to look: Amazon shows 16 to 60 products a page and ends most searches at 7 pages. The scan stops sooner once every ASIN has been found among the organic results, or at Amazon's last page. A keyword check includes 3 pages; each page past the third is an extra-page charge.",
            "default": 3
          },
          "route": {
            "title": "Proxies",
            "enum": [
              "auto",
              "residential",
              "no-residential"
            ],
            "type": "string",
            "description": "Which IPs Amazon is read from. <b>Cheapest that answers</b>: the run's own IP, then datacenter, then residential in the marketplace's country. <b>Residential in the marketplace's country</b>: every page from a residential IP there, the view of a local visitor (Amazon localizes results and prices by IP); each page is a residential-page charge. <b>Never residential</b>: a keyword only residential would answer comes back as a free <code>blocked</code> row. Sponsored ranks are the ads the reading IP was shown, and Amazon shows proxy IPs fewer ads than shoppers at home: each row says how many ads its pages held (<code>sponsoredResultsScanned</code>).",
            "default": "auto"
          },
          "competitors": {
            "title": "Top competitors per keyword",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "How many of the first organic results that are not your ASINs or brands to list in each row (title, price, rating, reviews), so you see who holds the places above you. 0 leaves them out.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}