{
  "openapi": "3.0.1",
  "info": {
    "title": "App Store Reviews Scraper · Ratings, Reviews & Version History",
    "description": "App Store Reviews Scraper extracts Apple App Store reviews, star ratings, user feedback, and version history across 55 country storefronts. Filter by stars, date, or keyword for ASO and competitor analysis.",
    "version": "0.1",
    "x-build-id": "Z23IEOvdgVkyfcrys"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reapx~app-store-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reapx-app-store-reviews-scraper",
        "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/reapx~app-store-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reapx-app-store-reviews-scraper",
        "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/reapx~app-store-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reapx-app-store-reviews-scraper",
        "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": {
          "appIds": {
            "title": "App Store apps",
            "type": "array",
            "description": "The iOS apps to read reviews for. Paste an App Store URL, a numeric app ID, or a bundle ID - one per line. Example: https://apps.apple.com/us/app/whatsapp-messenger/id310633997, 284882215, com.burbn.instagram.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Or find apps by search term",
            "type": "array",
            "description": "App Store search queries. Each one is resolved to the top-ranking apps in every storefront you selected, so you can track a whole category without knowing its app IDs. Example: budget tracker, habit tracker.<br><br>Leave this field empty to include every option.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "appsPerSearchTerm": {
            "title": "Apps to take per search term",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "How many top-ranking apps to keep for each search term above. Example: 3 keeps the three best-matching apps per term.",
            "default": 3
          },
          "countries": {
            "title": "Country storefronts",
            "type": "array",
            "description": "Apple runs a separate review feed per country. Pick one or many - every review row is labelled with the storefront it came from. Example: us, gb, de, jp.<br><br>Leave this field empty to include every option.",
            "items": {
              "type": "string",
              "enum": [
                "us",
                "gb",
                "ca",
                "au",
                "ie",
                "nz",
                "za",
                "de",
                "fr",
                "es",
                "it",
                "nl",
                "be",
                "at",
                "ch",
                "pt",
                "se",
                "no",
                "dk",
                "fi",
                "pl",
                "cz",
                "gr",
                "ro",
                "hu",
                "ua",
                "ru",
                "tr",
                "ae",
                "sa",
                "qa",
                "kw",
                "eg",
                "il",
                "in",
                "pk",
                "id",
                "my",
                "sg",
                "th",
                "vn",
                "ph",
                "jp",
                "kr",
                "cn",
                "hk",
                "tw",
                "br",
                "mx",
                "ar",
                "cl",
                "co",
                "pe",
                "ng",
                "ke"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "Ireland",
                "New Zealand",
                "South Africa",
                "Germany",
                "France",
                "Spain",
                "Italy",
                "Netherlands",
                "Belgium",
                "Austria",
                "Switzerland",
                "Portugal",
                "Sweden",
                "Norway",
                "Denmark",
                "Finland",
                "Poland",
                "Czechia",
                "Greece",
                "Romania",
                "Hungary",
                "Ukraine",
                "Russia",
                "Turkey",
                "United Arab Emirates",
                "Saudi Arabia",
                "Qatar",
                "Kuwait",
                "Egypt",
                "Israel",
                "India",
                "Pakistan",
                "Indonesia",
                "Malaysia",
                "Singapore",
                "Thailand",
                "Vietnam",
                "Philippines",
                "Japan",
                "South Korea",
                "China mainland",
                "Hong Kong",
                "Taiwan",
                "Brazil",
                "Mexico",
                "Argentina",
                "Chile",
                "Colombia",
                "Peru",
                "Nigeria",
                "Kenya"
              ]
            },
            "default": [
              "us"
            ]
          },
          "sortBy": {
            "title": "Review order",
            "enum": [
              "mostrecent",
              "mosthelpful"
            ],
            "type": "string",
            "description": "Newest first, or the reviews Apple ranks as most helpful. Example: mostrecent for monitoring, mosthelpful for research.<br><br>Options: <code>mostrecent</code>, <code>mosthelpful</code>.",
            "default": "mostrecent"
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app and storefront",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Upper limit for each app in each storefront, before filters. Apple's hard ceiling is 500. Example: 100.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned.",
            "default": 100
          },
          "maxTotalReviews": {
            "title": "Max reviews for the whole run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard stop for the entire run - your cost ceiling. The run ends as soon as this many reviews have been returned. Example: 500.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned.",
            "default": 500
          },
          "minRating": {
            "title": "Minimum star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only reviews at or above this star rating. Example: 1 keeps everything, 4 keeps positive reviews."
          },
          "maxRating": {
            "title": "Maximum star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only reviews at or below this star rating. Example: 2 isolates 1- and 2-star complaints.<br><br>The higher the number, the longer the run takes and the more you are charged, because you pay per row returned."
          },
          "reviewedAfter": {
            "title": "Only reviews posted after",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Drop anything older than this date. Useful for watching the reaction to a release. Example: 2026-01-01."
          },
          "keywords": {
            "title": "Only reviews mentioning",
            "type": "array",
            "description": "Keep a review only if its title or body contains one of these words, case-insensitive. Example: crash, refund, subscription.<br><br>Leave this field empty to include every option.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyReviewsWithText": {
            "title": "Skip reviews with an empty body",
            "type": "boolean",
            "description": "Drop star-only reviews that carry no written text. Example: true when you plan to run sentiment analysis."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apple throttles busy shared cloud IPs by answering with an empty review feed instead of an error. Apify Proxy gives each app and storefront its own exit IP, which avoids it. Example: leave this on.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}