{
  "openapi": "3.0.1",
  "info": {
    "title": "ASO Keyword Rank Tracker: App Store Search Ranks",
    "description": "Track where iPhone apps rank for any keyword on the App Store in 57 countries, read from Apple's official iTunes Search API: the top results in its order and the rank of every app you track, with rating, developer and price. Schedule it daily for a keyword rank history.",
    "version": "0.1",
    "x-build-id": "MbjxraT9IcPSbeZcr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/glitchbound~aso-keyword-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-glitchbound-aso-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/glitchbound~aso-keyword-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-glitchbound-aso-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/glitchbound~aso-keyword-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-glitchbound-aso-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",
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Search terms, one per line, exactly as a user would type them in the store. Up to 100 per run.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores",
            "type": "array",
            "description": "Which stores to search. App Store ranks are exact for the top positions the store's own page shows (9 to 14, depending on the country) and continue in Apple's API order below that. Google Play was removed on 8 November 2026: its robots.txt asks tools not to read Play search, so asking for it returns an unbilled note.",
            "items": {
              "type": "string",
              "enum": [
                "app-store",
                "google-play"
              ],
              "enumTitles": [
                "App Store (iPhone)",
                "Google Play (removed on 8 Nov 2026)"
              ]
            },
            "default": [
              "app-store"
            ]
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Storefronts to search in. Every country listed was checked against Google Play's own answer.",
            "items": {
              "type": "string",
              "enum": [
                "us",
                "gb",
                "ca",
                "au",
                "in",
                "de",
                "fr",
                "es",
                "it",
                "nl",
                "se",
                "no",
                "dk",
                "fi",
                "pl",
                "pt",
                "ie",
                "at",
                "ch",
                "be",
                "cz",
                "ro",
                "hu",
                "gr",
                "tr",
                "sa",
                "ae",
                "eg",
                "za",
                "ng",
                "ke",
                "br",
                "mx",
                "ar",
                "co",
                "cl",
                "pe",
                "jp",
                "kr",
                "tw",
                "hk",
                "sg",
                "my",
                "th",
                "vn",
                "ph",
                "id",
                "nz",
                "ru",
                "ua",
                "kz",
                "pk",
                "bd",
                "lk",
                "qa",
                "kw",
                "ma"
              ],
              "enumTitles": [
                "United States (us)",
                "United Kingdom (gb)",
                "Canada (ca)",
                "Australia (au)",
                "India (in)",
                "Germany (de)",
                "France (fr)",
                "Spain (es)",
                "Italy (it)",
                "Netherlands (nl)",
                "Sweden (se)",
                "Norway (no)",
                "Denmark (dk)",
                "Finland (fi)",
                "Poland (pl)",
                "Portugal (pt)",
                "Ireland (ie)",
                "Austria (at)",
                "Switzerland (ch)",
                "Belgium (be)",
                "Czechia (cz)",
                "Romania (ro)",
                "Hungary (hu)",
                "Greece (gr)",
                "Turkey (tr)",
                "Saudi Arabia (sa)",
                "United Arab Emirates (ae)",
                "Egypt (eg)",
                "South Africa (za)",
                "Nigeria (ng)",
                "Kenya (ke)",
                "Brazil (br)",
                "Mexico (mx)",
                "Argentina (ar)",
                "Colombia (co)",
                "Chile (cl)",
                "Peru (pe)",
                "Japan (jp)",
                "South Korea (kr)",
                "Taiwan (tw)",
                "Hong Kong (hk)",
                "Singapore (sg)",
                "Malaysia (my)",
                "Thailand (th)",
                "Vietnam (vn)",
                "Philippines (ph)",
                "Indonesia (id)",
                "New Zealand (nz)",
                "Russia (ru)",
                "Ukraine (ua)",
                "Kazakhstan (kz)",
                "Pakistan (pk)",
                "Bangladesh (bd)",
                "Sri Lanka (lk)",
                "Qatar (qa)",
                "Kuwait (kw)",
                "Morocco (ma)"
              ]
            },
            "default": [
              "us"
            ]
          },
          "language": {
            "title": "Google Play language (optional)",
            "pattern": "^([a-z]{2,3}(-([A-Z]{2}|[0-9]{3}))?)?$",
            "type": "string",
            "description": "Leave empty to read each country in the language its phones use (German in Germany, pt-BR in Brazil), which is what decides the ranking there: in Germany only 1 of the top 10 for \"vpn\" held its position when read in English. Set a code such as en to read every country in that language instead. The App Store always answers in its storefront's own language."
          },
          "trackApps": {
            "title": "Apps to track",
            "type": "array",
            "description": "Apps whose rank you want for every keyword: an App Store numeric id (571800810), an App Store bundle id, or a Google Play package name (com.calm.android). Each returns one row per keyword, store and country, with its rank or 'not-in-top-N'. On the App Store a tracked app is looked for in the top 200.",
            "items": {
              "type": "string"
            }
          },
          "topN": {
            "title": "Top results per search",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "How many of the top apps to return for each keyword, store and country. Set 0 to return only your tracked apps.",
            "default": 10
          },
          "includeSuggestions": {
            "title": "Keyword ideas (store suggestions)",
            "type": "boolean",
            "description": "Removed on 8 November 2026: both stores' suggestion services are disallowed by their robots.txt. Turning this on returns an unbilled note.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum results (whole run)",
            "minimum": 0,
            "type": "integer",
            "description": "A hard ceiling on rows for the entire run. The run stops cleanly when it is reached and nothing beyond that point is fetched or charged. Leave empty for no ceiling."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy settings.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}