# Google Play Store Scraper (`maximedupre/google-play-store-scraper`) Actor

Scrape Google Play Store apps, reviews, permissions, and Data Safety disclosures from keywords, package IDs, app URLs, category pages, or developer pages. Export app metadata, ratings, prices, developers, review text, replies, source URLs, permissions, privacy disclosures, ranks, and locale fields.

- **URL**: https://apify.com/maximedupre/google-play-store-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.45 / 1,000 scraped results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Store scraper for apps and reviews

Google Play Store Scraper extracts public app data from [Google Play](https://play.google.com/store/apps). Search by keyword, scrape app details by package ID or URL, collect public reviews, pull apps from category and developer pages, or export public app permissions and Data Safety disclosures.

Use this Google Play Store scraper for Android app market research, ASO checks, competitor tracking, review analysis, developer portfolio research, and repeatable Google Play data exports. It returns clean Apify dataset rows with app IDs, titles, developer facts, ratings, install ranges, pricing, screenshots, similar apps, review text, reviewer details, permissions, Data Safety fields, country, and language.

You do not need a Google account, Play Console access, cookies, or a Google API key. Start with the prefilled `fitness tracker` search to preview app rows before adding more keywords, package IDs, or Google Play URLs.

### ✅ What this Actor does

- Searches Google Play apps from keyword targets.
- Scrapes app details from package IDs or Google Play app URLs.
- Scrapes public Google Play reviews for one or more apps.
- Extracts apps from Google Play category pages.
- Extracts apps from Google Play developer pages from URLs or developer names.
- Extracts public app permissions.
- Extracts public Data Safety disclosures.
- Includes similar app recommendations on app rows when Google Play exposes them.
- Filters public reviews by sort order and optional star rating.
- Supports country and language settings for localized Google Play pages and reviews.
- Saves one dataset item per successful app, review, permission, or Data Safety result.
- Runs without user-provided Google credentials.

This Actor is focused on public Google Play Store data. It does not scrape private Play Console data, closed-testing tracks, APK files, install files, Google Play billing data, or historical review archives beyond what Google Play exposes publicly.

### 📦 Data you can extract

#### 📱 App rows

App rows can include:

- `rowType` - `app`
- `matchedInput` and `position`
- `appId`
- `title`, `summary`, and `description`
- `developer` with public contact and legal facts when shown
- `rating`, `ratingCount`, `reviewCount`, and `ratingHistogram`
- `genre` and `contentRating`
- `installs`, `minInstalls`, and `maxInstalls`
- `monetization` with price, currency, ads, and in-app purchase facts
- `androidVersion`, `version`, `released`, `updatedAt`, and `recentChanges`
- `privacyPolicy`
- `media` with icon, header image, screenshots, video, and video image URLs
- `similarApps` with related app IDs, titles, developers, ratings, genres, installs, prices, and icons
- `country` and `language`

#### ⭐ Review rows

Review rows can include:

- `rowType` - `review`
- `matchedInput` and `position`
- `appId` and `reviewId`
- `reviewerName` and `reviewerImage`
- `rating`
- `reviewText`
- `reviewDate`
- `developerReplyText` and `developerReplyDate`
- `thumbsUp`
- `version`
- `country` and `language`

#### 🔐 Permission rows

Permission rows can include:

- `rowType` - `permission`
- `matchedInput` and `position`
- `appId`
- `permissionType`
- `permission`
- `country` and `language`

#### 🛡️ Data Safety rows

Data Safety rows can include:

- `rowType` - `dataSafety`
- `matchedInput` and `position`
- `appId`
- `section`
- `dataType`
- `data`
- `purpose`
- `optional`
- `practice`
- `description`
- `privacyPolicy`
- `country` and `language`

Some fields can be `null` or empty when Google Play does not show them for the selected app, review, permission, country, or language.

### 🚀 Common use cases

- Find Android apps for a keyword such as `fitness tracker`, `budget planner`, or `photo editor`.
- Build market research datasets for Google Play categories and niches.
- Track competitor app ratings, prices, metadata, screenshots, and developer profiles.
- Collect public reviews for product feedback, support triage, sentiment analysis, or feature request research.
- Export developer portfolios from public Google Play developer pages.
- Audit app permissions and Data Safety declarations for privacy, security, or compliance research.
- Schedule repeat Google Play checks and send results to spreadsheets, APIs, webhooks, or integrations.

### ▶️ How to run it

1. Choose **What to collect**.
2. Add one or more Google Play targets that match the selected mode.
3. Set **Country** and **Language** for the Google Play market you want.
4. Keep limits low for a preview run, then raise them when the row shape looks right.
5. Start the Actor and open the dataset.

For a quick first run, use:

```json
{
	"mode": "search",
	"targets": ["fitness tracker"],
	"maxAppsPerTarget": 20,
	"country": "US",
	"language": "en"
}
````

### ⚙️ Input options

| Field | What it does |
| --- | --- |
| `mode` | Chooses how targets are interpreted: `search`, `details`, `reviews`, `category`, `developer`, `permissions`, or `dataSafety`. |
| `targets` | Search terms, Android package IDs, Google Play app URLs, category IDs/URLs, or developer names/URLs. |
| `maxAppsPerTarget` | Maximum app rows for each search, category, developer, or app-detail target. |
| `maxReviewsPerApp` | Maximum review rows for each app in reviews mode. |
| `reviewSort` | Review order for reviews mode: newest, rating, or helpfulness. |
| `reviewScore` | Optional exact star rating filter for reviews mode, from 1 to 5. |
| `country` | Google Play country code, such as `US`, `GB`, `DE`, or `JP`. |
| `language` | Google Play language code, such as `en`, `de`, `fr`, or `ja`. |

Good target examples:

- Search mode: `fitness tracker`
- Details mode: `com.whatsapp`
- Details mode: `https://play.google.com/store/apps/details?id=com.spotify.music`
- Reviews mode: `com.spotify.music`
- Category mode: `https://play.google.com/store/apps/category/HEALTH_AND_FITNESS`
- Developer mode: `Google LLC` or a public Google Play developer page URL
- Permissions mode: `com.google.android.calculator`
- Data Safety mode: `com.google.android.calculator`

### 🧾 Output examples

#### 📱 App row

```json
{
	"rowType": "app",
	"matchedInput": "fitness tracker",
	"position": 1,
	"appId": "com.google.android.apps.fitness",
	"title": "Google Fit: Activity Tracking",
	"summary": "Coaching you to a healthier and more active life",
	"developer": {
		"name": "Google LLC",
		"id": "Google LLC",
		"email": "apps-help@google.com",
		"website": "https://www.google.com/fit/"
	},
	"rating": 3.8,
	"ratingCount": 640000,
	"reviewCount": 210000,
	"genre": "Health & Fitness",
	"installs": "100,000,000+",
	"minInstalls": 100000000,
	"monetization": {
		"isFree": true,
		"priceText": "Free",
		"containsAds": false,
		"hasInAppPurchases": false
	},
	"privacyPolicy": "http://www.google.com/policies/privacy",
	"media": {
		"icon": "https://play-lh.googleusercontent.com/example-icon",
		"screenshots": ["https://play-lh.googleusercontent.com/example-screen"]
	},
	"similarApps": [
		{
			"appId": "com.example.similar",
			"title": "Similar App",
			"developer": "Example Developer",
			"rating": 4.6,
			"installs": "10,000,000+",
			"priceText": "Free",
			"isFree": true
		}
	],
	"country": "US",
	"language": "en"
}
```

#### ⭐ Review row

```json
{
	"rowType": "review",
	"matchedInput": "com.spotify.music",
	"position": 1,
	"appId": "com.spotify.music",
	"reviewId": "gp:AOqpTOEexample",
	"reviewerName": "Prashant Mahour",
	"rating": 1,
	"reviewText": "Very high price and not for poor people.",
	"reviewDate": "2026-05-26T17:45:16.920Z",
	"thumbsUp": 0,
	"version": "9.1.50.1906",
	"country": "US",
	"language": "en"
}
```

#### 🔐 Permission row

```json
{
	"rowType": "permission",
	"matchedInput": "com.google.android.calculator",
	"position": 1,
	"appId": "com.google.android.calculator",
	"permissionType": "Other",
	"permission": "full network access",
	"country": "US",
	"language": "en"
}
```

#### 🛡️ Data Safety row

```json
{
	"rowType": "dataSafety",
	"matchedInput": "com.google.android.calculator",
	"position": 1,
	"appId": "com.google.android.calculator",
	"section": "collectedData",
	"dataType": "App activity",
	"data": "App interactions",
	"purpose": "Analytics",
	"optional": true,
	"privacyPolicy": "http://www.google.com/policies/privacy",
	"country": "US",
	"language": "en"
}
```

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged only for saved Google Play app-like results and saved public review rows. There is no separate Actor-start charge in the local pricing file.

App-like results include app, permission, and Data Safety rows:

| Apify plan | Price per 1,000 results |
| --- | ---: |
| FREE | $0.90 |
| BRONZE | $0.70 |
| SILVER | $0.60 |
| GOLD | $0.45 |
| PLATINUM | $0.45 |
| DIAMOND | $0.45 |

Review rows:

| Apify plan | Price per 1,000 reviews |
| --- | ---: |
| FREE | $0.10 |
| BRONZE | $0.10 |
| SILVER | $0.05 |
| GOLD | $0.05 |
| PLATINUM | $0.05 |
| DIAMOND | $0.05 |

Keep first runs small by using one target and low limits. Search, category, and developer runs fetch app details for accepted apps, so larger result limits can increase both runtime and saved row count.

### ⚠️ Limits and caveats

- Google Play can show different data by country and language.
- Review availability depends on what Google Play exposes publicly for the selected app, market, and language.
- Permissions and Data Safety disclosures depend on what the app publisher shows publicly on Google Play.
- The Actor skips invalid or unavailable targets and saves valid rows from the rest of the run.
- Public Google Play pages can change. If a target suddenly returns fewer fields, open an issue with the target and run settings.

### ❓ FAQ

#### 🔑 Do I need a Google account or API key?

No. The Actor scrapes public Google Play pages and public review data without user-provided Google credentials.

#### ⭐ Can it scrape Google Play reviews?

Yes. Use `reviews` mode with package IDs or Google Play app URLs. The Actor returns one dataset item per public review.

#### 🔎 Can it search Google Play by keyword?

Yes. Use `search` mode and add search terms such as `fitness tracker`, `photo editor`, or `budget planner`.

#### 📭 Why are some app fields empty?

Google Play does not expose every field for every app, market, language, review, permission group, or Data Safety section. Empty fields mean the public source did not show that fact for the selected target.

#### 🍎 Can I scrape iOS App Store data too?

Use [Apple App Store Scraper ↗](https://apify.com/maximedupre/apple-app-store-scraper) for public iOS app data, App Store search results, top charts, and reviews.

### 📝 Changelog

- 1.0: Updated the dataset contract with cleaner app, review, permission, and Data Safety rows, added lower review-row pricing, and tuned the default search run for more reliable previews.
- 0.2: Updated the public dataset contract, added similar app recommendations, and improved dataset streaming so rows appear as soon as each item is scraped.
- 0.1: Added app permissions, Data Safety disclosures, review rating filters, richer app metadata, and lower pay-per-event pricing.
- 0.0: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~google-play-store-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [Apple App Store Scraper ↗](https://apify.com/maximedupre/apple-app-store-scraper) - Extract public iOS app data, App Store search results, charts, and reviews.
- [App Store Ratings Scraper ↗](https://apify.com/maximedupre/app-store-ratings-scraper) - Monitor ratings and metadata across Google Play and the Apple App Store.
- [Chrome Extensions Scraper ↗](https://apify.com/maximedupre/chrome-extensions-scraper) - Export Chrome Web Store ratings, installs, publishers, permissions, and media.
- [Amazon Keywords Discovery Tool ↗](https://apify.com/maximedupre/amazon-keywords-discovery-tool) - Collect Amazon autocomplete keyword ideas for SEO and product research.
- [Pinterest Keyword Scraper ↗](https://apify.com/maximedupre/pinterest-keyword-scraper) - Export Pinterest autocomplete suggestions for content and keyword planning.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `mode` (type: `string`):

Pick the Google Play surface for this run.

## `targets` (type: `array`):

Add keywords, package IDs, app URLs, category IDs, or developer IDs that match the selected target type.

## `maxAppsPerTarget` (type: `integer`):

Maximum app rows for each search, category, developer, or app-detail target.

## `maxReviewsPerApp` (type: `integer`):

Maximum public review rows for each app in reviews mode.

## `reviewSort` (type: `string`):

Choose how Google Play orders reviews.

## `reviewScore` (type: `integer`):

Save reviews with one exact star rating.

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

Google Play country for listings, prices, availability, and reviews.

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

Google Play language for app pages and reviews.

## Actor input object example

```json
{
  "mode": "search",
  "targets": [
    "fitness tracker"
  ],
  "maxAppsPerTarget": 20,
  "maxReviewsPerApp": 100,
  "reviewSort": "newest",
  "country": "US",
  "language": "en"
}
```

# Actor output Schema

## `results` (type: `string`):

Open successful Google Play app, review, permission, and Data Safety rows in the default dataset.

# 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 = {
    "mode": "search",
    "targets": [
        "fitness tracker"
    ],
    "maxAppsPerTarget": 20,
    "maxReviewsPerApp": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/google-play-store-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 = {
    "mode": "search",
    "targets": ["fitness tracker"],
    "maxAppsPerTarget": 20,
    "maxReviewsPerApp": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/google-play-store-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 '{
  "mode": "search",
  "targets": [
    "fitness tracker"
  ],
  "maxAppsPerTarget": 20,
  "maxReviewsPerApp": 100
}' |
apify call maximedupre/google-play-store-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Play Store Scraper",
        "description": "Scrape Google Play Store apps, reviews, permissions, and Data Safety disclosures from keywords, package IDs, app URLs, category pages, or developer pages. Export app metadata, ratings, prices, developers, review text, replies, source URLs, permissions, privacy disclosures, ranks, and locale fields.",
        "version": "1.0",
        "x-build-id": "rApPdVOoVmt7VA40K"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~google-play-store-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-google-play-store-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/maximedupre~google-play-store-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-google-play-store-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/maximedupre~google-play-store-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-google-play-store-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",
                "required": [
                    "mode",
                    "targets",
                    "maxAppsPerTarget",
                    "maxReviewsPerApp",
                    "reviewSort",
                    "country",
                    "language"
                ],
                "properties": {
                    "mode": {
                        "title": "What to collect",
                        "enum": [
                            "search",
                            "details",
                            "reviews",
                            "category",
                            "developer",
                            "permissions",
                            "dataSafety"
                        ],
                        "type": "string",
                        "description": "Pick the Google Play surface for this run.",
                        "default": "search"
                    },
                    "targets": {
                        "title": "Google Play targets",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "Add keywords, package IDs, app URLs, category IDs, or developer IDs that match the selected target type.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "maxAppsPerTarget": {
                        "title": "Apps per target",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum app rows for each search, category, developer, or app-detail target.",
                        "default": 20
                    },
                    "maxReviewsPerApp": {
                        "title": "Reviews per app",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum public review rows for each app in reviews mode.",
                        "default": 100
                    },
                    "reviewSort": {
                        "title": "Review order",
                        "enum": [
                            "newest",
                            "rating",
                            "helpfulness"
                        ],
                        "type": "string",
                        "description": "Choose how Google Play orders reviews.",
                        "default": "newest"
                    },
                    "reviewScore": {
                        "title": "Review star rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Save reviews with one exact star rating."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "US",
                            "CA",
                            "GB",
                            "AU",
                            "DE",
                            "FR",
                            "ES",
                            "IT",
                            "NL",
                            "BR",
                            "MX",
                            "JP",
                            "IN",
                            "PT"
                        ],
                        "type": "string",
                        "description": "Google Play country for listings, prices, availability, and reviews.",
                        "default": "US"
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "pt",
                            "ja"
                        ],
                        "type": "string",
                        "description": "Google Play language for app pages and reviews.",
                        "default": "en"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
