{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Store Reviews Scraper",
    "description": "[💰 $0.2 / 1K] Extract reviews from any app on Google Play — reviewer, rating, text, date, helpful votes, app version, device, and developer replies. Accepts app package names or full Play Store URLs.",
    "version": "1.0",
    "x-build-id": "fLyRiQtKwcAHbUvWY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~google-play-store-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-google-play-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/solidcode~google-play-store-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-google-play-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/solidcode~google-play-store-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-google-play-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": {
          "appIdsOrUrls": {
            "title": "Apps",
            "type": "array",
            "description": "App package names (e.g. `com.supercell.brawlstars`) or full Google Play URLs (e.g. `https://play.google.com/store/apps/details?id=com.supercell.brawlstars`). Add as many as you like.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerApp": {
            "title": "Max Reviews Per App",
            "minimum": 0,
            "type": "integer",
            "description": "How many reviews you get back per app, counted after your filters are applied. If you also pick several star ratings, this budget is shared evenly between them so every rating you picked is represented. With keyword, version or date filters on, the actor reads further down the review history to find matches — always more reviews than it keeps, and it stops at a built-in scan limit, so if too few reviews match you may end up below this number and the run will say so. Set to 0 to collect as much as possible, which tops out at 50,000 reviews per app. Recommended: 100–1000 to keep runs quick and affordable."
          },
          "sortBy": {
            "title": "Sort Reviews By",
            "enum": [
              "mostRelevant",
              "newest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Choose the order Google Play returns reviews in."
          },
          "deviceType": {
            "title": "Device Type",
            "enum": [
              "phone",
              "tablet",
              "chromebook"
            ],
            "type": "string",
            "description": "Only collect reviews posted from this device type. Every result row repeats your choice in its `deviceType` column, so device-split exports stay identifiable once you merge them. Google Play does not publish a device for individual reviews, so that column always matches this setting rather than varying row by row."
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "nl",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "pl",
              "cs",
              "da",
              "sv",
              "no",
              "fi",
              "el",
              "tr",
              "ar",
              "he",
              "ja",
              "ko",
              "zh-CN",
              "zh-TW",
              "th",
              "vi",
              "id",
              "ms",
              "hi",
              "ru",
              "uk",
              "ro",
              "hu"
            ],
            "type": "string",
            "description": "Language used by Google Play and the review text returned when available."
          },
          "countryCode": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "NZ",
              "IE",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "BE",
              "AT",
              "CH",
              "PT",
              "LU",
              "DK",
              "FI",
              "IS",
              "NO",
              "SE",
              "PL",
              "CZ",
              "SK",
              "HU",
              "RO",
              "BG",
              "GR",
              "TR",
              "JP",
              "KR",
              "CN",
              "HK",
              "TW",
              "SG",
              "MY",
              "TH",
              "ID",
              "PH",
              "VN",
              "IN",
              "BR",
              "MX",
              "AR",
              "CL",
              "CO",
              "PE",
              "ZA",
              "EG",
              "IL",
              "AE",
              "SA",
              "RU",
              "UA"
            ],
            "type": "string",
            "description": "Country Google Play uses to resolve region-specific review data."
          },
          "ratings": {
            "title": "Star Ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Only keep reviews matching these star ratings. Leave empty to collect all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Only keep reviews whose text contains any of these words or phrases (case-insensitive). The actor keeps searching until it has found your requested number of matching reviews, so narrow keywords make a run take longer.",
            "items": {
              "type": "string"
            }
          },
          "reviewsStartDate": {
            "title": "Reviews Start Date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Only collect reviews posted on or after this date. Format: YYYY-MM-DD (for example 2025-01-15). Combine with sort order \"Newest First\" for an efficient recent-only run (collection stops when older reviews are reached)."
          },
          "reviewsEndDate": {
            "title": "Reviews End Date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Only collect reviews posted on or before this date. Format: YYYY-MM-DD. Applied after reviews are collected — final count may be lower than expected."
          },
          "recentDays": {
            "title": "Recent Days",
            "minimum": 0,
            "type": "integer",
            "description": "Convenience filter: only reviews from the last N days. Set to 0 to disable. Overrides the Reviews Start Date when greater than 0. Most efficient with sort order \"Newest First\"."
          },
          "appVersions": {
            "title": "App Versions",
            "type": "array",
            "description": "Only keep reviews reported from these app versions (e.g. 65.165, 64.226). The actor keeps searching until it has found your requested number of matching reviews, so older versions take longer to fill.",
            "items": {
              "type": "string"
            }
          },
          "uniqueOnly": {
            "title": "Unique Reviews Only",
            "type": "boolean",
            "description": "Drop duplicate reviews (matched by review ID) across the run."
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Default (Apify proxy) is recommended."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}