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

Scrape Google Play apps - search, top charts, similar apps, developer portfolios and app detail. Get title, developer, rating, installs, price, IAPs, category, version and screenshots. Pay per result.

- **URL**: https://apify.com/jdtpnjtp/google-play-apps-scraper.md
- **Developed by:** [Data Forge](https://apify.com/jdtpnjtp) (community)
- **Categories:** Developer tools, Lead generation, Other
- **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 App Scraper

Scrape Google Play apps at scale. **Apps from $0.25 / 1,000 results** - pull 20,000+ app rows in one run. Search keywords, country-localized top charts, similar apps, developer portfolios and detailed app pages come back as clean structured rows, with no subscription.

### What does the Google Play App Scraper do?

The Google Play App Scraper turns the Play Store into a structured dataset. Feed it search keywords, app IDs, developer IDs or chart selectors, pick your modes, and it returns app title, developer, rating, installs, price, category, version, screenshots and more as flat rows you can sort, filter and export to CSV, Excel or JSON.

Five modes run from one input form:

| Mode | What you get | Needs |
|---|---|---|
| `search` | Keyword search results from Google Play | Search queries |
| `topcharts` | Country-localized top free, paid or grossing charts | Country + collection |
| `similar` | Apps similar to a given app | App names, IDs or URLs |
| `developer` | A developer's app portfolio | Developer IDs |
| `app` | Detailed app page (60+ fields) | App names, IDs or URLs |

Flip on **Fan out listings to app detail** and each listing row is enriched with a detailed app page, so a single search returns ranking plus deep metadata in one pass.

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

Each app row carries the buyer-facing columns plus a `data` payload with 60+ raw fields:

- **Identity** - app title, package ID (com.whatsapp), Play Store URL, icon
- **Developer** - developer name, developer ID, portfolio link
- **Ratings** - average score (1.0 to 5.0), rating count, review count
- **Reach** - install-count buckets (e.g. 10,000,000,000+)
- **Pricing** - price, free flag, currency, in-app purchase ranges (IAPs)
- **Classification** - category / genre, content rating
- **Release** - release date, last update, current version
- **Media** - icon, screenshots, header image, description and short summary

Listing rows return the lightweight fields; app-detail rows carry the deep metadata for market and competitor work.

### How to scrape Google Play apps

1. Open the Google Play App Scraper and click **Try it** - the input form is prefilled with a `puzzle games` search, so you get real data on the first click.
2. Replace it with your own **search queries**, **app IDs / URLs**, **developer IDs** or **similar-to app IDs**.
3. Pick your **data types** (search, top charts, similar, developer, app detail).
4. Set **country** and **language** for localized rankings, and a **max results per type** cap.
5. (Optional) Turn on **Fan out listings to app detail** to enrich each result with deep metadata.
6. Click **Save & Start**, then export the dataset to CSV, Excel or JSON, or pull it through the API.

#### Input example

```json
{
  "searchQueries": ["puzzle games"],
  "dataTypes": ["search", "topcharts"],
  "country": "us",
  "lang": "en",
  "maxResults": 20,
  "chartCollection": "topselling_free",
  "includeAppDetails": false
}
````

#### Output example

A search-result row:

```json
{
  "query": "puzzle games",
  "row_type": "search_result",
  "app_id": "com.king.candycrushsaga",
  "title": "Candy Crush Saga",
  "developer": "King",
  "score": 4.6,
  "price": 0.0,
  "free": true,
  "installs": "1,000,000,000+",
  "icon": "https://play-lh.googleusercontent.com/...",
  "description_short": "Match candies in this tasty puzzle adventure.",
  "data": { "...": "60+ raw fields" }
}
```

An app-detail row:

```json
{
  "query": "com.spotify.music",
  "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": 31280544,
  "reviews": 5128342,
  "installs": "1,000,000,000+",
  "price": 0.0,
  "free": true,
  "content_rating": "Teen",
  "released": "Oct 7, 2008",
  "version": "8.9.42.575",
  "icon": "https://play-lh.googleusercontent.com/...",
  "url": "https://play.google.com/store/apps/details?id=com.spotify.music",
  "data": { "...": "screenshots, IAPs, rating histogram, description" }
}
```

The dataset ships with **Overview** and **Apps** table tabs, so each view reads as a clean spreadsheet. Error rows carry an `error_code` and are free.

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

Pay per result, no subscription:

- **app-result** (search, top charts, similar, developer rows) - **$0.25 / 1,000** ($0.00025 each)
- **app-detail** (detailed app page, 60+ fields) - **$3.90 / 1,000** ($0.0039 each)

Worked math: Apify's **$5 free monthly credits** cover about **20,000 app listing rows** ($5 / $0.00025) before you spend a cent of your own. Need deep metadata? Detailed app pages run **$3.90 / 1,000**, so 1,000 complete app profiles cost under four dollars. Error rows are never charged, so you only pay for real data.

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

- **App Store Optimization (ASO)** - track titles, ratings, install buckets and category rankings to refine keywords and listings.
- **Market intelligence** - size a category by pulling top free, paid and grossing charts per country.
- **Competitor tracking** - monitor a rival app's score, version cadence, install growth and pricing over time.
- **Developer mapping** - pull a developer's portfolio to map a publisher's catalog and reach.
- **Lead generation** - build lists of developers and apps in a niche for outreach.
- **Discovery and recommendations** - use similar-app graphs to surface adjacent apps and substitutes.
- **Pricing and monetization research** - compare price, free flags and in-app purchase ranges across a segment.
- **Trend monitoring** - watch country-localized charts to catch rising apps early.
- **Investment and due diligence** - benchmark traction signals (installs, ratings, review velocity) across a portfolio.

### Is it legal to scrape Google Play?

Scraping publicly available data is generally legal, and this actor only collects public Google Play listing pages that any visitor can view without logging in. Court rulings such as hiQ v. LinkedIn have supported the collection of public data. You stay responsible for how you use the output: respect copyright, trademarks, privacy laws (GDPR / CCPA) and Google's terms where they apply, and avoid republishing personal data. Consult a lawyer if you need certainty for a commercial deployment.

### Related scrapers

Part of the **Data Forge** Google Play fleet:

- **[Google Play Scraper](https://apify.com/jdtpnjtp/google-play-scraper)** - the umbrella actor that covers apps and reviews in one place.
- **[Google Play Reviews Scraper](https://apify.com/jdtpnjtp/google-play-reviews-scraper)** - pull user reviews (user, score, text, date, thumbs-up, developer reply) at scale.

### FAQ

**Can I scrape top charts for a specific country?**
Yes. Set `country` to a 2-letter code (us, jp, de) and pick a `chartCollection` (top free, paid or grossing). Charts are localized to that country.

**How do I get deep app metadata, not just listing columns?**
Use the `app` data type with app IDs or URLs, or turn on **Fan out listings to app detail** to enrich each listing with a detailed app page (60+ fields).

**Can I run this from the API or an integration?**
Yes. Start runs and fetch the dataset through the Apify API, the JavaScript / Python clients, webhooks and the scheduler, or the Apify MCP server so AI agents can call the actor as a tool.

**What export formats are supported?**
CSV, Excel, JSON, JSONL, XML or RSS, through the Console or API.

**What happens to failed inputs?**
Failed or not-found inputs come back as error rows with an `error_code` and are free, so you only pay for real results.

**Do I need internal IDs?**
No. Search by keyword like a human, paste app IDs or Play URLs, or enter a developer name, and the actor normalizes the input for you.

### Support

I personally support each customer - reach out on any channel for help, enterprise plans or custom scraping.

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

# Actor input Schema

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

Which verticals to pull. Search needs queries, App needs IDs, Similar needs app IDs, Developer needs developer IDs. Top charts runs only when explicitly selected.

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

Keyword searches (e.g. `puzzle games`).

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

Apps by package name (com.whatsapp), Play URL, or just the app name (WhatsApp) - the top search match is used. Each is pulled as full app detail.

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

Developer names/IDs (e.g. `Google LLC`) - returns each developer's apps.

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

Apps (package name, Play URL or app name) - returns apps similar to each.

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

2-letter country code (us, jp, de ...). Top charts and rankings are localized to this country.

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

2-letter language code (en, ja, de ...).

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

Upper bound per vertical / input item (1-500). Store-side caps: search returns up to 250, developer portfolios up to 200.

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

When on, every listing row is enriched with a full app-detail call (60+ fields). Adds an app-detail charge per result.

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

Which top-chart collection to pull (free, paid or grossing).

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

Category slug for charts (APPLICATION, GAME, ...).

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

Optional device/form-factor for the chart (phone, tablet, watch, tv, car, chromebook, xr). Leave blank for default phone charts.

## Actor input object example

```json
{
  "dataTypes": [
    "search"
  ],
  "searchQueries": [
    "puzzle games"
  ],
  "appIds": [],
  "developerIds": [],
  "similarToAppIds": [],
  "country": "us",
  "lang": "en",
  "maxResults": 20,
  "includeAppDetails": false,
  "chartCollection": "topselling_free",
  "chartCategory": "APPLICATION",
  "chartDevice": ""
}
```

# Actor output Schema

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

Default dataset; row\_type discriminates search\_result / chart / similar / developer\_app / app\_detail. Full payload under data.

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

OUTPUT key: app\_results, app\_details, 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"
    ],
    "appIds": [],
    "developerIds": [],
    "similarToAppIds": [],
    "country": "us",
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("jdtpnjtp/google-play-apps-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"],
    "appIds": [],
    "developerIds": [],
    "similarToAppIds": [],
    "country": "us",
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("jdtpnjtp/google-play-apps-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"
  ],
  "appIds": [],
  "developerIds": [],
  "similarToAppIds": [],
  "country": "us",
  "maxResults": 20
}' |
apify call jdtpnjtp/google-play-apps-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Play App Scraper",
        "description": "Scrape Google Play apps - search, top charts, similar apps, developer portfolios and app detail. Get title, developer, rating, installs, price, IAPs, category, version and screenshots. Pay per result.",
        "version": "1.0",
        "x-build-id": "W5ECNFPqRoIzRaKmt"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jdtpnjtp~google-play-apps-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jdtpnjtp-google-play-apps-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-apps-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jdtpnjtp-google-play-apps-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-apps-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jdtpnjtp-google-play-apps-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": "Which verticals to pull. Search needs queries, App needs IDs, Similar needs app IDs, Developer needs developer IDs. Top charts runs only when explicitly selected.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "search",
                                "topcharts",
                                "similar",
                                "developer",
                                "app"
                            ],
                            "enumTitles": [
                                "🔎 Search",
                                "🏆 Top charts",
                                "🧩 Similar apps",
                                "👤 Developer apps",
                                "📱 App detail (by ID)"
                            ]
                        },
                        "default": [
                            "search",
                            "topcharts",
                            "similar",
                            "developer",
                            "app"
                        ]
                    },
                    "searchQueries": {
                        "title": "Search queries",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keyword searches (e.g. `puzzle games`).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "appIds": {
                        "title": "Apps (name, ID or URL)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Apps by package name (com.whatsapp), Play URL, or just the app name (WhatsApp) - the top search match is used. Each is pulled as full app detail.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "developerIds": {
                        "title": "Developer IDs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Developer names/IDs (e.g. `Google LLC`) - returns each developer's apps.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "similarToAppIds": {
                        "title": "Similar to (app, ID or URL)",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Apps (package name, Play URL or app name) - returns apps similar to each.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "title": "Country",
                        "type": "string",
                        "description": "2-letter country code (us, jp, de ...). Top charts and rankings are localized to this country.",
                        "default": "us"
                    },
                    "lang": {
                        "title": "Language",
                        "type": "string",
                        "description": "2-letter language code (en, ja, de ...).",
                        "default": "en"
                    },
                    "maxResults": {
                        "title": "Max results per type",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Upper bound per vertical / input item (1-500). Store-side caps: search returns up to 250, developer portfolios up to 200.",
                        "default": 30
                    },
                    "includeAppDetails": {
                        "title": "Fan out listings to full app detail",
                        "type": "boolean",
                        "description": "When on, every listing row is enriched with a full app-detail call (60+ fields). Adds an app-detail charge per result.",
                        "default": false
                    },
                    "chartCollection": {
                        "title": "Chart collection",
                        "enum": [
                            "topselling_free",
                            "topselling_paid",
                            "topgrossing"
                        ],
                        "type": "string",
                        "description": "Which top-chart collection to pull (free, paid or grossing).",
                        "default": "topselling_free"
                    },
                    "chartCategory": {
                        "title": "Chart category",
                        "type": "string",
                        "description": "Category slug for charts (APPLICATION, GAME, ...).",
                        "default": "APPLICATION"
                    },
                    "chartDevice": {
                        "title": "Chart device",
                        "enum": [
                            "",
                            "phone",
                            "tablet",
                            "watch",
                            "tv",
                            "car",
                            "chromebook",
                            "xr"
                        ],
                        "type": "string",
                        "description": "Optional device/form-factor for the chart (phone, tablet, watch, tv, car, chromebook, xr). Leave blank for default phone charts.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
