{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Store Review Scraper",
    "description": "Analyze Google Play feedback effortlessly. Scrape reviews, ratings, app versions, update info, and user insights in bulk. Perfect for product teams, researchers, and data analysts looking for actionable app review intelligence.",
    "version": "0.2",
    "x-build-id": "afQH60ftoguZcTkx3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~google-play-store-review-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-google-play-store-review-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/api-empire~google-play-store-review-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-google-play-store-review-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/api-empire~google-play-store-review-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-google-play-store-review-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "🔗 App Package Name or URL (required)",
            "type": "array",
            "description": "One or more app URLs or package names. Example: https://play.google.com/store/apps/details?id=com.supercell.brawlstars or com.supercell.brawlstars",
            "items": {
              "type": "string"
            }
          },
          "deviceType": {
            "title": "📲 Device Type",
            "enum": [
              "mobile",
              "tablet",
              "chromebook"
            ],
            "type": "string",
            "description": "Device type to scrape reviews from: mobile, tablet, or chromebook.",
            "default": "mobile"
          },
          "sortBy": {
            "title": "↕️ Sort By",
            "enum": [
              "mostRelevant",
              "newest",
              "rating"
            ],
            "type": "string",
            "description": "Order of reviews: Most Relevant, Newest, or by Rating.",
            "default": "mostRelevant"
          },
          "rating": {
            "title": "⭐ Fetch Reviews by Rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only include reviews with this star rating (1–5). Leave empty for all ratings.",
            "default": null
          },
          "startPage": {
            "title": "📄 Start Page",
            "minimum": 1,
            "type": "integer",
            "description": "Page number to start from (1 = first page).",
            "default": 1
          },
          "pagesToScrape": {
            "title": "📑 Pages to Scrape",
            "minimum": -1,
            "type": "integer",
            "description": "Max number of pages per app. Use -1 for all available (~20 reviews per page).",
            "default": 10
          },
          "reviewsPerPage": {
            "title": "📊 Reviews per Page",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many reviews to request per page (API may return fewer).",
            "default": 100
          },
          "maxReviews": {
            "title": "🎯 Max Reviews",
            "minimum": -1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum total reviews per app. Use -1 for no limit (up to 10000).",
            "default": 100
          },
          "ratingFilter": {
            "title": "⭐ Rating Filter (multiple)",
            "type": "array",
            "description": "Only include reviews with these star ratings (e.g. 1, 2, 5). Overrides single rating if set.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ]
            }
          },
          "language": {
            "title": "🌐 Language Filter",
            "type": "array",
            "description": "Only include reviews in these languages. Format: code - Language name (e.g. en - English, fr - French).",
            "items": {
              "type": "string",
              "enum": [
                "en - English",
                "es - Spanish",
                "fr - French",
                "de - German",
                "it - Italian",
                "pt - Portuguese",
                "ru - Russian",
                "ja - Japanese",
                "ko - Korean",
                "zh - Chinese",
                "ar - Arabic",
                "hi - Hindi",
                "tr - Turkish",
                "nl - Dutch",
                "pl - Polish",
                "vi - Vietnamese",
                "th - Thai",
                "id - Indonesian",
                "ms - Malay",
                "uk - Ukrainian",
                "sv - Swedish",
                "da - Danish",
                "no - Norwegian",
                "fi - Finnish",
                "el - Greek",
                "he - Hebrew",
                "ro - Romanian",
                "hu - Hungarian",
                "cs - Czech",
                "sk - Slovak",
                "bg - Bulgarian",
                "hr - Croatian",
                "sr - Serbian",
                "sl - Slovenian",
                "et - Estonian",
                "lv - Latvian",
                "lt - Lithuanian"
              ]
            }
          },
          "keywords": {
            "title": "🔍 Keywords Filter",
            "type": "array",
            "description": "Only include reviews that contain any of these keywords (case-insensitive).",
            "items": {
              "type": "string"
            }
          },
          "endDate": {
            "title": "📅 End Date",
            "type": "string",
            "description": "Only include reviews up to this date (YYYY-MM-DD). Leave empty for no limit.",
            "default": ""
          },
          "recentDays": {
            "title": "🕐 Recent Days",
            "minimum": 0,
            "type": "integer",
            "description": "Only include reviews from the last N days. Use 0 for no limit.",
            "default": 0
          },
          "uniqueOnly": {
            "title": "✨ Unique Reviews Only",
            "type": "boolean",
            "description": "Remove duplicate reviews by review ID.",
            "default": true
          },
          "appVersion": {
            "title": "📦 App Version Filter",
            "type": "array",
            "description": "Only include reviews for these app versions (e.g. 65.165).",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy Configuration",
            "type": "object",
            "description": "Choose proxies for requests. Falls back to residential proxy if blocked."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}