# Google Play Reviews Scraper — App Feedback (`muhammadafzal/google-play-reviews-scraper`) Actor

Scrape Google Play app reviews, ratings, dates, versions, replies, and user feedback for product research, sentiment analysis, and monitoring.

- **URL**: https://apify.com/muhammadafzal/google-play-reviews-scraper.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 review scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Play Reviews Scraper — App Feedback

Scrape Google Play app reviews for sentiment analysis, ASO research, product feedback, bug triage, and competitor monitoring. The actor returns one structured record per review with rating, text, date, version, thumbs-up count, reviewer metadata, developer replies, and optional app metadata.

This actor is designed for API and AI-agent use: give it one or more Google Play package names or app URLs, choose a country/language, set a review cap, and receive clean JSON records.

### Features

- Scrape reviews by Google Play app ID or app URL
- Return rating, review text, date, app version, thumbs-up count, reviewer name, and reviewer image
- Include developer reply text and reply date when available
- Add app title, developer, average score, and install range to every review
- Sort by newest, helpfulness, or rating
- Filter returned records by minimum and maximum star rating
- Multi-app input with per-app review caps
- Writes a `SUMMARY` record for automation and MCP-style consumers

### Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `appIds` | `string[]` | `["com.spotify.music"]` | Google Play package names to scrape |
| `appUrls` | `string[]` | `[]` | Google Play app URLs containing an `id` query parameter |
| `maxReviews` | `integer` | `20` | Maximum reviews per app, from 1 to 5000 |
| `country` | `string` | `"us"` | Two-letter Google Play country code |
| `language` | `string` | `"en"` | Two-letter language code |
| `sort` | `string` | `"newest"` | `newest`, `helpfulness`, or `rating` |
| `minRating` | `integer` | `1` | Lowest star rating to include |
| `maxRating` | `integer` | `5` | Highest star rating to include |
| `includeDeveloperReplies` | `boolean` | `true` | Include developer replies when returned |
| `includeAppDetails` | `boolean` | `true` | Include app title, developer, score, and install range |
| `pageDelayMs` | `integer` | `300` | Delay between paginated requests |

### Output

Each dataset item is one Google Play review:

