# Google Play Scraper (`jdtpnjtp/google-play-scraper`) Actor

Scrape Google Play in one actor - app search, country-localized top charts, similar apps, developer portfolios, full app detail and reviews. Pick what you need with data types. Pay only per result.

- **URL**: https://apify.com/jdtpnjtp/google-play-scraper.md
- **Developed by:** [Data Forge](https://apify.com/jdtpnjtp) (community)
- **Categories:** E-commerce, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.28 / 1,000 app 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 Scraper

Extract structured **Google Play** data at scale: app search, country top charts, similar apps, developer portfolios, 60+ field app detail and reviews, from one Actor. **Reviews from $0.10 per 1,000 results, app rows from $0.25 per 1,000.** Pull 50,000+ rows in a single run and pay only for the results you keep.

No setup, no browser, no infrastructure to manage. Pick what you need under **What to scrape**, press **Start**, and get clean flat tables out: **Apps** and **Reviews**.

> Prefer a single-purpose tool? We also ship the focused **Google Play App Scraper** and **Google Play Reviews Scraper**.

### What does the Google Play Scraper do?

It turns any keyword, app ID, developer or category into structured Play Store data. Tick one or more data types and the Actor pulls exactly that, nothing more:

| Data type | What it returns |
|---|---|
| 🔎 **Search apps** | Apps matching your keywords, ranked the way Google ranks them. |
| 📱 **App detail** | A 60+ field detail record for specific apps - by app name, ID or Play Store URL. |
| ⭐ **App reviews** | Reviews per app, sorted and star-filtered, cursor-paginated to thousands. |
| 🏆 **Top charts** | Country-localized top free / paid / grossing charts by category and device. |
| 🧩 **Similar apps** | The apps Google ranks as similar to a given app. |
| 👤 **Developer apps** | A developer's published app portfolio. |

The dataset opens on three ready-made views: **Overview**, **Apps** and **Reviews**, so the right columns are in front of you without any filtering.

### What data can you get from Google Play?

**Per app:** app ID, title, developer, developer ID, category, rating score, ratings count, reviews count, install count, price, free flag, in-app purchases, content rating, version, release date, last-updated date, short description, screenshots, icon and store URL.

**Per review:** review ID, user name, star score, review text, date, thumbs-up count, app version reviewed and the developer reply (with its date).

Each row also carries the raw source object under `data`, so any field the Play Store exposes is preserved even when it is not promoted to a flat column.

### How to scrape Google Play

1. Under **What to scrape**, tick the data types you want. **Search apps** is prefilled, so the Actor runs on the first click with zero typing.
2. Fill the matching input: keywords for Search, apps for App detail / Reviews / Similar, a developer for Developer apps. Apps accept a package name (`com.spotify.music`), a Play Store URL, or just the app name (`Spotify`).
3. Set the country and any top-charts or reviews options in the collapsible sections below.
4. Press **Start**. Export to JSON, CSV, Excel or Google Sheets, or pull the results from the Apify API.

#### Input example

```json
{
  "dataTypes": ["topcharts"],
  "country": "jp",
  "chartCollection": "topgrossing",
  "chartCategory": "GAME",
  "maxResults": 50
}
````

#### Output example

Search / chart listing row:

```json
{
  "row_type": "chart",
  "app_id": "com.king.candycrushsaga",
  "title": "Candy Crush Saga",
  "developer": "King",
  "score": 4.5,
  "price": 0,
  "free": true,
  "installs": "1,000,000,000+",
  "icon": "https://play-lh.googleusercontent.com/..."
}
```

App detail row:

```json
{
  "row_type": "app_detail",
  "app_id": "com.spotify.music",
  "title": "Spotify: Music and Podcasts",
  "developer": "Spotify AB",
  "developer_id": "Spotify AB",
  "category": "Music & Audio",
  "score": 4.3,
  "ratings": 31200000,
  "reviews": 1840000,
  "installs": "1,000,000,000+",
  "price": 0,
  "free": true,
  "content_rating": "Teen",
  "version": "8.9.74.575",
  "url": "https://play.google.com/store/apps/details?id=com.spotify.music"
}
```

Review row:

```json
{
  "row_type": "review",
  "app_id": "com.spotify.music",
  "review_id": "gp:AOqpTOH...",
  "user_name": "Alex M.",
  "score": 5,
  "content": "Best music app, the offline mode is great.",
  "at": "2026-05-30T11:04:00.000Z",
  "thumbs_up_count": 42,
  "app_version": "8.9.74.575",
  "reply_content": null
}
```

### How much does it cost to scrape Google Play?

You pay per result, billed by Apify, with no subscription. With the **$5 free monthly credit** you can pull, for example:

- **~50,000 reviews** (reviews from $0.10 / 1,000 results), or
- **~20,000 app, chart, search or developer rows** (app rows from $0.25 / 1,000), or
- **~1,280 app-detail rows** (the heavy 60+ field call at $3.90 / 1,000).

Mix and match across a single run; the run summary shows the exact charge. Failed items (an app that does not exist, a region without that chart) are returned for visibility and are **never charged**, so you pay only for real rows.

### What can you use Google Play data for?

- **App Store Optimization (ASO)** - track keyword rankings and category positions in any country.
- **Market intelligence** - watch top free / paid / grossing charts to spot rising apps and categories.
- **Competitor monitoring** - follow a rival's rating, install count, version cadence and review sentiment over time.
- **Similar-app discovery** - map a competitive set from a single seed app.
- **Lead generation** - build lists of developers and their published portfolios.
- **Review mining and sentiment** - feed thousands of reviews into NLP for product and CX insight.
- **Pricing and monetization research** - compare price and in-app purchase signals across markets.
- **Release tracking** - monitor version numbers and update cadence to time your own launches.

### Is it legal to scrape Google Play?

Scraping publicly available Google Play data is legal in most jurisdictions when you collect only public information and respect personal-data laws such as GDPR and CCPA. This Actor returns only data that any visitor can see on the Play Store. You are responsible for how you use the output, so consult a lawyer for your specific case.

### Related scrapers

Part of the Data Forge Google Play fleet:

- **Google Play App Scraper** - focused app search, top charts, similar apps and detail.
- **Google Play Reviews Scraper** - focused, high-volume review extraction.

### FAQ

**Can I run just one data type?** Yes. Tick only the data types you need under **What to scrape**; the rest stays idle and uncharged.

**Are top charts really per country?** Yes. Set the country and the charts, rankings and prices are localized to it.

**How many reviews can I get per app?** As many as the app has - set **Max reviews per app** to 100, 10,000 or every review, in your chosen sort order, optionally filtered to a single star rating.

**Can I pull a developer's whole portfolio?** Yes. Pick **Developer apps** and pass the developer name or ID.

**Can I call it from code?** Yes. Run it via the Apify API, the Apify client SDKs, or an MCP server, and read results straight from the dataset.

**What happens to apps that are not found?** They come back as free diagnostic rows with an `error_code`, so a bad input never breaks the run.

***

### Support

Built and maintained by **Data Forge**. Need custom fields, higher volume or a quick answer?

[![Telegram](https://img.shields.io/badge/Telegram-Chat-26A5E4?style=for-the-badge\&logo=telegram\&logoColor=white)](https://t.me/j4dtpnj2tp)
[![WhatsApp](https://img.shields.io/badge/WhatsApp-Message-25D366?style=for-the-badge\&logo=whatsapp\&logoColor=white)](https://wa.me/380686031542)
[![Email](https://img.shields.io/badge/Email-Contact-EA4335?style=for-the-badge\&logo=gmail\&logoColor=white)](mailto:jdtpnjtp@gmail.com)

# Actor input Schema

## `dataTypes` (type: `array`):

Choose one or more data types. Each needs its matching input below: Search needs keywords, App detail / Reviews need app IDs, Similar needs app IDs, Developer needs developer IDs. Top charts needs only a country.

## `searchQueries` (type: `array`):

Keywords to search the Play Store for (used by 🔎 Search). Example: `puzzle games`, `vpn`.

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

Apps to pull detail / reviews / similar for (used by 📱 App detail, ⭐ Reviews, 🧩 Similar). Accepts a package name (`com.spotify.music`), a Play Store URL, or just the app name (`Spotify`) - the top search match is used.

## `developerIds` (type: `array`):

Developers to pull the published app portfolio for (used by 👤 Developer apps). Example: `Google LLC`.

## `similarToAppIds` (type: `array`):

Apps to find similar apps for (used by 🧩 Similar apps). Accepts a package name, Play URL, or just the app name.

## `maxResults` (type: `integer`):

Upper bound of rows per search / chart / developer / similar input. Each row is one paid result. Store-side caps: search returns up to 250, developer portfolios up to 200.

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

When on, each search / chart / similar / developer row is enriched with a 60+ field app-detail call. Adds one app-detail result charge per enriched row.

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

Store country. Top charts, rankings and prices are localized to it.

## `lang` (type: `string`):

Language for titles, descriptions and reviews.

## `chartCollection` (type: `string`):

Which top-chart list to pull (used by 🏆 Top charts).

## `chartCategory` (type: `string`):

Category to rank within (used by 🏆 Top charts).

## `chartDevice` (type: `string`):

Optional form-factor for the chart. Leave on Phone for the standard charts.

## `reviewsSort` (type: `string`):

Order reviews are pulled in (used by ⭐ Reviews).

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

How deep to go per app - 100, 10,000 or every review the app has (used by ⭐ Reviews). The Actor pulls reviews until it reaches this number or runs out.

## `filterScore` (type: `string`):

Optionally keep only reviews with this rating (used by ⭐ Reviews).

## Actor input object example

```json
{
  "dataTypes": [
    "search"
  ],
  "searchQueries": [
    "puzzle games"
  ],
  "maxResults": 30,
  "includeAppDetails": false,
  "country": "us",
  "lang": "en",
  "chartCollection": "topselling_free",
  "chartCategory": "APPLICATION",
  "chartDevice": "",
  "reviewsSort": "newest",
  "maxReviewsPerApp": 100,
  "filterScore": ""
}
```

# Actor output Schema

## `dataset` (type: `string`):

Default dataset; row\_type discriminates search\_result / chart / similar / developer\_app / app\_detail / review. Full payload under data. Views: Overview / Apps / Reviews.

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

OUTPUT key: data\_types, app\_results, app\_details, reviews, errors, total\_rows, estimated\_cost\_usd, limit\_reached, actor\_version.

# 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 = {
    "dataTypes": [
        "search"
    ],
    "searchQueries": [
        "puzzle games"
    ],
    "maxResults": 30,
    "country": "us",
    "maxReviewsPerApp": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("jdtpnjtp/google-play-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 = {
    "dataTypes": ["search"],
    "searchQueries": ["puzzle games"],
    "maxResults": 30,
    "country": "us",
    "maxReviewsPerApp": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("jdtpnjtp/google-play-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 '{
  "dataTypes": [
    "search"
  ],
  "searchQueries": [
    "puzzle games"
  ],
  "maxResults": 30,
  "country": "us",
  "maxReviewsPerApp": 100
}' |
apify call jdtpnjtp/google-play-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Play Scraper",
        "description": "Scrape Google Play in one actor - app search, country-localized top charts, similar apps, developer portfolios, full app detail and reviews. Pick what you need with data types. Pay only per result.",
        "version": "1.0",
        "x-build-id": "TJ9sfYsN4CrE1mAna"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jdtpnjtp~google-play-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jdtpnjtp-google-play-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/jdtpnjtp~google-play-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jdtpnjtp-google-play-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/jdtpnjtp~google-play-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jdtpnjtp-google-play-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": {
                    "dataTypes": {
                        "title": "What to scrape",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Choose one or more data types. Each needs its matching input below: Search needs keywords, App detail / Reviews need app IDs, Similar needs app IDs, Developer needs developer IDs. Top charts needs only a country.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "search",
                                "app",
                                "reviews",
                                "topcharts",
                                "similar",
                                "developer"
                            ],
                            "enumTitles": [
                                "🔎 Search apps",
                                "📱 App detail (by ID/URL)",
                                "⭐ App reviews",
                                "🏆 Top charts",
                                "🧩 Similar apps",
                                "👤 Developer apps"
                            ]
                        },
                        "default": [
                            "search"
                        ]
                    },
                    "searchQueries": {
                        "title": "Search keywords",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keywords to search the Play Store for (used by 🔎 Search). Example: `puzzle games`, `vpn`.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "appIds": {
                        "title": "Apps (name, ID or URL)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Apps to pull detail / reviews / similar for (used by 📱 App detail, ⭐ Reviews, 🧩 Similar). Accepts a package name (`com.spotify.music`), a Play Store URL, or just the app name (`Spotify`) - the top search match is used.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "developerIds": {
                        "title": "Developer names or IDs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Developers to pull the published app portfolio for (used by 👤 Developer apps). Example: `Google LLC`.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "similarToAppIds": {
                        "title": "Find apps similar to",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Apps to find similar apps for (used by 🧩 Similar apps). Accepts a package name, Play URL, or just the app name.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max results per input",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Upper bound of rows per search / chart / developer / similar input. Each row is one paid result. Store-side caps: search returns up to 250, developer portfolios up to 200.",
                        "default": 30
                    },
                    "includeAppDetails": {
                        "title": "Enrich listings with app detail ($)",
                        "type": "boolean",
                        "description": "When on, each search / chart / similar / developer row is enriched with a 60+ field app-detail call. Adds one app-detail result charge per enriched row.",
                        "default": false
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "us",
                            "gb",
                            "ca",
                            "au",
                            "in",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "br",
                            "mx",
                            "jp",
                            "kr",
                            "id",
                            "ru",
                            "tr",
                            "sa",
                            "ae",
                            "ng"
                        ],
                        "type": "string",
                        "description": "Store country. Top charts, rankings and prices are localized to it.",
                        "default": "us"
                    },
                    "lang": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "es",
                            "pt",
                            "de",
                            "fr",
                            "it",
                            "nl",
                            "ja",
                            "ko",
                            "ru",
                            "id",
                            "hi",
                            "tr",
                            "ar",
                            "zh"
                        ],
                        "type": "string",
                        "description": "Language for titles, descriptions and reviews.",
                        "default": "en"
                    },
                    "chartCollection": {
                        "title": "Chart collection",
                        "enum": [
                            "topselling_free",
                            "topselling_paid",
                            "topgrossing"
                        ],
                        "type": "string",
                        "description": "Which top-chart list to pull (used by 🏆 Top charts).",
                        "default": "topselling_free"
                    },
                    "chartCategory": {
                        "title": "Chart category",
                        "enum": [
                            "APPLICATION",
                            "GAME",
                            "ART_AND_DESIGN",
                            "BOOKS_AND_REFERENCE",
                            "BUSINESS",
                            "COMMUNICATION",
                            "EDUCATION",
                            "ENTERTAINMENT",
                            "FINANCE",
                            "FOOD_AND_DRINK",
                            "HEALTH_AND_FITNESS",
                            "LIFESTYLE",
                            "MAPS_AND_NAVIGATION",
                            "MEDICAL",
                            "MUSIC_AND_AUDIO",
                            "NEWS_AND_MAGAZINES",
                            "PHOTOGRAPHY",
                            "PRODUCTIVITY",
                            "SHOPPING",
                            "SOCIAL",
                            "SPORTS",
                            "TOOLS",
                            "TRAVEL_AND_LOCAL",
                            "VIDEO_PLAYERS",
                            "WEATHER"
                        ],
                        "type": "string",
                        "description": "Category to rank within (used by 🏆 Top charts).",
                        "default": "APPLICATION"
                    },
                    "chartDevice": {
                        "title": "Chart device",
                        "enum": [
                            "",
                            "tablet",
                            "watch",
                            "tv",
                            "car",
                            "chromebook",
                            "xr"
                        ],
                        "type": "string",
                        "description": "Optional form-factor for the chart. Leave on Phone for the standard charts.",
                        "default": ""
                    },
                    "reviewsSort": {
                        "title": "Reviews sort order",
                        "enum": [
                            "newest",
                            "rating",
                            "most_relevant"
                        ],
                        "type": "string",
                        "description": "Order reviews are pulled in (used by ⭐ Reviews).",
                        "default": "newest"
                    },
                    "maxReviewsPerApp": {
                        "title": "Max reviews per app",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "How deep to go per app - 100, 10,000 or every review the app has (used by ⭐ Reviews). The Actor pulls reviews until it reaches this number or runs out.",
                        "default": 100
                    },
                    "filterScore": {
                        "title": "Keep only this star rating",
                        "enum": [
                            "",
                            "5",
                            "4",
                            "3",
                            "2",
                            "1"
                        ],
                        "type": "string",
                        "description": "Optionally keep only reviews with this rating (used by ⭐ Reviews).",
                        "default": ""
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
