Google Play App Permissions Scraper
Pricing
from $3.99 / 1,000 results
Go to Apify Store
Google Play App Permissions Scraper
Extract public Android app metadata and permission disclosures shown on Google Play listings.
Google Play App Permissions Scraper
Pricing
from $3.99 / 1,000 results
Extract public Android app metadata and permission disclosures shown on Google Play listings.
You can access the Google Play App Permissions Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "qVbfSzYHN3lYl82bQ" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/googleapi~google-play-app-permissions-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-googleapi-google-play-app-permissions-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/googleapi~google-play-app-permissions-scraper/runs": { "post": { "operationId": "runs-sync-googleapi-google-play-app-permissions-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/googleapi~google-play-app-permissions-scraper/run-sync": { "post": { "operationId": "run-sync-googleapi-google-play-app-permissions-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": { "appIds": { "title": "App IDs", "maxItems": 50, "type": "array", "description": "Android package IDs such as com.google.android.youtube. At most 50 sources are accepted.", "items": { "type": "string", "pattern": "^[A-Za-z0-9_]+(?:[.-][A-Za-z0-9_]+)+$", "maxLength": 200 } }, "appId": { "title": "Single app ID", "pattern": "^[A-Za-z0-9_]+(?:[.-][A-Za-z0-9_]+)+$", "maxLength": 200, "type": "string", "description": "Compatibility alias for one Android package ID." }, "startUrls": { "title": "Google Play URLs", "maxItems": 50, "type": "array", "description": "Public HTTPS app detail, search, developer, or category URLs.", "items": { "type": "object", "properties": { "url": { "title": "Public URL", "description": "HTTPS play.google.com/store URL.", "type": "string", "maxLength": 2000 } }, "required": [ "url" ], "additionalProperties": false } }, "sourceUrls": { "title": "Source URL aliases", "maxItems": 50, "type": "array", "description": "Compatibility alias for public Google Play URLs.", "items": { "type": "string", "maxLength": 2000 } }, "urls": { "title": "URL aliases", "maxItems": 50, "type": "array", "description": "Compatibility alias for public Google Play URLs.", "items": { "type": "string", "maxLength": 2000 } }, "url": { "title": "Single URL alias", "maxLength": 2000, "type": "string", "description": "Compatibility alias for one public Google Play URL." }, "language": { "title": "Language", "pattern": "^[A-Za-z]{2}$", "maxLength": 2, "type": "string", "description": "Two-letter public Play language code.", "default": "en" }, "country": { "title": "Country", "pattern": "^[A-Za-z]{2}$", "maxLength": 2, "type": "string", "description": "Two-letter public Play storefront country code.", "default": "US" }, "location": { "title": "Country alias", "pattern": "^[A-Za-z]{2}$", "maxLength": 2, "type": "string", "description": "Compatibility alias for country." }, "locale": { "title": "Locale", "pattern": "^[A-Za-z]{2}(?:[-_][A-Za-z]{2})?$", "maxLength": 10, "type": "string", "description": "Optional locale such as en-US." }, "maxApps": { "title": "Maximum source pages", "minimum": 1, "maximum": 100, "type": "integer", "description": "Global request-page budget across listing and app detail pages.", "default": 20 }, "maxPages": { "title": "Listing pages per source", "minimum": 1, "maximum": 10, "type": "integer", "description": "Maximum observed next pages followed per listing source.", "default": 1 }, "maxItems": { "title": "Maximum app records", "minimum": 1, "maximum": 500, "type": "integer", "description": "Global maximum of normal app permission records.", "default": 25 }, "maxResults": { "title": "Maximum records alias", "minimum": 1, "maximum": 500, "type": "integer", "description": "Compatibility alias for maxItems." }, "includePermissions": { "title": "Include permissions", "type": "boolean", "description": "Include public permission labels and disclosure availability.", "default": true }, "deduplicate": { "title": "Deduplicate apps", "type": "boolean", "description": "Deduplicate by package ID or public app URL.", "default": true }, "requestDelayMs": { "title": "Delay between requests (ms)", "minimum": 0, "maximum": 10000, "type": "integer", "description": "Respectful delay before later public requests.", "default": 0 }, "maxConcurrency": { "title": "Maximum concurrency", "minimum": 1, "maximum": 5, "type": "integer", "description": "Bounded number of source workflows processed at once.", "default": 1 }, "maxRequestRetries": { "title": "Maximum request retries", "minimum": 0, "maximum": 3, "type": "integer", "description": "Finite retries for timeouts and transient 5xx responses.", "default": 1 }, "requestTimeoutSecs": { "title": "Request timeout (seconds)", "minimum": 5, "maximum": 120, "type": "integer", "description": "Timeout for each public request.", "default": 30 }, "requestTimeoutSeconds": { "title": "Request timeout alias (seconds)", "minimum": 5, "maximum": 120, "type": "integer", "description": "Compatibility alias for requestTimeoutSecs." }, "requestTimeoutMs": { "title": "Request timeout alias (ms)", "minimum": 5000, "maximum": 120000, "type": "integer", "description": "Compatibility alias for requestTimeoutSecs." }, "timeoutMs": { "title": "Request timeout alias (ms)", "minimum": 5000, "maximum": 120000, "type": "integer", "description": "Compatibility alias for requestTimeoutMs." }, "maxResponseBytes": { "title": "Maximum response bytes", "minimum": 100000, "maximum": 5000000, "type": "integer", "description": "Fail closed when a public response exceeds this bound.", "default": 2500000 }, "userAgent": { "title": "User agent", "minLength": 10, "maxLength": 300, "type": "string", "description": "Optional ordinary HTTP user-agent string.", "default": "Mozilla/5.0 (compatible; GooglePlayPermissionsScraper/2.0)" }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Optional active Apify Proxy or proxyUrls configuration for permitted public requests." }, "page": { "title": "Starting page", "minimum": 1, "maximum": 10, "type": "integer", "description": "One-based listing page to begin collecting apps from, reached using the public page's observed next links. Set maxPages at least as high as page.", "default": 1 } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Google Play App Permissions Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: