{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Reviews Scraper | Low-Star & Replies",
    "description": "Under maintenance: source access is under review. Please avoid starting new runs until this notice is cleared.",
    "version": "0.1",
    "x-build-id": "tN0FTK8xqveybWjtR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/peerless_columbine~google-play-reviews-scraper-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-peerless_columbine-google-play-reviews-scraper-api",
        "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/peerless_columbine~google-play-reviews-scraper-api/runs": {
      "post": {
        "operationId": "runs-sync-peerless_columbine-google-play-reviews-scraper-api",
        "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/peerless_columbine~google-play-reviews-scraper-api/run-sync": {
      "post": {
        "operationId": "run-sync-peerless_columbine-google-play-reviews-scraper-api",
        "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": {
          "appIdOrUrl": {
            "title": "App URL or package ID — replace this example",
            "type": "string",
            "description": "Paste the Google Play page of the app you want, or its package ID. This is the only prefilled target. For multiple apps leave this blank and use Batch apps below."
          },
          "maxReviews": {
            "title": "Maximum reviews for this run",
            "minimum": -1,
            "maximum": 100000,
            "type": "integer",
            "description": "Compatibility maximum number of saved reviews across the run. -1 uses maxItems or the safety ceiling. Defaults to 1000 only when neither limit is supplied."
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Google Play country code used by the review RPC, e.g. US, GB, KR. Select a suggested locale or enter a custom code. Locale selection does not detect the language of each review.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google Play query locale, e.g. en or de. all sweeps the documented fixed locale list in round-robin pages; maxReviews is a global cap, not per language. This does not classify review text language. Select a suggested locale or enter a custom code. Locale selection does not detect the language of each review.",
            "default": "en"
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "NEWEST",
              "RATING",
              "HELPFULNESS",
              "MOST_RELEVANT"
            ],
            "type": "string",
            "description": "Compatibility sort: NEWEST, RATING or HELPFULNESS/MOST_RELEVANT.",
            "default": "NEWEST"
          },
          "ratingFilter": {
            "title": "Ratings",
            "type": "array",
            "description": "Return only reviews whose score is in this 1-5 allow-list. Numeric arrays such as [1,2] are supported for migration compatibility."
          },
          "since": {
            "title": "Only reviews since",
            "type": "string",
            "description": "ISO date/timestamp for scheduled incremental monitoring."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Compatibility upper date bound in YYYY-MM-DD or ISO format."
          },
          "recentDays": {
            "title": "Recent days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Return reviews from the most recent N days; 0 disables this filter.",
            "default": 0
          },
          "keywords": {
            "title": "Keywords",
            "uniqueItems": true,
            "type": "array",
            "description": "Return reviews containing at least one keyword, case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "appVersion": {
            "title": "App versions",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional exact app-version allow-list.",
            "items": {
              "type": "string"
            }
          },
          "includeRepliesOnly": {
            "title": "Developer replies only",
            "type": "boolean",
            "description": "Return only reviews that have a developer reply.",
            "default": false
          },
          "deviceType": {
            "title": "Device type",
            "enum": [
              "mobile",
              "tablet",
              "chromebook",
              "tv"
            ],
            "type": "string",
            "description": "Google Play device review context.",
            "default": "mobile"
          },
          "appIds": {
            "title": "App IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "Multiple Google Play package IDs in one run.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Compatibility input containing Google Play app detail URLs.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional multi-country extension. When supplied, each app is queried for each country and review IDs are deduplicated.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "US",
                "AR",
                "AU",
                "AT",
                "BE",
                "BR",
                "BS",
                "CA",
                "CL",
                "CO",
                "CZ",
                "DK",
                "FI",
                "FR",
                "DE",
                "GR",
                "HK",
                "HU",
                "IN",
                "ID",
                "IE",
                "IT",
                "JP",
                "JO",
                "KW",
                "LB",
                "LU",
                "MY",
                "MX",
                "NL",
                "NZ",
                "NO",
                "PY",
                "PE",
                "PH",
                "PL",
                "PT",
                "RO",
                "RU",
                "SG",
                "ZA",
                "KR",
                "ES",
                "CH",
                "TW",
                "TH",
                "TR",
                "AE",
                "GB",
                "VE",
                "VN",
                "NG"
              ],
              "enumTitles": [
                "United States",
                "Argentina",
                "Australia",
                "Austria",
                "Belgium",
                "Brazil",
                "Bahamas",
                "Canada",
                "Chile",
                "Colombia",
                "Czech Republic",
                "Denmark",
                "Finland",
                "France",
                "Germany",
                "Greece",
                "Hong Kong",
                "Hungary",
                "India",
                "Indonesia",
                "Ireland",
                "Italy",
                "Japan",
                "Jordan",
                "Kuwait",
                "Lebanon",
                "Luxembourg",
                "Malaysia",
                "Mexico",
                "Netherlands",
                "New Zealand",
                "Norway",
                "Paraguay",
                "Peru",
                "Philippines",
                "Poland",
                "Portugal",
                "Romania",
                "Russia",
                "Singapore",
                "South Africa",
                "South Korea",
                "Spain",
                "Switzerland",
                "Taiwan",
                "Thailand",
                "Turkey",
                "United Arab Emirates",
                "United Kingdom",
                "Venezuela",
                "Vietnam",
                "Nigeria"
              ]
            }
          },
          "languages": {
            "title": "Languages",
            "uniqueItems": true,
            "type": "array",
            "description": "Explicit query locales, or [\"all\"] for the fixed locale sweep. Queried round-robin; unvisited sources are reported when the global limit is reached.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "en",
                "af",
                "am",
                "bg",
                "ca",
                "zh",
                "zh-HK",
                "zh-CN",
                "zh-TW",
                "hr",
                "cs",
                "da",
                "nl",
                "en-GB",
                "en-US",
                "et",
                "fil",
                "fi",
                "fr",
                "fr-CA",
                "fr-FR",
                "de",
                "el",
                "he",
                "hi",
                "hu",
                "is",
                "in",
                "it",
                "ja",
                "ko",
                "lv",
                "lt",
                "ms",
                "no",
                "pl",
                "pt",
                "pt-BR",
                "pt-PT",
                "ro",
                "ru",
                "sr",
                "sk",
                "sl",
                "es",
                "es-419",
                "es-ES",
                "sw",
                "sv",
                "th",
                "tr",
                "uk",
                "vi",
                "zu"
              ],
              "enumTitles": [
                "English",
                "Afrikaans",
                "Amharic",
                "Bulgarian",
                "Catalan",
                "Chinese",
                "Chinese (Hong Kong)",
                "Chinese (PRC)",
                "Chinese (Taiwan)",
                "Croatian",
                "Czech",
                "Danish",
                "Dutch",
                "English (UK)",
                "English (US)",
                "Estonian",
                "Filipino",
                "Finnish",
                "French",
                "French (Canada)",
                "French (France)",
                "German",
                "Greek",
                "Hebrew",
                "Hindi",
                "Hungarian",
                "Icelandic",
                "Indonesian",
                "Italian",
                "Japanese",
                "Korean",
                "Latvian",
                "Lithuanian",
                "Malay",
                "Norwegian",
                "Polish",
                "Portuguese",
                "Portuguese (Brazil)",
                "Portuguese (Portugal)",
                "Romanian",
                "Russian",
                "Serbian",
                "Slovak",
                "Slovenian",
                "Spanish",
                "Spanish (Latin America)",
                "Spanish (Spain)",
                "Swahili",
                "Swedish",
                "Thai",
                "Turkish",
                "Ukrainian",
                "Vietnamese",
                "Zulu"
              ]
            }
          },
          "startPage": {
            "title": "Start page",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Compatibility page offset. Earlier pages are fetched only to obtain Google's continuation token, then discarded.",
            "default": 1
          },
          "pagesToScrape": {
            "title": "Pages to scrape",
            "minimum": -1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum RPC pages per app/country after startPage. -1 means continue until maxReviews/maxItems or source exhaustion.",
            "default": -1
          },
          "reviewsPerPage": {
            "title": "Reviews per RPC page",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Requested reviews per Google Play RPC call.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Alternative compatibility maximum. When supplied with maxReviews, the lower positive limit wins."
          },
          "uniqueOnly": {
            "title": "Unique reviews only",
            "type": "boolean",
            "description": "Deduplicate by reviewId across pages/apps/countries.",
            "default": true
          },
          "requestDelayMillis": {
            "title": "Request spacing",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Optional delay before each RPC attempt.",
            "default": 0
          },
          "until": {
            "title": "Scrape Until compatibility",
            "type": "string",
            "description": "theagents-compatible LOWER date bound: returns reviews newer than this date. Combined with since using the later bound. Use endDate for an upper bound."
          },
          "neatratInput": {
            "title": "Neatrat original input",
            "type": "object",
            "description": "Explicit Neatrat migration: paste the original input object here. Do not combine with native fields (unchanged platform defaults are ignored). outputSchema remains top-level and independent. Preserves language arrays and defaults mostRelevant / 5 pages / 10000 reviews. Missing language uses en query locale; text-language filter equivalence is unproven."
          },
          "wolvesInput": {
            "title": "thewolves original input",
            "type": "object",
            "description": "Explicit thewolves migration: paste the original input object here. Do not combine with native fields (unchanged platform defaults are ignored). outputSchema remains top-level and independent. Requires explicit positive maxItems: competitor has UI prefill only, no documented API default. No explicit page limit; native safety bounds apply."
          },
          "theagentsInput": {
            "title": "theagents original input",
            "type": "object",
            "description": "Explicit theagents migration: paste the original input object here. Do not combine with native fields (unchanged platform defaults are ignored). outputSchema remains top-level and independent. Requires explicit positive maxItems: competitor has UI prefill only, no documented API default. No explicit page limit; native safety bounds apply."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "mostRelevant",
              "newest",
              "rating",
              "recent",
              "top"
            ],
            "type": "string",
            "description": "Alternative compatibility sort used by another major Actor."
          },
          "rating": {
            "title": "Single rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Return reviews with exactly one star rating from 1 to 5."
          },
          "ratings": {
            "title": "Ratings compatibility",
            "type": "array",
            "description": "Additional allowed ratings, merged with ratingFilter.",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5
            }
          },
          "maxRequestRetries": {
            "title": "Request retries",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries transient HTTP/rate-limit/network failures.",
            "default": 2
          },
          "customMapFunction": {
            "title": "Custom map compatibility",
            "type": "string",
            "description": "JavaScript function applied after output formatting to each review. Must return one JSON object. Isolated runtime with no network, file system or Python access; 50ms CPU and 16MB per row, 10s total. Not a filter."
          },
          "outputSchema": {
            "title": "Output format",
            "enum": [
              "extended",
              "wolves",
              "neatrat",
              "theagents"
            ],
            "type": "string",
            "description": "Explicit migration format. Missing source values stay null; extended preserves diagnostics.",
            "default": "extended"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration compatibility",
            "type": "object",
            "description": "Accepted for migration compatibility. The validated public RPC path does not require or use a proxy."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}