{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Scraper: Reviews, App Details & Charts",
    "description": "Google Play app details (installs, ratings, histogram, what's new, permissions, data safety), keyword rankings, top charts, developer and similar apps, and reviews with date and rating filters, without reviewer personal data. Any country and language, no browser.",
    "version": "0.2",
    "x-build-id": "c56G83Fj6dC6ZlkEq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fabricalabs~google-play-apps/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fabricalabs-google-play-apps",
        "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/fabricalabs~google-play-apps/runs": {
      "post": {
        "operationId": "runs-sync-fabricalabs-google-play-apps",
        "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/fabricalabs~google-play-apps/run-sync": {
      "post": {
        "operationId": "run-sync-fabricalabs-google-play-apps",
        "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": "What to collect",
            "enum": [
              "search",
              "details",
              "reviews",
              "developer",
              "similar",
              "topCharts"
            ],
            "type": "string",
            "description": "What to collect. Search: the apps shown for keywords, with positions. App details: every public field of each app. App reviews: ratings and texts, without reviewer data. A developer's apps, similar apps, or a top chart (top free, paid or grossing) per category and country, each app with its position.",
            "default": "search"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "For search mode. Each term returns the apps Google Play shows for it, in order, with their position.",
            "items": {
              "type": "string"
            }
          },
          "appIds": {
            "title": "Apps",
            "type": "array",
            "description": "For details, reviews and similar apps. App IDs such as com.whatsapp, or Google Play app links.",
            "items": {
              "type": "string"
            }
          },
          "developerIds": {
            "title": "Developers",
            "type": "array",
            "description": "For a developer's apps. The developer's name as in its Google Play link (Supercell, Google LLC), a numeric developer ID (5700313618786177705), or the developer page link. The details mode returns developerId and developerUrl for any app.",
            "items": {
              "type": "string"
            }
          },
          "chartCollection": {
            "title": "Chart",
            "enum": [
              "topselling_free",
              "topselling_paid",
              "topgrossing"
            ],
            "type": "string",
            "description": "For top charts: which ranking. Each chart lists up to about 200 apps per country.",
            "default": "topselling_free"
          },
          "chartCategory": {
            "title": "Chart category",
            "type": "string",
            "description": "For top charts: APPLICATION (all apps), GAME (all games), or a Google Play category id such as GAME_ACTION, PRODUCTIVITY or HEALTH_AND_FITNESS, as in the category page link.",
            "default": "APPLICATION"
          },
          "maxResults": {
            "title": "Maximum results per search term, app or developer",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Apps per search term, developer, similar-apps list or chart, or reviews per app. Most searches show about 30 apps, developer pages about 20, similar apps about 50, charts up to 200.",
            "default": 50
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country code, e.g. us, gb, br, es, de. Rankings, prices and availability depend on it.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language of titles, descriptions and reviews, e.g. en, pt-BR, es.",
            "default": "en"
          },
          "countries": {
            "title": "Several countries",
            "type": "array",
            "description": "Optional. Two-letter codes (us, br, de) to run every search term, app or developer in each of these countries. Replaces Country when set. At most 50 country and language combinations per run.",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Several languages",
            "type": "array",
            "description": "Optional. Language codes (en, pt-BR, es) to run every input in each of these languages. Replaces Language when set.",
            "items": {
              "type": "string"
            }
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "rating",
              "relevant"
            ],
            "type": "string",
            "description": "For reviews: which ones come first. Newest first makes a Reviews since date stop the paging early.",
            "default": "newest"
          },
          "reviewScore": {
            "title": "Only reviews with this rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Optional. 1 to 5 stars; Google Play filters by it itself. For several ratings use the field below."
          },
          "reviewScores": {
            "title": "Only reviews with these ratings",
            "type": "array",
            "description": "Optional. Star ratings to keep, e.g. [1, 2] for the unhappy reviews. Leave empty for all. Reviews left out are not charged."
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Optional. Only reviews written or edited on or after this date (2026-09-01), or within this period back from now (7 days). With Newest first, the Actor stops as soon as it reaches older reviews, saving time and money."
          },
          "reviewsUntil": {
            "title": "Reviews until",
            "type": "string",
            "description": "Optional. Only reviews up to this date, inclusive (2026-09-15), or up to this long ago (1 day). On busy apps, reaching far back takes many pages: the Actor stops an app after 5,000 reviews in a row that match none of your filters."
          },
          "reviewKeywords": {
            "title": "Only reviews mentioning",
            "type": "array",
            "description": "Optional. Keeps reviews whose text contains any of these words or phrases, in any letter case (crash, battery drain).",
            "items": {
              "type": "string"
            }
          },
          "reviewAppVersion": {
            "title": "Only reviews of app version",
            "type": "string",
            "description": "Optional. Keeps reviews written with this app version; 2.24 also matches 2.24.19.86."
          },
          "onlyWithReply": {
            "title": "Only reviews the developer answered",
            "type": "boolean",
            "description": "Keeps only reviews with a developer reply.",
            "default": false
          },
          "minThumbsUp": {
            "title": "Minimum helpful votes",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keeps reviews that at least this many people marked as helpful."
          },
          "minTextLength": {
            "title": "Minimum review length",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keeps reviews with at least this many characters of text, to skip one-word reviews."
          },
          "includeAppInfo": {
            "title": "Add app info to each review",
            "type": "boolean",
            "description": "Adds the app's title, rating, number of ratings and star histogram to every review row. One extra page request per app and country; no extra charge.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy is the cheapest option. Switch to residential only if your runs get refused.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}