{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store & Google Play Tracker: Version, Price & Rank Changes",
    "description": "Monitor iOS/Android version, price and rating changes by country. Charts cover Apple Top Free/Top Paid top 100; reviews are App Store only. Google Play charts/reviews and keyword/ASO ranks are not included.",
    "version": "0.1",
    "x-build-id": "fkiVXbxNj2eeRg6y2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datasmithlab~app-store-play-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datasmithlab-app-store-play-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/datasmithlab~app-store-play-tracker/runs": {
      "post": {
        "operationId": "runs-sync-datasmithlab-app-store-play-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/datasmithlab~app-store-play-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-datasmithlab-app-store-play-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": {
          "appStoreApps": {
            "title": "App Store apps",
            "type": "array",
            "description": "One per line: the numeric App Store id (389801252) or an apps.apple.com link such as https://apps.apple.com/us/app/instagram/id389801252.",
            "items": {
              "type": "string"
            }
          },
          "googlePlayApps": {
            "title": "Google Play apps",
            "type": "array",
            "description": "One per line: the package name (com.instagram.android) or a play.google.com/store/apps/details?id=... link.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Every app is checked in each country's store (price, rating, version and chart rank differ per country). Default: United States.",
            "items": {
              "type": "string",
              "enum": [
                "us",
                "gb",
                "ca",
                "au",
                "nz",
                "ie",
                "de",
                "at",
                "ch",
                "fr",
                "be",
                "nl",
                "lu",
                "it",
                "es",
                "pt",
                "se",
                "no",
                "dk",
                "fi",
                "pl",
                "cz",
                "sk",
                "hu",
                "ro",
                "bg",
                "gr",
                "hr",
                "si",
                "tr",
                "ua",
                "il",
                "ae",
                "sa",
                "eg",
                "za",
                "ng",
                "ke",
                "in",
                "pk",
                "bd",
                "lk",
                "id",
                "my",
                "sg",
                "th",
                "vn",
                "ph",
                "hk",
                "tw",
                "kr",
                "jp",
                "cn",
                "mx",
                "br",
                "ar",
                "cl",
                "co",
                "pe",
                "ve",
                "ec",
                "uy",
                "cr",
                "pa",
                "do",
                "kz",
                "ru"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "New Zealand",
                "Ireland",
                "Germany",
                "Austria",
                "Switzerland",
                "France",
                "Belgium",
                "Netherlands",
                "Luxembourg",
                "Italy",
                "Spain",
                "Portugal",
                "Sweden",
                "Norway",
                "Denmark",
                "Finland",
                "Poland",
                "Czechia",
                "Slovakia",
                "Hungary",
                "Romania",
                "Bulgaria",
                "Greece",
                "Croatia",
                "Slovenia",
                "Türkiye",
                "Ukraine",
                "Israel",
                "United Arab Emirates",
                "Saudi Arabia",
                "Egypt",
                "South Africa",
                "Nigeria",
                "Kenya",
                "India",
                "Pakistan",
                "Bangladesh",
                "Sri Lanka",
                "Indonesia",
                "Malaysia",
                "Singapore",
                "Thailand",
                "Vietnam",
                "Philippines",
                "Hong Kong",
                "Taiwan",
                "South Korea",
                "Japan",
                "China",
                "Mexico",
                "Brazil",
                "Argentina",
                "Chile",
                "Colombia",
                "Peru",
                "Venezuela",
                "Ecuador",
                "Uruguay",
                "Costa Rica",
                "Panama",
                "Dominican Republic",
                "Kazakhstan",
                "Russia"
              ]
            }
          },
          "chartLists": {
            "title": "Top charts to watch",
            "type": "array",
            "description": "Adds each tracked App Store app's position in Apple's official top-100 chart per country (RANK_CHANGE). Apple publishes only Top Free and Top Paid in this feed.",
            "items": {
              "type": "string",
              "enum": [
                "top-free",
                "top-paid"
              ],
              "enumTitles": [
                "Top Free",
                "Top Paid"
              ]
            }
          },
          "chartTopN": {
            "title": "Also track the top N apps of each chart",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "0 = only your own apps. 10 = your apps plus every app that is in the top 10 of the selected charts (new entrants are reported as NEW). Needs at least one chart.",
            "default": 0
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed apps",
            "type": "boolean",
            "description": "For scheduled runs: each run returns only apps that are NEW, CHANGED since the last run (VERSION_CHANGE, PRICE_CHANGE, RATING_CHANGE, RANK_CHANGE, NEW_REVIEWS) or REMOVED from a store. Unchanged apps are not returned and not charged. Turn off for a full snapshot of every app on every run.",
            "default": true
          },
          "ratingChangeThreshold": {
            "title": "Rating change threshold (stars)",
            "minimum": 0.01,
            "maximum": 5,
            "type": "number",
            "description": "RATING_CHANGE is reported when the average rating moved at least this much since the last reported value. Slow drifts add up until they pass the threshold.",
            "default": 0.05
          },
          "rankChangeThreshold": {
            "title": "Chart rank change threshold (places)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "RANK_CHANGE is reported when the chart position moved at least this many places. Entering or leaving the top 100 is always reported.",
            "default": 5
          },
          "reviews": {
            "title": "Customer reviews (App Store only)",
            "enum": [
              "off",
              "summary",
              "rows"
            ],
            "type": "string",
            "description": "Reads Apple's public review feed of your own App Store apps: 'summary' adds NEW_REVIEWS (count and average of reviews since the last run) to the app row; 'rows' also returns each new review (rating, title, text, app version, date) as its own charged row. Reviewer names and profiles are never collected. Google Play reviews are not available (Google's robots.txt forbids them).",
            "default": "off"
          },
          "minNewReviews": {
            "title": "Report new reviews from (count)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "NEW_REVIEWS appears once at least this many new reviews have collected since the last report.",
            "default": 5
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app and run",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Apple's feed shows the 50 most recent reviews per country.",
            "default": 50
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many rows (app rows + review rows). You pay per row.",
            "default": 200
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Not needed: requests go out without a proxy and both stores answered normally in tests. Only if a store blocks the request is this proxy used (at most 3 new IPs, then the run stops and says so)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}