{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play & App Store Reviews Scraper",
    "description": "Get app reviews from Google Play and the App Store in one format: stars, text, date, version and developer reply, plus a rating snapshot per app. Rating and date filters, only-new mode for review alerts, full app details and keyword app search for ASO. Pay per review.",
    "version": "1.0",
    "x-build-id": "qOiC6xTu6yWA0WcdR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vncntlabs~app-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vncntlabs-app-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/vncntlabs~app-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-vncntlabs-app-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/vncntlabs~app-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-vncntlabs-app-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": {
          "apps": {
            "title": "Apps",
            "type": "array",
            "description": "One per line: a Google Play link or package name (<code>com.duolingo</code>), or an App Store link or numeric id (<code>570060128</code>). The store is detected automatically.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search keywords (find apps)",
            "type": "array",
            "description": "Optional: keywords to search in the stores, e.g. <code>habit tracker</code>. Returns the ranked apps for each keyword (ASO competitor lists). Up to 50 keywords.",
            "items": {
              "type": "string"
            }
          },
          "searchStores": {
            "title": "Stores to search",
            "type": "array",
            "description": "Which stores the keyword search covers.",
            "items": {
              "type": "string",
              "enum": [
                "google_play",
                "app_store"
              ],
              "enumTitles": [
                "Google Play",
                "App Store"
              ]
            },
            "default": [
              "google_play",
              "app_store"
            ]
          },
          "maxAppsPerSearch": {
            "title": "Max apps per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Google Play returns up to 30 apps per keyword; the App Store up to 100.",
            "default": 30
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Up to 10,000 for Google Play. The App Store shows at most 500 reviews per app per country. 0 = no reviews (app details only). In only-new mode this is the most new reviews returned per app per run.",
            "default": 100
          },
          "reviewSort": {
            "title": "Sort reviews",
            "enum": [
              "newest",
              "relevant"
            ],
            "type": "string",
            "description": "Newest first suits monitoring; most relevant (Google Play) or most helpful (App Store) suits research.",
            "default": "newest"
          },
          "minRating": {
            "title": "Minimum stars",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only reviews with at least this many stars.",
            "default": 1
          },
          "maxRating": {
            "title": "Maximum stars",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only reviews with at most this many stars, e.g. 2 for negative-review alerts. A single star value (min = max) is filtered by Google Play itself.",
            "default": 5
          },
          "reviewsNewerThan": {
            "title": "Only reviews newer than",
            "type": "string",
            "description": "Optional: a date (<code>2026-10-01</code>) or a period (<code>7 days</code>, <code>24 hours</code>, <code>2 weeks</code>, <code>3 months</code>). App Store dates are day-precision."
          },
          "includeAppDetails": {
            "title": "Include full app details",
            "type": "boolean",
            "description": "Adds installs, category, price, developer, version, size, release and update dates, what's new, screenshots and similar apps to each app row (charged per app).",
            "default": false
          },
          "country": {
            "title": "Store country",
            "enum": [
              "Argentina",
              "Australia",
              "Austria",
              "Bangladesh",
              "Belgium",
              "Brazil",
              "Bulgaria",
              "Canada",
              "Chile",
              "Colombia",
              "Costa Rica",
              "Croatia",
              "Cyprus",
              "Czechia",
              "Denmark",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "Estonia",
              "Finland",
              "France",
              "Germany",
              "Greece",
              "Hong Kong",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Ireland",
              "Israel",
              "Italy",
              "Japan",
              "Kenya",
              "Kuwait",
              "Latvia",
              "Lithuania",
              "Luxembourg",
              "Malaysia",
              "Malta",
              "Mexico",
              "Morocco",
              "Netherlands",
              "New Zealand",
              "Nigeria",
              "Norway",
              "Pakistan",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Puerto Rico",
              "Qatar",
              "Romania",
              "Saudi Arabia",
              "Serbia",
              "Singapore",
              "Slovakia",
              "Slovenia",
              "South Africa",
              "South Korea",
              "Spain",
              "Sweden",
              "Switzerland",
              "Taiwan",
              "Thailand",
              "Turkiye",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "Uruguay",
              "Vietnam"
            ],
            "type": "string",
            "description": "The country edition of the stores. App Store reviews are per country.",
            "default": "United States"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language code (en, de, es, pt, ja...).",
            "default": "en"
          },
          "onlyNewReviews": {
            "title": "Only new reviews (monitoring)",
            "type": "boolean",
            "description": "For scheduled runs: remembers the reviews delivered before and returns only new ones, plus each app's rating and rating-count change since the last check. The first run returns the latest reviews as a baseline. History is kept in your Apify account (key-value store 'app-reviews-monitor').",
            "default": false
          },
          "monitorId": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Name the monitor to keep its history stable when you edit the list, e.g. <code>my-apps</code>."
          },
          "includeReviewerDetails": {
            "title": "Include reviewer names",
            "type": "boolean",
            "description": "Off by default: reviewer names and avatars are personal data and are left out. Turn on only if you need them and have a lawful basis to process them.",
            "default": false
          },
          "includeDeveloperContact": {
            "title": "Include developer email and address",
            "type": "boolean",
            "description": "Off by default. With app details on, adds the support email and postal address the developer published on Google Play (often a person's for indie developers).",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}