{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Play Data API Scraper",
    "description": "Unofficial REST-style API for Google Play Store. Search apps, get full details, \nextract reviews, list category top charts, fetch developer profiles, get app \npermissions. Built for developers, ASO tools, and app analytics platforms.",
    "version": "1.0",
    "x-build-id": "mFfkcxG3BcbDuBBTd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~google-play-data-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-google-play-data-api",
        "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/logiover~google-play-data-api/runs": {
      "post": {
        "operationId": "runs-sync-logiover-google-play-data-api",
        "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/logiover~google-play-data-api/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-google-play-data-api",
        "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": "Mode",
            "enum": [
              "search",
              "app",
              "reviews",
              "list",
              "similar",
              "developer",
              "suggest",
              "permissions",
              "datasafety",
              "categories"
            ],
            "type": "string",
            "description": "Which Google Play endpoint to call.\n\n• **search** — keyword search (most common)\n• **app** — full details for one or more app IDs\n• **reviews** — user reviews with pagination\n• **list** — top charts (free/paid/grossing) by category\n• **similar** — apps similar to a given app\n• **developer** — all apps by a developer\n• **suggest** — autocomplete suggestions (great for ASO keyword research)\n• **permissions** — Android permissions list (privacy/security audits)\n• **datasafety** — Google Play data safety section\n• **categories** — full list of Google Play category codes",
            "default": "search"
          },
          "appId": {
            "title": "App ID",
            "type": "string",
            "description": "Single Google Play app ID — the value after `id=` in the Play Store URL. E.g. `com.spotify.music`. Used by **app**, **reviews**, **similar**, **permissions**, **datasafety** modes."
          },
          "appIds": {
            "title": "App IDs (batch)",
            "type": "array",
            "description": "Array of app IDs for batch operations. Used by **app**, **reviews**, **permissions**, **datasafety** modes when you want multiple apps in one run. Adds to (or replaces) the single App ID field above.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "query": {
            "title": "Search query / keyword",
            "type": "string",
            "description": "Keyword to search for in **search** mode, or partial term for **suggest** mode autocomplete."
          },
          "devId": {
            "title": "Developer ID",
            "type": "string",
            "description": "Developer name as it appears on Google Play (URL-encoded). E.g. `Spotify+AB` or `Google+LLC`. Used by **developer** mode."
          },
          "collection": {
            "title": "Top-chart collection",
            "enum": [
              "TOP_FREE",
              "TOP_PAID",
              "TOP_GROSSING",
              "NEW_FREE",
              "NEW_PAID",
              "TRENDING"
            ],
            "type": "string",
            "description": "Which top chart to fetch in **list** mode.",
            "default": "TOP_FREE"
          },
          "category": {
            "title": "Category filter",
            "type": "string",
            "description": "Optional category filter for **list** mode. Use the category code (e.g. `GAME`, `BUSINESS`, `EDUCATION`, `FINANCE`, `SOCIAL`). Run mode=categories first to see all available codes."
          },
          "age": {
            "title": "Age filter (games only)",
            "enum": [
              "FIVE_UNDER",
              "SIX_EIGHT",
              "NINE_UP"
            ],
            "type": "string",
            "description": "Age-band filter for game categories in **list** mode."
          },
          "reviewSort": {
            "title": "Review sort order",
            "enum": [
              "NEWEST",
              "RATING",
              "HELPFULNESS"
            ],
            "type": "string",
            "description": "How reviews are ordered when fetched from Google Play.",
            "default": "NEWEST"
          },
          "reviewScore": {
            "title": "Filter by star rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Optional: return only reviews with this exact star rating (1–5). Leave blank for all ratings."
          },
          "country": {
            "title": "Country (ISO 3166-1 alpha-2)",
            "type": "string",
            "description": "Two-letter country code. Affects localized title, description, ratings, and which apps are returned. E.g. `us`, `gb`, `de`, `tr`, `jp`, `br`.",
            "default": "us"
          },
          "language": {
            "title": "Language (BCP 47)",
            "type": "string",
            "description": "Two-letter language code. E.g. `en`, `tr`, `de`, `fr`, `pt`, `ja`.",
            "default": "en"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum results to return. For **reviews** mode, this is per-app. For **list/search/similar/developer** modes, this is overall. Note: some modes have hard caps from Google Play (typically 250)."
          },
          "fullDetail": {
            "title": "Enrich results with full app details",
            "type": "boolean",
            "description": "For **search**, **list**, **similar**, **developer** modes: if enabled, each result is enriched with the full 47+ field app detail (slower, more expensive). Disable for quick lookups.",
            "default": false
          },
          "shortPermissions": {
            "title": "Short permissions output",
            "type": "boolean",
            "description": "For **permissions** mode: if enabled, returns a compact list of permission strings instead of the full permission objects.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}