{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Store Scraper",
    "description": "Google Play Store scraper and API: search apps by keyword, app details by ID or URL, developer portfolios, similar apps, top charts by category, and user reviews. Installs, ratings, price, last update, developer contacts, screenshots. Any country and language.",
    "version": "1.0",
    "x-build-id": "LBFNFjfB084xPdzE3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lagenuina_agency~google-play-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lagenuina_agency-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/lagenuina_agency~google-play-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lagenuina_agency-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/lagenuina_agency~google-play-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lagenuina_agency-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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Keywords to search on Google Play, exactly like the Play Store search box (e.g. 'meditation app', 'photo editor'). Each query returns up to 'Max results per query' apps, ranked as on Google Play.",
            "items": {
              "type": "string"
            }
          },
          "appIdsOrUrls": {
            "title": "App IDs or URLs",
            "type": "array",
            "description": "Package names (com.whatsapp) or Play Store URLs (https://play.google.com/store/apps/details?id=com.whatsapp). Always returns full details.",
            "items": {
              "type": "string"
            }
          },
          "developerIds": {
            "title": "Developers (names, IDs or URLs)",
            "type": "array",
            "description": "All apps of a developer: name as shown on Google Play ('Google LLC'), numeric id, or a /store/apps/developer?id= or /store/apps/dev?id= URL.",
            "items": {
              "type": "string"
            }
          },
          "similarToAppIds": {
            "title": "Find apps similar to",
            "type": "array",
            "description": "App IDs or URLs: returns the 'Similar apps' Google Play shows for each (competitor discovery).",
            "items": {
              "type": "string"
            }
          },
          "includeCollection": {
            "title": "Browse top charts",
            "type": "boolean",
            "description": "Also scrape a Google Play top chart (top free / top paid / top grossing) for the category below.",
            "default": false
          },
          "collectionChart": {
            "title": "Top chart",
            "enum": [
              "topselling_free",
              "topselling_paid",
              "topgrossing"
            ],
            "type": "string",
            "description": "Which top chart to scrape when 'Browse top charts' is on. Default: top free."
          },
          "collectionCategory": {
            "title": "Top chart category",
            "enum": [
              "APPLICATION",
              "ANDROID_WEAR",
              "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",
              "WEATHER",
              "GAME",
              "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",
              "FAMILY"
            ],
            "type": "string",
            "description": "Google Play category for the top chart (APPLICATION = all apps, GAME = all games). Default: APPLICATION."
          },
          "maxResultsPerQuery": {
            "title": "Max results per query",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "Max apps per search query, developer or top chart. Note: Google Play itself returns at most ~30 apps per search query (no further pages exist), so use several keyword variations for more; developers and top charts go up to ~200. Default: 100."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter language code (hl) for titles, descriptions and reviews: en, it, de, fr, es, pt, ja...",
            "default": "en"
          },
          "countryCode": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country code (gl) for prices, availability, rankings and reviews: us, gb, it, de, in, br... Default: us."
          },
          "fullDetail": {
            "title": "Fetch full app details",
            "type": "boolean",
            "description": "Open every app page for installs, ratings histogram, last update, version, description, developer contacts, screenshots. Turn off for a fast ranking-only list (title, rating, price, developer).",
            "default": true
          },
          "includeScreenshots": {
            "title": "Include screenshots and video",
            "type": "boolean",
            "description": "Keep screenshot, header image and video URLs in the output.",
            "default": true
          },
          "includeDeveloperContact": {
            "title": "Include developer contact info",
            "type": "boolean",
            "description": "Keep developer email, website, address and legal info (public data shown on the app page).",
            "default": true
          },
          "includeReviews": {
            "title": "Scrape reviews",
            "type": "boolean",
            "description": "Also scrape user reviews for every app (one dataset item per review, type = 'review').",
            "default": false
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Reviews per app when 'Scrape reviews' is on.",
            "default": 100
          },
          "reviewSort": {
            "title": "Review sort order",
            "enum": [
              "newest",
              "relevant",
              "rating"
            ],
            "type": "string",
            "description": "Order in which reviews are collected.",
            "default": "newest"
          },
          "reviewScore": {
            "title": "Only reviews with this star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Optional: keep only 1-5 star reviews (e.g. 1 for complaints). Empty = all."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Parallel requests to Google Play.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy works for Google Play; switch to residential only if you see repeated failures.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}