{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Keyword Rank Tracker · ASIN Rank Checker",
    "description": "Track where your ASINs rank on Amazon for each keyword: organic rank, sponsored position and page, on 20 marketplaces, with the rank change since the last run. Schedule it daily for a keyword rank history. No login.",
    "version": "1.0",
    "x-build-id": "hvmjMlWpker5uh4Fy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/molded_mountainpass~amazon-keyword-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-molded_mountainpass-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/molded_mountainpass~amazon-keyword-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-molded_mountainpass-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/molded_mountainpass~amazon-keyword-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-molded_mountainpass-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": [
          "searchQueries"
        ],
        "properties": {
          "searchQueries": {
            "title": "Keywords",
            "type": "array",
            "description": "Keywords to check. Each keyword is searched on the marketplace below, and every row says which keyword it ranks for (`searchQuery`).",
            "default": [
              "wireless earbuds"
            ],
            "items": {
              "type": "string"
            }
          },
          "asins": {
            "title": "ASINs to track",
            "type": "array",
            "description": "Your products and your competitors' (10-character ASINs, e.g. B09FT58QQP). Each row is one ASIN found for one keyword, with its organic rank and its position. Leave empty to get the rank of every product in the results.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Marketplace",
            "enum": [
              "US",
              "CA",
              "MX",
              "BR",
              "UK",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "SE",
              "PL",
              "TR",
              "JP",
              "IN",
              "AU",
              "SG",
              "SA",
              "AE",
              "EG"
            ],
            "type": "string",
            "description": "Amazon marketplace to check the ranks on.",
            "default": "US"
          },
          "maxPages": {
            "title": "Max pages per keyword",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How deep to look: about 16 organic results per page, so 3 pages = the top ~48. An ASIN that isn't in the pages read gets a free notFound row (found: false).",
            "default": 3
          },
          "monitoringMode": {
            "title": "Rank changes",
            "enum": [
              "all",
              "changes",
              "off"
            ],
            "type": "string",
            "description": "The Actor remembers each keyword's last ranks. With history on, rows get changeType (new / changed / unchanged), rankDelta (negative = moved up) and previousRank. Schedule it daily to build a rank history.",
            "default": "all"
          },
          "rankChangeThreshold": {
            "title": "Rank change that counts",
            "minimum": 1,
            "type": "integer",
            "description": "For 'Only ASINs whose rank or price changed': how many places a rank must move to count.",
            "default": 1
          },
          "includeSponsored": {
            "title": "Include sponsored positions",
            "type": "boolean",
            "description": "Also report where the ASINs appear as sponsored ads. Off: organic ranks only. Ads still count in the position shoppers see.",
            "default": true
          },
          "deliveryZipCodes": {
            "title": "Delivery ZIP or postal code per marketplace",
            "type": "object",
            "description": "Prices, delivery dates and availability depend on where Amazon delivers. Give a postcode per marketplace, by country code or domain, for example {\"US\": \"10001\", \"DE\": \"10115\", \"amazon.co.uk\": \"SW1A 1AA\"}. No extra charge. Rows show deliveryLocation and zipApplied (whether Amazon accepted it)."
          },
          "monitorStoreName": {
            "title": "Monitoring store name",
            "type": "string",
            "description": "Named key-value store that keeps the last ranks. Use a different name to keep separate histories, for example one per client.",
            "default": "amazon-rank-tracker"
          },
          "language": {
            "title": "Language",
            "enum": [
              "AUTO",
              "en",
              "de",
              "fr",
              "it",
              "es",
              "ja",
              "pt",
              "ar",
              "tr",
              "sv",
              "nl",
              "pl"
            ],
            "type": "string",
            "description": "Language the Actor asks Amazon for (Accept-Language). Auto uses the marketplace's own language, for example German on amazon.de. Pick English to get English text everywhere Amazon offers it.",
            "default": "AUTO"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Amazon blocks datacenter IPs, so RESIDENTIAL is the default. Datacenter proxies cost less but often return few or no results.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "scrapeMode": {
            "title": "Output format",
            "type": "string",
            "description": "Fixed: this Actor outputs search-result rows.",
            "default": "search"
          },
          "maxResultsPerQuery": {
            "title": "Max rows per keyword",
            "type": "integer",
            "description": "0 = no limit; Max pages limits the run.",
            "default": 0
          },
          "concurrency": {
            "title": "Parallel searches",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many pages are fetched at the same time. The pages of one keyword are always read in order, so this speeds up runs with several keywords. 3-5 is reliable; more is faster but meets more temporary blocks.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}