{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Store Scraper",
    "description": "Scrape Google Play apps and reviews: search results, top charts, developer portfolios, similar apps and full app details — 60+ fields per app, unlimited reviews per app, any country and language. Paste app IDs or links. Not affiliated with Google.",
    "version": "1.0",
    "x-build-id": "aH8F8Sac8yeUrUlZT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alkausari_mujahid~google-play-store-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alkausari_mujahid-google-play-store-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/alkausari_mujahid~google-play-store-scraper/runs": {
      "post": {
        "operationId": "runs-sync-alkausari_mujahid-google-play-store-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/alkausari_mujahid~google-play-store-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-alkausari_mujahid-google-play-store-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "search",
              "topCharts",
              "details",
              "similar",
              "developer",
              "reviews"
            ],
            "type": "string",
            "description": "Search: apps for keywords. Top charts: ranked Top free / Top paid / Top grossing lists. App details: specific apps. Similar apps: the \"Similar apps\" list of each app. Developer: every app by a developer. Reviews: user reviews of specific apps.",
            "default": "search"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Used in Search mode. One keyword or phrase per line, e.g. \"fitness tracker\" or \"photo editor\".",
            "default": [
              "fitness tracker"
            ],
            "items": {
              "type": "string"
            }
          },
          "appIds": {
            "title": "App IDs or app links",
            "type": "array",
            "description": "Used in App details, Similar apps and Reviews modes. Paste app IDs (com.whatsapp) or any Google Play app link (https://play.google.com/store/apps/details?id=com.whatsapp) — links are reduced to the app ID automatically.",
            "items": {
              "type": "string"
            }
          },
          "developers": {
            "title": "Developers",
            "type": "array",
            "description": "Used in Developer mode. A developer name exactly as shown on Google Play (WhatsApp LLC), a numeric developer ID, or a developer page link.",
            "items": {
              "type": "string"
            }
          },
          "chartCollections": {
            "title": "Charts",
            "type": "array",
            "description": "Used in Top charts mode. Pick one or more.",
            "items": {
              "type": "string",
              "enum": [
                "top-free",
                "top-paid",
                "top-grossing"
              ],
              "enumTitles": [
                "Top free",
                "Top paid",
                "Top grossing"
              ]
            },
            "default": [
              "top-free"
            ]
          },
          "chartCategories": {
            "title": "Chart categories",
            "type": "array",
            "description": "Used in Top charts mode. Each chart is scraped for each category, e.g. Top free × (All apps, Finance) gives two ranked lists.",
            "items": {
              "type": "string",
              "enum": [
                "APPLICATION",
                "GAME",
                "FAMILY",
                "ART_AND_DESIGN",
                "AUTO_AND_VEHICLES",
                "BEAUTY",
                "BOOKS_AND_REFERENCE",
                "BUSINESS",
                "COMICS",
                "COMMUNICATION",
                "DATING",
                "EDUCATION",
                "ENTERTAINMENT",
                "EVENTS",
                "FINANCE",
                "FOOD_AND_DRINK",
                "HEALTH_AND_FITNESS",
                "HOUSE_AND_HOME",
                "LIBRARIES_AND_DEMO",
                "LIFESTYLE",
                "MAPS_AND_NAVIGATION",
                "MEDICAL",
                "MUSIC_AND_AUDIO",
                "NEWS_AND_MAGAZINES",
                "PARENTING",
                "PERSONALIZATION",
                "PHOTOGRAPHY",
                "PRODUCTIVITY",
                "SHOPPING",
                "SOCIAL",
                "SPORTS",
                "TOOLS",
                "TRAVEL_AND_LOCAL",
                "VIDEO_PLAYERS",
                "WATCH_FACE",
                "ANDROID_WEAR",
                "WEATHER",
                "GAME_ACTION",
                "GAME_ADVENTURE",
                "GAME_ARCADE",
                "GAME_BOARD",
                "GAME_CARD",
                "GAME_CASINO",
                "GAME_CASUAL",
                "GAME_EDUCATIONAL",
                "GAME_MUSIC",
                "GAME_PUZZLE",
                "GAME_RACING",
                "GAME_ROLE_PLAYING",
                "GAME_SIMULATION",
                "GAME_SPORTS",
                "GAME_STRATEGY",
                "GAME_TRIVIA",
                "GAME_WORD"
              ],
              "enumTitles": [
                "All apps",
                "All games",
                "Kids / Family",
                "Art & Design",
                "Auto & Vehicles",
                "Beauty",
                "Books & Reference",
                "Business",
                "Comics",
                "Communication",
                "Dating",
                "Education",
                "Entertainment",
                "Events",
                "Finance",
                "Food & Drink",
                "Health & Fitness",
                "House & Home",
                "Libraries & Demo",
                "Lifestyle",
                "Maps & Navigation",
                "Medical",
                "Music & Audio",
                "News & Magazines",
                "Parenting",
                "Personalization",
                "Photography",
                "Productivity",
                "Shopping",
                "Social",
                "Sports",
                "Tools",
                "Travel & Local",
                "Video Players & Editors",
                "Watch Faces",
                "Wear OS",
                "Weather",
                "Games: Action",
                "Games: Adventure",
                "Games: Arcade",
                "Games: Board",
                "Games: Card",
                "Games: Casino",
                "Games: Casual",
                "Games: Educational",
                "Games: Music",
                "Games: Puzzle",
                "Games: Racing",
                "Games: Role Playing",
                "Games: Simulation",
                "Games: Sports",
                "Games: Strategy",
                "Games: Trivia",
                "Games: Word"
              ]
            },
            "default": [
              "APPLICATION"
            ]
          },
          "maxResults": {
            "title": "Max apps per search term, chart, developer or app",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many apps to return for each search term, chart, developer, or (in Similar apps mode) each app. Google Play charts list up to about 200 apps.",
            "default": 50
          },
          "fullDetails": {
            "title": "Get full app details",
            "type": "boolean",
            "description": "On: every app gets all 60+ fields (installs, rating breakdown, developer contacts, screenshots, release notes…) — the same as App details mode. Off: lists return only the basics Google shows in the list (title, developer, rating, price, icon), which is faster. The price per app is the same either way.",
            "default": true
          },
          "expandSearch": {
            "title": "Find more apps with related searches",
            "type": "boolean",
            "description": "Google Play shows only about 20 apps per search. When \"Max apps\" is higher, the Actor also runs Google Play's own related searches (its autocomplete suggestions for your term, e.g. \"fitness tracker app\") until it has enough apps. Each app's matchedQuery shows which search found it. Search mode only.",
            "default": true
          },
          "includePermissions": {
            "title": "Include app permissions",
            "type": "boolean",
            "description": "Adds the Android permissions each app requests. One extra small request per app; no extra charge.",
            "default": false
          },
          "includeDataSafety": {
            "title": "Include Data safety section",
            "type": "boolean",
            "description": "Adds the app's Data safety section: data shared, data collected (with purposes) and security practices. One extra small request per app; no extra charge.",
            "default": false
          },
          "maxReviews": {
            "title": "Max reviews per app",
            "minimum": 0,
            "type": "integer",
            "description": "How many reviews to collect for each app. 0 = every review Google Play returns (can be tens of thousands for popular apps).",
            "default": 100
          },
          "reviewSort": {
            "title": "Sort reviews by",
            "enum": [
              "newest",
              "relevant",
              "rating"
            ],
            "type": "string",
            "description": "Newest first is required for the \"Only reviews newer than\" filter to stop early.",
            "default": "newest"
          },
          "reviewRating": {
            "title": "Star rating",
            "enum": [
              "all",
              "5",
              "4",
              "3",
              "2",
              "1",
              "positive",
              "critical"
            ],
            "type": "string",
            "description": "Only collect reviews with this rating.",
            "default": "all"
          },
          "reviewsNewerThan": {
            "title": "Only reviews newer than",
            "type": "string",
            "description": "Skip reviews older than this date — handy for scheduled runs that only need what is new. A date (2026-10-01) or a period (7 days, 2 weeks, 3 months). Google Play shows reviews 24 hours after they're written, so for a daily run use 2 days. Leave empty for all dates."
          },
          "anonymizeReviewers": {
            "title": "Leave out reviewer names and photos",
            "type": "boolean",
            "description": "Saves reviews without the reviewer name and profile photo, for privacy-sensitive analysis.",
            "default": false
          },
          "country": {
            "title": "Country",
            "enum": [
              "af",
              "al",
              "dz",
              "as",
              "ad",
              "ao",
              "ai",
              "aq",
              "ag",
              "ar",
              "am",
              "aw",
              "au",
              "at",
              "az",
              "bs",
              "bh",
              "bd",
              "bb",
              "by",
              "be",
              "bz",
              "bj",
              "bm",
              "bt",
              "bo",
              "ba",
              "bw",
              "bv",
              "br",
              "io",
              "vg",
              "bn",
              "bg",
              "bf",
              "bi",
              "kh",
              "cm",
              "ca",
              "ic",
              "cv",
              "bq",
              "ky",
              "cf",
              "td",
              "cl",
              "cn",
              "cx",
              "cc",
              "co",
              "km",
              "cg",
              "cd",
              "ck",
              "cr",
              "ci",
              "hr",
              "cw",
              "cy",
              "cz",
              "dk",
              "dj",
              "dm",
              "do",
              "ec",
              "eg",
              "sv",
              "gq",
              "er",
              "ee",
              "sz",
              "et",
              "fk",
              "fo",
              "fj",
              "fi",
              "fr",
              "gf",
              "pf",
              "tf",
              "ga",
              "gm",
              "ge",
              "de",
              "gh",
              "gi",
              "gr",
              "gl",
              "gd",
              "gp",
              "gu",
              "gt",
              "gg",
              "gn",
              "gw",
              "gy",
              "ht",
              "hm",
              "hn",
              "hk",
              "hu",
              "is",
              "in",
              "id",
              "iq",
              "ie",
              "im",
              "il",
              "it",
              "jm",
              "jp",
              "je",
              "jo",
              "kz",
              "ke",
              "ki",
              "xk",
              "kw",
              "kg",
              "la",
              "lv",
              "lb",
              "ls",
              "lr",
              "ly",
              "li",
              "lt",
              "lu",
              "mo",
              "mg",
              "mw",
              "my",
              "mv",
              "ml",
              "mt",
              "mh",
              "mq",
              "mr",
              "mu",
              "yt",
              "mx",
              "fm",
              "md",
              "mc",
              "mn",
              "me",
              "ms",
              "ma",
              "mz",
              "mm",
              "na",
              "nr",
              "np",
              "nl",
              "nc",
              "nz",
              "ni",
              "ne",
              "ng",
              "nu",
              "nf",
              "mk",
              "mp",
              "no",
              "om",
              "pk",
              "pw",
              "ps",
              "pa",
              "pg",
              "py",
              "pe",
              "ph",
              "pn",
              "pl",
              "pt",
              "pr",
              "qa",
              "re",
              "ro",
              "rw",
              "ws",
              "sm",
              "st",
              "sa",
              "sn",
              "rs",
              "sc",
              "sl",
              "sg",
              "sx",
              "sk",
              "si",
              "sb",
              "so",
              "za",
              "gs",
              "kr",
              "ss",
              "es",
              "lk",
              "sh",
              "kn",
              "lc",
              "mf",
              "pm",
              "vc",
              "sd",
              "sr",
              "sj",
              "se",
              "ch",
              "tw",
              "tj",
              "tz",
              "th",
              "tl",
              "tg",
              "tk",
              "to",
              "tt",
              "tn",
              "tr",
              "tm",
              "tc",
              "tv",
              "um",
              "vi",
              "ug",
              "ua",
              "ae",
              "gb",
              "us",
              "uy",
              "uz",
              "vu",
              "va",
              "ve",
              "vn",
              "wf",
              "eh",
              "ye",
              "zm",
              "zw"
            ],
            "type": "string",
            "description": "The Google Play store country. It decides which apps are available, chart rankings, prices and currency, and which reviews are shown.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "en-GB",
              "es",
              "es-419",
              "pt-BR",
              "pt-PT",
              "fr",
              "fr-CA",
              "de",
              "it",
              "nl",
              "pl",
              "ru",
              "uk",
              "tr",
              "ar",
              "iw",
              "fa",
              "hi",
              "bn",
              "ur",
              "ta",
              "te",
              "mr",
              "gu",
              "kn",
              "ml",
              "id",
              "ms",
              "fil",
              "th",
              "vi",
              "ja",
              "ko",
              "zh-CN",
              "zh-TW",
              "zh-HK",
              "sv",
              "da",
              "no",
              "fi",
              "cs",
              "sk",
              "hu",
              "ro",
              "bg",
              "el",
              "hr",
              "sr",
              "sl",
              "lt",
              "lv",
              "et",
              "ca",
              "sw",
              "af",
              "zu",
              "am",
              "kk",
              "uz",
              "az",
              "ka",
              "hy",
              "ne",
              "si",
              "km",
              "lo",
              "my",
              "mn"
            ],
            "type": "string",
            "description": "Language of app descriptions, release notes and text fields. Reviews are mostly in the language of the store country.",
            "default": "en"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave on 'no proxy': it is the fastest and cheapest option, and if Google Play refuses the run, the Actor continues through Apify datacenter proxy automatically at no extra charge. Choose Apify residential proxy only if you need it — it adds a surcharge per app (not per review), because each app page is about 200 KB of residential traffic.",
            "default": {
              "useApifyProxy": false
            }
          },
          "autoProxyFallback": {
            "title": "Switch to datacenter proxy if Google Play blocks the run",
            "type": "boolean",
            "description": "Only applies when running without a proxy. Leave this on: blocked requests are retried through Apify datacenter proxy at no extra charge. Off: blocked inputs are saved with an error instead.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many Google Play pages to load at the same time. 10 is fast and safe; lower it if you see many blocked requests.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}