```json
{
  "appId": "com.spotify.music",
  "appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&hl=en&gl=US",
  "appTitle": "Spotify: Music and Podcasts",
  "appDeveloper": "Spotify AB",
  "appScore": 4.3,
  "appInstalls": "1,000,000,000+",
  "reviewId": "review-id",
  "reviewerName": "Alex Johnson",
  "reviewerImageUrl": "https://play-lh.googleusercontent.com/...",
  "rating": 5,
  "ratingText": "5 stars",
  "reviewTitle": null,
  "reviewText": "Works well and the latest update fixed my playlist issue.",
  "reviewDate": "2026-07-01T10:15:00.000Z",
  "appVersion": "8.9.54.470",
  "thumbsUpCount": 12,
  "reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=...",
  "developerReplyText": "Thanks for your feedback.",
  "developerReplyDate": "2026-07-02T12:00:00.000Z",
  "country": "us",
  "language": "en",
  "sort": "newest",
  "scrapedAt": "2026-07-08T12:00:00.000Z"
}
````

### Use Cases

| Use Case | Description |
| --- | --- |
| App review monitoring | Track recent user feedback for your Android app |
| ASO research | Compare sentiment, complaints, and feature requests across competitors |
| Product feedback mining | Extract recurring issues by rating, app version, or country |
| Support prioritization | Find high-thumbs-up complaints and developer reply gaps |
| Release QA | Monitor newest reviews after each app update |

### API Usage

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('USERNAME/google-play-reviews-scraper').call({
  appIds: ['com.spotify.music', 'com.duolingo'],
  maxReviews: 250,
  country: 'us',
  language: 'en',
  sort: 'newest',
  minRating: 1,
  maxRating: 3
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} reviews`);
```

### Pricing

This actor is configured for premium dual monetization on Apify: pay per event plus standard usage billing.

| Event | Price |
| --- | --- |
| Actor start | `$0.00005` per run |
| Review scraped | `$0.005` per review returned |

Typical examples:

| Run | Estimated PPE Cost |
| --- | --- |
| 100 reviews | `$0.50` |
| 1,000 reviews | `$5.00` |
| 5,000 reviews | `$25.00` |

### FAQ

**Does this require a Google account?**\
No. It reads public Google Play review data and does not use login cookies.

**Can it scrape Apple App Store reviews?**\
No. This actor is only for Google Play. Use a separate App Store reviews actor for iOS apps.

**Why do some fields return `null`?**\
Google Play does not return every field for every review. Developer replies, app versions, titles, and direct review URLs may be missing.

**Can I filter by date?**\
The actor requests reviews sorted by newest, helpfulness, or rating. Date filtering can be applied downstream from the `reviewDate` field.

### What is Google Play Reviews Scraper?

**Google Play Reviews Scraper** turns the target data into structured, reusable results on Apify. Use it when you need repeatable collection for analysts, developers, agencies, researchers, and AI-agent workflows without maintaining a custom scraper or one-off integration. Run it manually, schedule recurring jobs, call it through the Apify API, or connect it to an AI agent through the Apify MCP server.

The Actor stores results in an Apify dataset, where they can be previewed and exported as JSON, CSV, Excel, XML, or RSS. Availability and completeness depend on the source, supplied inputs, public visibility, authentication requirements, and upstream rate limits.

### Use cases for Google Play Reviews Scraper

- Build structured datasets for research, reporting, enrichment, or monitoring.
- Automate repetitive collection with schedules, webhooks, and API calls.
- Feed clean records into spreadsheets, databases, CRMs, BI tools, AI agents, or RAG pipelines.
- Track changes over time by running the same validated input on a schedule.
- Replace fragile manual copy-and-paste work with a reproducible Apify workflow.

### How to use Google Play Reviews Scraper

1. Open the Actor input page and choose a focused, valid target.
2. Set a conservative result limit for the first run.
3. Start the Actor and inspect the dataset for coverage and field availability.
4. Export the results or connect the dataset to your downstream system.
5. Scale gradually and use scheduling, pagination, or proxies when supported.

#### Important input options

- `appIds` — Google Play package names to scrape reviews from, such as com.spotify.music. Use this when you already know the app ID. Defaults to com.spotify.music for health tests. Not an Apple App Store
- `appUrls` — Full Google Play app URLs that contain an id query parameter, such as https://play.google.com/store/apps/details?id=com.spotify.music. Use this when copying URLs from a browser. Leave empty
- `maxReviews` — Maximum reviews to return for each app. Defaults to 20 and supports 1 to 5000. Lower values are best for quick agent calls. This is not the total across all apps.
- `country` — Two-letter Google Play country code used for localized review availability, such as us, gb, de, or pk. Defaults to us. Use the market where the app users are located. Not a language code.
- `language` — Two-letter language code for Google Play localization, such as en, es, de, or fr. Defaults to en. Use with country for localized review text and app metadata. Not a country code.
- `sort` — Review ordering to request from Google Play. Use newest for monitoring fresh feedback, helpfulness for high-signal reviews, or rating to group by score. Defaults to newest. Not a filter by d
- `minRating` — Lowest star rating to include after reviews are fetched. Defaults to 1 and supports 1 to 5. Use 1 with maxRating 2 for complaint mining. Not a Google Play search ranking option.
- `maxRating` — Highest star rating to include after reviews are fetched. Defaults to 5 and supports 1 to 5. Use 4 or 5 for positive-review analysis. Must be greater than or equal to Minimum Rating.

### API and automation example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/google-play-reviews-scraper').call({
  // Add the same input fields you use in the Apify Console.
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Related Apify Actors

Use these dedicated tools when a neighboring data source or workflow is a better match:

- [Leads Finder Pro - B2B Leads with Emails \[Apollo Alternative\]](https://apify.com/muhammadafzal/leads-finder-pro)
- [Yellow Pages US Scraper — Business Leads & Reviews](https://apify.com/muhammadafzal/yellow-pages-us-scraper)
- [Yellow Pages Australia Scraper — Business Leads & Reviews](https://apify.com/muhammadafzal/yellow-pages-au-scraper)
- [YouTube Thumbnail Downloader](https://apify.com/muhammadafzal/youtube-thumbnail-downloader)
- [AllTrails Scraper — Hiking Trails, Reviews & GPS Data](https://apify.com/muhammadafzal/alltrails-scraper)
- [GitHub Repo Search — Stars, Language & Topics](https://apify.com/muhammadafzal/github-repo-search-stars-language-topics)
- [Rate My Professors & Schools Scraper](https://apify.com/muhammadafzal/rate-my-professors-scraper)
- [California CSLB Contractor License Scraper](https://apify.com/muhammadafzal/cslb-california-scraper)
- [Instagram Followers & Following Scraper — With Cookies](https://apify.com/muhammadafzal/instagram-following-scraper)
- [OpenTable Restaurants, Ratings & Reviews Scraper](https://apify.com/muhammadafzal/opentable-scraper)

### Frequently asked questions

#### How many results can I scrape with Google Play Reviews Scraper?

The practical total depends on the source, input limits, pagination, available records, run timeout, and upstream restrictions. Start with a small run, verify the output, and increase the limit gradually.

#### Can I integrate Google Play Reviews Scraper with other apps?

Yes. Use Apify integrations, webhooks, schedules, dataset exports, Make, Zapier, Google Sheets, cloud storage, or your own application.

#### Can I use Google Play Reviews Scraper with the Apify API?

Yes. Start runs with the Apify REST API or an official Apify client, then retrieve records from the run's default dataset. Keep your API token in a secret or environment variable.

#### Can I use Google Play Reviews Scraper through an MCP Server?

Yes. The Apify MCP server can expose the Actor to compatible AI clients and agents. Review the input and expected cost before allowing an autonomous workflow to run it at scale.

#### Do I need proxies?

It depends on the source and volume. Use the default configuration first. For larger or geographically sensitive jobs, select an appropriate proxy configuration only when the Actor supports it.

#### Is it legal to scrape this data?

Scraping rules vary by source, jurisdiction, data type, and intended use. Collect only data you are authorized to access, respect applicable terms and privacy laws, and avoid restricted or personal data misuse. This documentation is not legal advice.

#### Your feedback

If a field is missing, a source layout has changed, or you need a supported use case documented, open an issue on the Actor page with a reproducible input and run ID.

# Actor input Schema

## `appIds` (type: `array`):

Google Play package names to scrape reviews from, such as com.spotify.music. Use this when you already know the app ID. Defaults to com.spotify.music for health tests. Not an Apple App Store ID.

## `appUrls` (type: `array`):

Full Google Play app URLs that contain an id query parameter, such as https://play.google.com/store/apps/details?id=com.spotify.music. Use this when copying URLs from a browser. Leave empty when using App IDs.

## `maxReviews` (type: `integer`):

Maximum reviews to return for each app. Defaults to 20 and supports 1 to 5000. Lower values are best for quick agent calls. This is not the total across all apps.

## `country` (type: `string`):

Two-letter Google Play country code used for localized review availability, such as us, gb, de, or pk. Defaults to us. Use the market where the app users are located. Not a language code.

## `language` (type: `string`):

Two-letter language code for Google Play localization, such as en, es, de, or fr. Defaults to en. Use with country for localized review text and app metadata. Not a country code.

## `sort` (type: `string`):

Review ordering to request from Google Play. Use newest for monitoring fresh feedback, helpfulness for high-signal reviews, or rating to group by score. Defaults to newest. Not a filter by date.

## `minRating` (type: `integer`):

Lowest star rating to include after reviews are fetched. Defaults to 1 and supports 1 to 5. Use 1 with maxRating 2 for complaint mining. Not a Google Play search ranking option.

## `maxRating` (type: `integer`):

Highest star rating to include after reviews are fetched. Defaults to 5 and supports 1 to 5. Use 4 or 5 for positive-review analysis. Must be greater than or equal to Minimum Rating.

## `includeDeveloperReplies` (type: `boolean`):

Include developer reply text and reply date when Google Play returns them. Defaults to true. Turn off for smaller records. This does not post or modify replies.

## `includeAppDetails` (type: `boolean`):

Fetch app title, developer, score, and install range once per app. Defaults to true. Turn off to reduce upstream calls. This does not scrape full app listings or permissions.

## `pageDelayMs` (type: `integer`):

Delay between paginated Google Play review requests. Defaults to 300 milliseconds and supports 0 to 5000. Increase if Google Play throttles requests. Not a timeout setting.

## Actor input object example

```json
{
  "appIds": [
    "com.spotify.music"
  ],
  "appUrls": [],
  "maxReviews": 20,
  "country": "us",
  "language": "en",
  "sort": "newest",
  "minRating": 1,
  "maxRating": 5,
  "includeDeveloperReplies": true,
  "includeAppDetails": true,
  "pageDelayMs": 300
}
```

# Actor output Schema

## `reviews` (type: `string`):

Link to the dataset containing all scraped Google Play review records.

## `summary` (type: `string`):

Link to the SUMMARY key-value store record with counts, filters, warnings, and timestamps.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "appIds": [
        "com.spotify.music"
    ],
    "country": "us",
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/google-play-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "appIds": ["com.spotify.music"],
    "country": "us",
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("muhammadafzal/google-play-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "appIds": [
    "com.spotify.music"
  ],
  "country": "us",
  "language": "en"
}' |
apify call muhammadafzal/google-play-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=muhammadafzal/google-play-reviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Play Reviews Scraper — App Feedback",
        "description": "Scrape Google Play app reviews, ratings, dates, versions, replies, and user feedback for product research, sentiment analysis, and monitoring.",
        "version": "1.0",
        "x-build-id": "2pgZRRXkiPR2RFhvm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/muhammadafzal~google-play-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-muhammadafzal-google-play-reviews-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/muhammadafzal~google-play-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-muhammadafzal-google-play-reviews-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/muhammadafzal~google-play-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-muhammadafzal-google-play-reviews-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",
                        "type": "array",
                        "description": "Google Play package names to scrape reviews from, such as com.spotify.music. Use this when you already know the app ID. Defaults to com.spotify.music for health tests. Not an Apple App Store ID.",
                        "default": [
                            "com.spotify.music"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "appUrls": {
                        "title": "App URLs",
                        "type": "array",
                        "description": "Full Google Play app URLs that contain an id query parameter, such as https://play.google.com/store/apps/details?id=com.spotify.music. Use this when copying URLs from a browser. Leave empty when using App IDs.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviews": {
                        "title": "Max Reviews per App",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum reviews to return for each app. Defaults to 20 and supports 1 to 5000. Lower values are best for quick agent calls. This is not the total across all apps.",
                        "default": 20
                    },
                    "country": {
                        "title": "Country",
                        "type": "string",
                        "description": "Two-letter Google Play country code used for localized review availability, such as us, gb, de, or pk. Defaults to us. Use the market where the app users are located. Not a language code.",
                        "default": "us"
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Two-letter language code for Google Play localization, such as en, es, de, or fr. Defaults to en. Use with country for localized review text and app metadata. Not a country code.",
                        "default": "en"
                    },
                    "sort": {
                        "title": "Sort",
                        "enum": [
                            "newest",
                            "helpfulness",
                            "rating"
                        ],
                        "type": "string",
                        "description": "Review ordering to request from Google Play. Use newest for monitoring fresh feedback, helpfulness for high-signal reviews, or rating to group by score. Defaults to newest. Not a filter by date.",
                        "default": "newest"
                    },
                    "minRating": {
                        "title": "Minimum Rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Lowest star rating to include after reviews are fetched. Defaults to 1 and supports 1 to 5. Use 1 with maxRating 2 for complaint mining. Not a Google Play search ranking option.",
                        "default": 1
                    },
                    "maxRating": {
                        "title": "Maximum Rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Highest star rating to include after reviews are fetched. Defaults to 5 and supports 1 to 5. Use 4 or 5 for positive-review analysis. Must be greater than or equal to Minimum Rating.",
                        "default": 5
                    },
                    "includeDeveloperReplies": {
                        "title": "Include Developer Replies",
                        "type": "boolean",
                        "description": "Include developer reply text and reply date when Google Play returns them. Defaults to true. Turn off for smaller records. This does not post or modify replies.",
                        "default": true
                    },
                    "includeAppDetails": {
                        "title": "Include App Details",
                        "type": "boolean",
                        "description": "Fetch app title, developer, score, and install range once per app. Defaults to true. Turn off to reduce upstream calls. This does not scrape full app listings or permissions.",
                        "default": true
                    },
                    "pageDelayMs": {
                        "title": "Page Delay Ms",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Delay between paginated Google Play review requests. Defaults to 300 milliseconds and supports 0 to 5000. Increase if Google Play throttles requests. Not a timeout setting.",
                        "default": 300
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
