{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Scraper | Reviews, Apps & Search | $0.09 / 1K",
    "description": "Google Play scraper and Play Store API alternative: app reviews with star filters and an only-new-reviews monitoring mode, full app details, keyword search and developer apps, in any country and language. No API key, no login.",
    "version": "0.0",
    "x-build-id": "Xnxmz8RMlWEARsxYC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hridayrungta~google-play-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hridayrungta-google-play-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/hridayrungta~google-play-scraper/runs": {
      "post": {
        "operationId": "runs-sync-hridayrungta-google-play-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/hridayrungta~google-play-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-hridayrungta-google-play-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": "Apps (package IDs or Google Play URLs)",
            "type": "array",
            "description": "One app per line: the package ID (com.spotify.music) or the app's Google Play URL (https://play.google.com/store/apps/details?id=com.spotify.music). A URL with hl= and gl= uses that language and country for this app.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms (keywords)",
            "type": "array",
            "description": "Google Play app search, one keyword per line, e.g. \"meditation\" or \"photo editor\". Returns the apps in Google Play's ranking order (Google Play shows up to 30 apps per search).",
            "items": {
              "type": "string"
            }
          },
          "developers": {
            "title": "Developers",
            "type": "array",
            "description": "All apps of a developer: the developer name exactly as on Google Play (\"Spotify AB\"), the numeric developer ID, or the developer page URL.",
            "items": {
              "type": "string"
            }
          },
          "includeAppDetails": {
            "title": "App details for each app",
            "type": "boolean",
            "description": "One full app row per app in \"Apps\": title, developer and contacts, rating, ratings count, star histogram, installs, price, genre, content rating, version, updated date, description, screenshots.",
            "default": true
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Reviews to fetch for each app in \"Apps\" (and for found apps if you turn that on below). 0 = no reviews. With a star filter, this applies per star.",
            "default": 100
          },
          "reviewSort": {
            "title": "Review sort",
            "enum": [
              "newest",
              "relevant",
              "rating"
            ],
            "type": "string",
            "description": "Newest first (best for monitoring), Most relevant (Google Play's default) or Rating.",
            "default": "newest"
          },
          "reviewStars": {
            "title": "Only these star ratings",
            "type": "array",
            "description": "Leave empty for all reviews. Pick 1 and 2 to collect only negative reviews, 5 for praise.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Only reviews posted on or after this date: an absolute date (2026-10-01) or a relative one (7 days, 2 weeks, 3 months). Uses the Newest sort and stops paging at the first older review."
          },
          "onlyNewReviews": {
            "title": "Only new reviews since the last run (monitoring)",
            "type": "boolean",
            "description": "Remembers the reviews delivered for each app and returns only reviews that are new since the previous run of the same monitor. Schedule it daily or hourly for review monitoring. Already-seen reviews are never charged. One only-new run checks at most 250 apps (app x star combinations); split bigger lists into several scheduled runs or tasks with their own monitor names.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate memory per monitor, so different schedules do not mix. Letters, numbers, - and _ only.",
            "default": "default"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google Play language code (hl), e.g. en, de, fr, es, pt-BR, ja. Reviews come in this language; app texts are translated where the developer provides it.",
            "default": "en"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "2-letter Google Play country code (gl), e.g. us, gb, de, in, br. Sets prices, currency, availability and search ranking.",
            "default": "us"
          },
          "maxSearchResults": {
            "title": "Max apps per search term",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Up to 30 (Google Play shows at most 30 apps per search).",
            "default": 30
          },
          "maxAppsPerDeveloper": {
            "title": "Max apps per developer",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on apps returned per developer (big publishers have hundreds).",
            "default": 100
          },
          "detailsForFoundApps": {
            "title": "Full details for apps found by search or developer",
            "type": "boolean",
            "description": "Off: one short row per found app (title, developer, rating, installs, price, genre), charged as \"app-listing\". On: the full app row for each found app instead, charged as \"app-details\".",
            "default": false
          },
          "reviewsForFoundApps": {
            "title": "Reviews for apps found by search or developer",
            "type": "boolean",
            "description": "Also fetch reviews (\"Max reviews per app\") for every app found by your search terms and developers, e.g. the reviews of the top 10 meditation apps.",
            "default": false
          },
          "maxItems": {
            "title": "Max billed rows",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Hard cap on billed rows (reviews + app rows) for the whole run. Status rows are free and not counted.",
            "default": 100000
          },
          "maxRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "How many times a blocked or failed request is retried on a fresh proxy session.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}