{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Store Scraper: Apps, Reviews & Data API",
    "description": "Google Play scraper and unofficial Play Store API for Android app data. Scrape apps by keyword, package name, developer or category in any country: ratings, reviews, installs, price, screenshots, developer email, contacts, data safety and permissions. No API key. Export JSON, CSV, Excel.",
    "version": "0.1",
    "x-build-id": "oRAXMGefiSesWnALi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~google-play-apps-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-google-play-apps-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/scrapers_lat~google-play-apps-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-google-play-apps-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/scrapers_lat~google-play-apps-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-google-play-apps-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": {
          "maxApps": {
            "title": "Max apps",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of apps to collect across the whole run. Optional."
          },
          "withDetails": {
            "title": "Fetch Full Details",
            "type": "boolean",
            "description": "When enabled, every app found in search, developer or category mode is enriched by fetching its detail page (full description, screenshots, ratings count, version, update date, privacy policy and more). When disabled, only the listing-level fields are returned. App IDs mode always fetches full details.",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "appIds",
              "developer",
              "category"
            ],
            "type": "string",
            "description": "How to find apps. Search finds apps by keyword. App IDs looks up specific package names. Developer lists every app by a developer. Category lists top apps in a Play Store category.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Keyword to search for, used when mode is Search. Example: photo editor, vpn, budget tracker."
          },
          "appIds": {
            "title": "App IDs or URLs",
            "type": "array",
            "description": "Android package names or full Play Store app URLs to look up, used when mode is App IDs. Example: com.whatsapp, com.spotify.music, https://play.google.com/store/apps/details?id=com.netflix.mediaclient.",
            "items": {
              "type": "string"
            }
          },
          "developer": {
            "title": "Developer Name",
            "type": "string",
            "description": "Exact developer name as shown on the store, used when mode is Developer. Example: WhatsApp LLC, Spotify AB."
          },
          "category": {
            "title": "Category",
            "enum": [
              "APPLICATION",
              "GAME",
              "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",
              "WEATHER"
            ],
            "type": "string",
            "description": "Play Store category, used when mode is Category. Lists the top apps in that category.",
            "default": "GAME"
          },
          "country": {
            "title": "Country (gl)",
            "type": "string",
            "description": "Two-letter country code for the store region. Affects availability, price and ranking.",
            "default": "US"
          },
          "language": {
            "title": "Language (hl)",
            "type": "string",
            "description": "Two-letter language code for the returned text (titles, descriptions).",
            "default": "en"
          },
          "priceFilter": {
            "title": "Price Filter",
            "enum": [
              "all",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "Keep only free apps, only paid apps, or all. Applied to search, developer and category results.",
            "default": "all"
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only apps with an average star rating at or above this value (0 to 5). Leave empty for no rating filter."
          },
          "contentRatingFilter": {
            "title": "Content Rating Contains",
            "type": "string",
            "description": "Keep only apps whose content rating contains this text (case-insensitive), for example Everyone, Teen, Mature. Leave empty for no filter."
          },
          "withDataSafety": {
            "title": "Include Data Safety",
            "type": "boolean",
            "description": "Include the Google Play Data Safety summary (data shared, data collected, security practices). Comes from the app page, no extra cost.",
            "default": true
          },
          "withSimilarApps": {
            "title": "Include Similar Apps",
            "type": "boolean",
            "description": "Attach the Play Store \"Similar apps\" list (appId, title, developer, score, icon, url) to each app record.",
            "default": true
          },
          "withDeveloperApps": {
            "title": "Include More By Developer",
            "type": "boolean",
            "description": "Attach the developer's other apps (\"More by ...\" list) to each app record.",
            "default": true
          },
          "withReviews": {
            "title": "Scrape Reviews (paid add-on)",
            "type": "boolean",
            "description": "Attach user reviews (author, rating, text, date, thumbs up, app version, developer reply) to each app record. Requires a paid Apify plan.",
            "default": false
          },
          "maxReviews": {
            "title": "Max Reviews Per App",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "How many reviews to fetch per app when reviews are enabled (up to 1000).",
            "default": 40
          },
          "reviewsSort": {
            "title": "Reviews Sort Order",
            "enum": [
              "newest",
              "rating",
              "helpful"
            ],
            "type": "string",
            "description": "Order reviews by newest, highest rating, or most helpful.",
            "default": "newest"
          },
          "withPermissions": {
            "title": "Scrape Permissions (paid add-on)",
            "type": "boolean",
            "description": "Attach the app's requested Android permissions (grouped, human-readable) to each record. Requires a paid Apify plan.",
            "default": false
          },
          "withAiSummary": {
            "title": "AI app summary (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Generates a 2-3 sentence plain-English summary of each app from its store description. Requires a paid Apify plan. Billed only when a summary is produced.",
            "default": false
          },
          "withAiTags": {
            "title": "AI tags & audience (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Extracts topic/feature keyword tags and a target-audience phrase for each app. Requires a paid Apify plan. Billed only when tags are produced.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}