{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Scraper - Apps, Ratings & Reviews",
    "description": "Scrape Google Play: search apps by keyword (title, developer, rating, price, genre, installs), read an app's full listing with the per-star rating histogram, installs and data-safety notes, or collect its reviews with developer replies. Any country and language. No proxies needed.",
    "version": "1.0",
    "x-build-id": "tawtaUqfWxsxLpUvb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapercompany~google-play-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapercompany-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/scrapercompany~google-play-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapercompany-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/scrapercompany~google-play-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapercompany-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "app",
              "reviews"
            ],
            "type": "string",
            "description": "Search Google Play by keyword, read full listings for known apps, or collect their reviews.",
            "default": "search"
          },
          "queries": {
            "title": "Search terms (App search)",
            "type": "array",
            "description": "One Google Play search per line, e.g. <code>meditation</code>, <code>habit tracker</code>.",
            "default": [
              "meditation"
            ],
            "items": {
              "type": "string"
            }
          },
          "appIds": {
            "title": "Package names (App details, App reviews)",
            "type": "array",
            "description": "Android package names, e.g. <code>com.duolingo</code>: the <code>id=</code> value of a Google Play app link, or <code>app_id</code> from App search results.",
            "default": [
              "com.duolingo"
            ],
            "items": {
              "type": "string"
            }
          },
          "gl": {
            "title": "Country",
            "enum": [
              "ad",
              "ae",
              "af",
              "ag",
              "ai",
              "al",
              "am",
              "ao",
              "aq",
              "ar",
              "as",
              "at",
              "au",
              "aw",
              "ax",
              "az",
              "ba",
              "bb",
              "bd",
              "be",
              "bf",
              "bg",
              "bh",
              "bi",
              "bj",
              "bl",
              "bm",
              "bn",
              "bo",
              "bq",
              "br",
              "bs",
              "bt",
              "bv",
              "bw",
              "by",
              "bz",
              "ca",
              "cc",
              "cd",
              "cf",
              "cg",
              "ch",
              "ci",
              "ck",
              "cl",
              "cm",
              "cn",
              "co",
              "cr",
              "cu",
              "cv",
              "cw",
              "cx",
              "cy",
              "cz",
              "de",
              "dj",
              "dk",
              "dm",
              "do",
              "dz",
              "ec",
              "ee",
              "eg",
              "eh",
              "er",
              "es",
              "et",
              "fi",
              "fj",
              "fk",
              "fm",
              "fo",
              "fr",
              "ga",
              "gb",
              "gd",
              "ge",
              "gf",
              "gg",
              "gh",
              "gi",
              "gl",
              "gm",
              "gn",
              "gp",
              "gq",
              "gr",
              "gs",
              "gt",
              "gu",
              "gw",
              "gy",
              "hk",
              "hm",
              "hn",
              "hr",
              "ht",
              "hu",
              "id",
              "ie",
              "il",
              "im",
              "in",
              "io",
              "iq",
              "ir",
              "is",
              "it",
              "je",
              "jm",
              "jo",
              "jp",
              "ke",
              "kg",
              "kh",
              "ki",
              "km",
              "kn",
              "kp",
              "kr",
              "kw",
              "ky",
              "kz",
              "la",
              "lb",
              "lc",
              "li",
              "lk",
              "lr",
              "ls",
              "lt",
              "lu",
              "lv",
              "ly",
              "ma",
              "mc",
              "md",
              "me",
              "mf",
              "mg",
              "mh",
              "mk",
              "ml",
              "mm",
              "mn",
              "mo",
              "mp",
              "mq",
              "mr",
              "ms",
              "mt",
              "mu",
              "mv",
              "mw",
              "mx",
              "my",
              "mz",
              "na",
              "nc",
              "ne",
              "nf",
              "ng",
              "ni",
              "nl",
              "no",
              "np",
              "nr",
              "nu",
              "nz",
              "om",
              "pa",
              "pe",
              "pf",
              "pg",
              "ph",
              "pk",
              "pl",
              "pm",
              "pn",
              "pr",
              "ps",
              "pt",
              "pw",
              "py",
              "qa",
              "re",
              "ro",
              "rs",
              "ru",
              "rw",
              "sa",
              "sb",
              "sc",
              "sd",
              "se",
              "sg",
              "sh",
              "si",
              "sj",
              "sk",
              "sl",
              "sm",
              "sn",
              "so",
              "sr",
              "ss",
              "st",
              "sv",
              "sx",
              "sy",
              "sz",
              "tc",
              "td",
              "tf",
              "tg",
              "th",
              "tj",
              "tk",
              "tl",
              "tm",
              "tn",
              "to",
              "tr",
              "tt",
              "tv",
              "tw",
              "tz",
              "ua",
              "ug",
              "uk",
              "um",
              "us",
              "uy",
              "uz",
              "va",
              "vc",
              "ve",
              "vg",
              "vi",
              "vn",
              "vu",
              "wf",
              "ws",
              "xk",
              "ye",
              "yt",
              "za",
              "zm",
              "zw"
            ],
            "type": "string",
            "description": "Google Play storefront country (<code>gl</code>), e.g. <code>us</code>, <code>gb</code>, <code>in</code>. Sets the price currency and the country's ratings.",
            "default": "us"
          },
          "hl": {
            "title": "Language",
            "type": "string",
            "description": "Language of the listing and review text (<code>hl</code>), e.g. <code>en</code>, <code>fr</code>, <code>de</code>.",
            "default": "en"
          },
          "reviewSort": {
            "title": "Review order (App reviews)",
            "enum": [
              "most_relevant",
              "newest",
              "rating"
            ],
            "type": "string",
            "description": "Google Play's own review order.",
            "default": "most_relevant"
          },
          "reviewRating": {
            "title": "Only reviews with this many stars (App reviews)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Google Play's star filter, 1-5. Leave empty for all reviews."
          },
          "reviewsPerPage": {
            "title": "Reviews per page (App reviews)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many reviews one page returns (1-200). A page is charged the same whatever its size.",
            "default": 100
          },
          "maxPages": {
            "title": "Review pages per app (App reviews)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many review pages to fetch for each app (1-50). Each page is a separate request and is charged separately; paging stops at the last page.",
            "default": 1
          },
          "customRequests": {
            "title": "Custom requests (advanced)",
            "type": "array",
            "description": "Optional list of JSON objects, one request each, using the API field names shown above. Each object is merged over the options above, so you only need to give what differs. Add <code>\"mode\"</code> to mix searches, details and reviews. Example: <code>{\"mode\":\"reviews\",\"app_id\":\"com.spotify.music\",\"gl\":\"gb\",\"sort\":\"newest\",\"rating\":1}</code>"
          },
          "includeErrors": {
            "title": "Include failed requests in the dataset",
            "type": "boolean",
            "description": "When on, a request that fails (for example an unknown property id) is saved as a dataset item with an <code>error</code> message so you can see what went wrong. Failed requests are never charged.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many API requests run at the same time (1-8). Parallel runs share one limit, so extra requests wait for a free slot instead of failing.",
            "default": 3
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries for rate limits (HTTP 429), temporary server errors (5xx) and network errors, with exponential backoff. Validation errors are never retried.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}