# 🍎 App Store Scraper API | ASO, Keyword Search & Top Charts (`plum_spear/aztec-appstore-aso`) Actor

Search the Apple App Store by keyword, lookup apps by ID, or fetch top charts. Returns ratings, prices, genres, versions and metadata for app market research and ASO.

- **URL**: https://apify.com/plum\_spear/aztec-appstore-aso.md
- **Developed by:** [Roberto Kerber](https://apify.com/plum_spear) (community)
- **Categories:** Developer tools, SEO tools, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.15 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Apple App Store Scraper & ASO Tool - iOS App Data, Keyword Research & Top Charts API

Scrape the **Apple App Store** at scale and turn it into clean, structured data for **ASO (App Store Optimization)**, keyword research, and competitor analysis. Search apps by keyword, look up any app by its App Store ID, or pull the live **Top Charts** (Free, Paid, Grossing, New) - and get rich metadata for every result: **ratings, rating counts, price, genre, version, release and update dates, content rating, description**, and more.

Built on Apple's official **iTunes Search API** and **RSS chart feeds**, this **App Store scraper** is fast, reliable, and needs **no proxy** to run. Whether you are an ASO manager benchmarking competitors, an app marketer hunting for keyword opportunities, or a market researcher quantifying a category, this **iOS app data API** gives you the raw numbers in seconds. Better yet, **schedule it to run daily or weekly** and track ratings, versions, and chart movements over time - turning a one-off pull into a living dataset.

ASO is one of the most under-served niches on the Apify Store. If you have been searching for an **App Store keyword research** tool, an **Apple app metadata** extractor, or an **App Store top charts API**, this Actor was built for exactly that.

### What does it do?

This Actor connects to Apple's public App Store endpoints and returns structured JSON for every app it finds. It runs in **three modes**, so you can pull exactly the data you need:

- **Search mode** - find apps by keyword (e.g. "fitness tracker", "budget", or a competitor's brand name). Perfect for **App Store keyword research** and discovering who ranks for the terms that matter to you.
- **Lookup mode** - fetch exact metadata for one or more apps by their App Store ID. Ideal for tracking a fixed set of competitor apps over time.
- **Charts mode** - pull the live **Top Free, Top Paid, Top Grossing, and New Apps** rankings for any country. Great for trend monitoring and spotting breakout apps early.

No login, no API key from Apple, and no proxy configuration. Point it at a keyword, an App ID, or a chart, choose your country, and run.

### Features

- 🔎 **Keyword search** - discover apps ranking for any term, just like a real **App Store keyword research** tool
- 🆔 **App ID lookup** - pull exact, reliable metadata for any app by its App Store ID
- 📊 **Top Charts API** - Top Free, Top Paid, Top Grossing, and New Apps rankings, with `rank` included
- ⭐ **Full metadata** - rating, rating count, price, currency, genre, version, release date, update date, content rating, icon, and description for every app
- 🌍 **Any country** - scrape the App Store for the US, UK, Brazil, Germany, Japan, or any other storefront with a two-letter country code
- 🎧 **Multiple entity types** - iPhone apps, iPad apps, Mac apps, podcasts, music, and eBooks
- ⚡ **No proxy required** - powered by Apple's official iTunes Search API and RSS feeds, so it stays fast and stable
- 📦 **Up to 200 results** per run, exported as clean JSON, CSV, Excel, or any format Apify supports
- 🧩 **Zero setup** - no Apple developer account, no scraping infrastructure, no maintenance

### Who is it for? (Use cases)

#### ASO managers
Run **App Store ASO research** without manual digging. Pull competitor ratings, versions, genres, and update cadence to see who owns the keywords you are targeting and how your app stacks up. Track the same set of App IDs week over week to measure the impact of every ASO experiment.

#### App marketers
Identify the keywords your category competes on, surface high-rated apps to study their positioning, and monitor **Top Charts** to catch rising apps before they dominate. Feed the data straight into your marketing dashboards or spreadsheets.

#### Market researchers
Quantify an entire app category in one run: who ranks, who is rated well, how they price, and how often they ship updates. Build datasets for reports, sizing studies, or investment due diligence using reliable **Apple app metadata**.

#### Indie developers
Validate your app idea against the real market. See how many competitors exist for your keyword, what they charge, and how well they are rated - before you write a line of code. Then track your own app's rating and version history over time.

#### Growth & data teams
Use this **iOS app data API** as a building block in larger pipelines: scheduled runs feed your data warehouse, BI tools, or alerting. Combine search, lookup, and charts modes to maintain a continuously updated picture of any market.

### Automate it: scheduled monitoring

The real value of App Store data is in the **trend, not the snapshot**. A single run tells you where things stand today; a scheduled run tells you what is changing. Set this Actor to run on a recurring schedule and you build a continuously updated picture of your market - automatically. Here are three high-value recurring jobs:

#### 🗓️ Daily Top Charts tracker
Run **charts mode** every morning (e.g. `@daily`) against `topfreeapplications` or `topgrossingapplications` for the countries you care about. By appending each run to a dataset, you can diff yesterday vs. today and **catch apps that are climbing the rankings** before they break out. Perfect for spotting rising competitors and trending categories early.

#### 📈 Weekly competitor ASO shift report
Keep a fixed list of competitor App Store IDs and run **lookup mode** on the same `appIds` every week. Comparing the new pull against last week's surfaces every meaningful **ASO shift**: a rating that moved, a new `version` shipped, a changed `updatedDate`, a price adjustment. That weekly delta is exactly the signal an ASO manager needs to react to competitor moves.

#### 🔁 Keyword-rank watch
Run **search mode** on your priority keywords on a schedule (daily or weekly) to track **who ranks for the terms that matter** and how that set changes over time. New entrants, rising ratings, and fresh updates all show up run over run.

#### How to set it up

1. **Apify Scheduler** - open your Actor, go to **Schedules**, and add a cron expression. Use `0 8 * * *` to run every day at 08:00, or `0 8 * * 1` for every Monday morning. Save your input once and every scheduled run reuses it.
2. **Append to a dataset** - point each run at a named dataset so historical results accumulate instead of overwriting. That history is what makes trend detection possible.
3. **Pipe the results out** - connect the run to **Make, Zapier, or n8n** using Apify's "Actor run finished" trigger, then push the dataset into **Google Sheets, Slack, or email**. Now your daily charts tracker or weekly competitor report lands in your inbox or team channel with zero manual work.

A scheduled Actor turns a single $0.15-per-1,000-results run into an always-on monitoring system - the difference between **checking the App Store once** and **watching it continuously**.

### Input

Configure the Actor with a few simple fields. Only the fields relevant to your chosen `mode` are required.

| Field | Description | Example |
|-------|-------------|---------|
| `mode` | Operation mode: `search`, `lookup`, or `charts` | `search` |
| `term` | Keyword to search for (search mode) | `fitness tracker` |
| `appIds` | One or more App Store IDs (lookup mode) | `["310633997"]` |
| `feed` | Chart to fetch (charts mode): `topfreeapplications`, `toppaidapplications`, `topgrossingapplications`, `newapplications` | `topfreeapplications` |
| `entity` | App type (search mode): `software`, `iPadSoftware`, `macSoftware`, `podcast`, `music`, `ebook` | `software` |
| `country` | Two-letter country / storefront code | `us`, `gb`, `br` |
| `maxResults` | Maximum number of results to return (up to 200) | `50` |

### Example input

```json
{
  "mode": "search",
  "term": "fitness tracker",
  "entity": "software",
  "country": "us",
  "maxResults": 50
}
````

Look up specific apps by ID:

```json
{
  "mode": "lookup",
  "appIds": ["389801252", "310633997"],
  "country": "us"
}
```

Pull the Top Free charts in the UK:

```json
{
  "mode": "charts",
  "feed": "topfreeapplications",
  "country": "gb",
  "maxResults": 100
}
```

### Example output

Each app is returned as a structured JSON record:

```json
{
  "appId": 389801252,
  "name": "Instagram",
  "developer": "Instagram, Inc.",
  "price": 0.0,
  "currency": "USD",
  "rating": 4.7,
  "ratingCount": 28000000,
  "genre": "Photo & Video",
  "version": "350.1",
  "releaseDate": "2010-10-06T19:12:14Z",
  "updatedDate": "2026-06-10T08:31:00Z",
  "contentRating": "12+",
  "url": "https://apps.apple.com/us/app/id389801252",
  "icon": "https://is1-ssl.mzstatic.com/image/.../512x512bb.jpg",
  "description": "Little moments lead to big friendships..."
}
```

In charts mode, each record also includes a `rank` field reflecting its position in the chart.

### Output fields

| Field | Description |
|-------|-------------|
| `appId` | Numeric App Store ID |
| `name` | App name |
| `developer` | Developer / publisher name |
| `price` | Price (0.0 for free apps) |
| `currency` | Currency code for the price |
| `rating` | Average user rating (0-5) |
| `ratingCount` | Total number of ratings |
| `genre` | Primary genre / category |
| `version` | Current app version |
| `releaseDate` | Original App Store release date |
| `updatedDate` | Date of the most recent update |
| `contentRating` | Age / content rating (e.g. `4+`, `12+`) |
| `url` | Direct App Store URL |
| `icon` | App icon image URL |
| `description` | Full app description text |
| `rank` | Chart position (charts mode only) |

### FAQ

#### How do I do App Store ASO research?

Start in **search mode** with the keyword you want to rank for and pull the top results. The ratings, rating counts, genres, and update dates tell you who already owns that keyword and how strong they are. Then switch to **lookup mode** for your key competitors' App IDs and run the Actor on a schedule to track their ratings and version history over time. That before-and-after data is the core of effective **App Store ASO research**.

#### Can I get app rankings by country?

Yes. Use **charts mode** with the `feed` you want (Top Free, Top Paid, Top Grossing, or New Apps) and set `country` to any two-letter storefront code (`us`, `gb`, `br`, `de`, `jp`, and so on). Each result includes its `rank`, so you get the live App Store rankings for that specific country.

#### Do I need a proxy or an Apple developer account?

No. This **App Store scraper** uses Apple's official iTunes Search API and public RSS chart feeds, so it works without a proxy and without any Apple developer account or API key. That keeps runs fast, stable, and cheap.

#### How many results can I get per run?

Up to **200 results** per run via the `maxResults` field. For larger datasets, run the Actor multiple times across different keywords, charts, or countries, or schedule recurring runs and append to a dataset.

#### What data does the App Store scraper return for each app?

Every app comes with `appId`, `name`, `developer`, `price`, `currency`, `rating`, `ratingCount`, `genre`, `version`, `releaseDate`, `updatedDate`, `contentRating`, `url`, `icon`, and `description`. Charts mode adds a `rank` field. This is the **Apple app metadata** you need for ASO, competitor analysis, and market research.

#### Can I scrape iPad, Mac apps, podcasts, music, or eBooks?

Yes. In search mode, set the `entity` field to `software` (iPhone apps), `iPadSoftware`, `macSoftware`, `podcast`, `music`, or `ebook` to target the catalog you care about.

#### Is there a free tier?

Apify offers free monthly platform usage on its free plan, which is enough to try this Actor and run small jobs at no cost. Beyond that, you only pay the low per-result price described below - there is no subscription and no minimum spend.

#### How do I use this for App Store competitor analysis?

Collect your competitors' App Store IDs and run the Actor in **lookup mode** on a schedule. Comparing rating counts, versions, and update frequency over time reveals how aggressively each competitor is investing in their app. Combine that with **search mode** to see who else is entering your keyword space, and you have a complete **App Store competitor analysis** workflow.

#### How do I export the data?

Results are stored in an Apify dataset and can be exported as JSON, CSV, Excel, XML, or HTML, or pulled programmatically through the Apify API. That makes it easy to drop the data into spreadsheets, BI tools, or your own data pipelines.

#### Can I run this on a schedule?

Yes, and it is where this Actor pays off most. Use the **Apify Scheduler** to run it automatically with a cron expression - for example `0 8 * * *` for a daily 08:00 run, or `0 8 * * 1` for a weekly Monday report. Point each run at a named dataset so results accumulate over time, then connect the "Actor run finished" event to **Make, Zapier, or n8n** to push the data into **Google Sheets, Slack, or email**. That turns a one-off scrape into an automated **App Store monitoring** pipeline: a daily top-charts tracker, a weekly competitor ASO shift report, or an ongoing keyword-rank watch - all hands-off.

### Pricing

**Pay-per-result: $0.15 per 1,000 results.** No subscription, no monthly minimum, no hidden proxy costs. You only pay for the app records you actually receive, so small ASO checks cost almost nothing and large market-research pulls stay affordable.

***

Looking for an **app store scraper**, an **iOS app data API**, an **ASO tool**, or an **App Store top charts API**? This Actor delivers all of it in one place - fast, structured, and proxy-free.

# Actor input Schema

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

search = find apps by keyword; lookup = get apps by ID; charts = top apps ranking.

## `term` (type: `string`):

Keyword to search for, e.g. 'fitness', 'budget app', a competitor name.

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

List of numeric App Store IDs to fetch metadata for.

## `feed` (type: `string`):

Which ranking to fetch.

## `entity` (type: `string`):

What to search: apps, podcasts, music, etc.

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

Two-letter App Store country (us, gb, br, de, ...).

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

Maximum number of results (up to 200).

## Actor input object example

```json
{
  "mode": "search",
  "feed": "topfreeapplications",
  "entity": "software",
  "country": "us",
  "maxResults": 50
}
```

# Actor output Schema

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

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("plum_spear/aztec-appstore-aso").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("plum_spear/aztec-appstore-aso").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 '{}' |
apify call plum_spear/aztec-appstore-aso --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=plum_spear/aztec-appstore-aso",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🍎 App Store Scraper API | ASO, Keyword Search & Top Charts",
        "description": "Search the Apple App Store by keyword, lookup apps by ID, or fetch top charts. Returns ratings, prices, genres, versions and metadata for app market research and ASO.",
        "version": "0.1",
        "x-build-id": "oeAijOoNsptyhwdDp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/plum_spear~aztec-appstore-aso/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-plum_spear-aztec-appstore-aso",
                "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/plum_spear~aztec-appstore-aso/runs": {
            "post": {
                "operationId": "runs-sync-plum_spear-aztec-appstore-aso",
                "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/plum_spear~aztec-appstore-aso/run-sync": {
            "post": {
                "operationId": "run-sync-plum_spear-aztec-appstore-aso",
                "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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "lookup",
                            "charts"
                        ],
                        "type": "string",
                        "description": "search = find apps by keyword; lookup = get apps by ID; charts = top apps ranking.",
                        "default": "search"
                    },
                    "term": {
                        "title": "Search term (search mode)",
                        "type": "string",
                        "description": "Keyword to search for, e.g. 'fitness', 'budget app', a competitor name."
                    },
                    "appIds": {
                        "title": "App IDs (lookup mode)",
                        "type": "array",
                        "description": "List of numeric App Store IDs to fetch metadata for.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "feed": {
                        "title": "Chart feed (charts mode)",
                        "enum": [
                            "topfreeapplications",
                            "toppaidapplications",
                            "topgrossingapplications",
                            "newapplications"
                        ],
                        "type": "string",
                        "description": "Which ranking to fetch.",
                        "default": "topfreeapplications"
                    },
                    "entity": {
                        "title": "Entity type (search mode)",
                        "enum": [
                            "software",
                            "iPadSoftware",
                            "macSoftware",
                            "podcast",
                            "musicTrack",
                            "ebook"
                        ],
                        "type": "string",
                        "description": "What to search: apps, podcasts, music, etc.",
                        "default": "software"
                    },
                    "country": {
                        "title": "Country code",
                        "type": "string",
                        "description": "Two-letter App Store country (us, gb, br, de, ...).",
                        "default": "us"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of results (up to 200).",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
