{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Scraper (Cheap)",
    "description": "Google Play Store scraper that extracts app listings, ratings, downloads, developer info, and user reviews by keyword search, category browse, or top charts, so you can track competitors and analyze any app market without writing a single line of code.",
    "version": "0.0",
    "x-build-id": "nHNNhsft1EMtPiZtg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/data_api~google-play-scraper-cheap/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-data_api-google-play-scraper-cheap",
        "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/data_api~google-play-scraper-cheap/runs": {
      "post": {
        "operationId": "runs-sync-data_api-google-play-scraper-cheap",
        "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/data_api~google-play-scraper-cheap/run-sync": {
      "post": {
        "operationId": "run-sync-data_api-google-play-scraper-cheap",
        "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": {
          "queryTerm": {
            "title": "Search term",
            "type": "string",
            "description": "A keyword to look up on Google Play, such as 'meditation app', 'budget tracker', or 'language learning'."
          },
          "appPackages": {
            "title": "App IDs",
            "type": "array",
            "description": "One or more package identifiers to pull directly, for example 'com.whatsapp' or 'com.canva.editor'. Works on its own or together with a search term.",
            "items": {
              "type": "string"
            }
          },
          "categoryFilter": {
            "title": "Store category",
            "type": "string",
            "description": "Browse a whole category rather than running a keyword search. Accepted codes include GAME, GAME_PUZZLE, GAME_ACTION, SOCIAL, PRODUCTIVITY, EDUCATION, HEALTH_AND_FITNESS, FINANCE, PHOTOGRAPHY, TOOLS, COMMUNICATION, ENTERTAINMENT, SHOPPING, TRAVEL_AND_LOCAL, SPORTS, MUSIC_AND_AUDIO, and NEWS_AND_MAGAZINES."
          },
          "chartType": {
            "title": "Ranking list",
            "enum": [
              "topselling_free",
              "topselling_paid",
              "topgrossing"
            ],
            "type": "string",
            "description": "Grab a ranked chart in place of a search."
          },
          "deviceFilter": {
            "title": "Target device",
            "enum": [
              "phone",
              "tablet",
              "tv",
              "chromebook",
              "watch",
              "car"
            ],
            "type": "string",
            "description": "Narrow the listing to apps built for a specific device class."
          },
          "fetchFullProfile": {
            "title": "Pull full app profile",
            "type": "boolean",
            "description": "Pull the complete profile for every app — long description, install count, version, screenshots, and developer info. This adds one request per app and stays off unless you switch it on.",
            "default": false
          },
          "fetchReviews": {
            "title": "Collect reviews",
            "type": "boolean",
            "description": "Gather user reviews for each app in the run.",
            "default": false
          },
          "reviewsPerApp": {
            "title": "Reviews per app",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Upper limit on how many reviews to gather for each app while review collection is turned on.",
            "default": 25
          },
          "languageCode": {
            "title": "Result language",
            "type": "string",
            "description": "Two-letter language code that controls the result language, for example 'en', 'de', 'fr', or 'tr'.",
            "default": "en"
          },
          "regionCode": {
            "title": "Store region",
            "type": "string",
            "description": "Two-letter country code that picks the storefront region, for example 'us', 'gb', 'de', or 'tr'.",
            "default": "us"
          },
          "resultsLimit": {
            "title": "Results limit",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on how many apps come back in a single run.",
            "default": 30
          },
          "timeoutSeconds": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "How long to wait on each request before giving up, in seconds.",
            "default": 45
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}