# Shopify App Store Scraper (`fetch_cat/shopify-app-store-scraper`) Actor

Extract public Shopify App Store app listings with pricing, ratings, developer metadata, categories, features, integrations, and related apps.

- **URL**: https://apify.com/fetch\_cat/shopify-app-store-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.07 / 1,000 result extracteds

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

## Shopify App Store Scraper

Extract public Shopify App Store app listings with pricing summaries, ratings, developer metadata, categories, features, integrations, languages, icons, and related apps.

Use this actor when you need a repeatable dataset of Shopify ecosystem apps for competitor tracking, category research, prospecting, market maps, investment research, or ecommerce SaaS analysis.

### What does Shopify App Store Scraper do?

Shopify App Store Scraper turns Shopify App Store app pages into clean structured records.

It can start from direct app URLs, app handles, or public category pages.

Each saved row represents one app listing.

The actor is designed for practical market research workflows where teams need data they can export, filter, join, and refresh.

Typical runs collect app names, descriptions, developers, pricing summaries, star ratings, review counts, app categories, feature tags, integrations, language support, icons, and related app references.

### Who is it for?

Shopify agencies use it to map app partners and recommended tools.

Ecommerce SaaS teams use it to monitor competitors and adjacent categories.

App developers use it to compare positioning, ratings, and pricing messages.

Investors use it to build market maps of the Shopify app ecosystem.

Growth teams use it to identify partnership and integration opportunities.

Data teams use it to refresh Shopify App Store intelligence on a schedule.

### Why use it?

✅ Convert public app pages into consistent rows.

✅ Monitor competitors without manual copy-paste.

✅ Track pricing summaries and review counts over time.

✅ Discover related apps around a category or seed app.

✅ Export results to JSON, CSV, Excel, Google Sheets, or your data warehouse.

✅ Run once for quick research or schedule recurring monitoring.

### What data can you extract?

| Field | Description |
| --- | --- |
| `url` | Shopify App Store listing URL |
| `handle` | App handle from the listing URL |
| `name` | App name |
| `description` | Public app description |
| `developerName` | Developer or brand name |
| `developerWebsite` | Developer website when available |
| `iconUrl` | App icon image URL |
| `pricingSummary` | Public pricing summary such as free plan availability |
| `ratingValue` | Aggregate star rating |
| `ratingCount` | Number of ratings or reviews in the aggregate rating |
| `categories` | Shopify App Store category labels |
| `features` | Public feature or taxonomy labels when available |
| `languages` | Supported languages listed on the app page |
| `worksWith` | Integrations and Shopify surfaces listed on the app page |
| `relatedApps` | Related app cards with handle, name, URL, and icon |
| `scrapedAt` | Timestamp when the row was collected |

### How much does it cost to scrape Shopify App Store apps?

This actor uses pay-per-result pricing.

A small start fee is charged once per run.

A per-item event is charged for each Shopify app listing saved to the dataset.

Current configured pricing is $0.005 to start a run plus tiered pay-per-result pricing per saved Shopify app listing. The Free tier per-result price is $0.00013005, Bronze is $0.00011309, Silver is $0.000088208, Gold is $0.000067852, Platinum is $0.000045235, and Diamond is $0.000031664. For example, a 100-item run on the Free tier is about $0.0181 before any Apify platform plan effects.

You can control spend with the `maxItems` input.

For a small sample, set `maxItems` to 10.

For category research, raise `maxItems` to the number of app listings you want.

### How to use Shopify App Store Scraper

1. Open the actor on Apify.

2. Add one or more Shopify App Store app URLs.

3. Optionally add app handles such as `judgeme`.

4. Optionally add category URLs to discover apps from a category.

5. Set `maxItems` to the maximum number of app listings you want.

6. Choose whether to follow related app cards.

7. Start the run.

8. Export the dataset in your preferred format.

### Input options

#### App URLs

Use direct listing URLs when you already know the apps you want.

Example:

```json
{
  "startUrls": [
    { "url": "https://apps.shopify.com/judgeme" },
    { "url": "https://apps.shopify.com/klaviyo-email-marketing" }
  ],
  "maxItems": 10,
  "includeRelatedApps": true
}
````

#### App handles

Use handles when you store app identifiers in your own system.

Example:

```json
{
  "handles": ["judgeme", "klaviyo-email-marketing"],
  "maxItems": 10
}
```

#### Category URLs

Use public category URLs when you want discovery.

Example:

```json
{
  "categoryUrls": [
    { "url": "https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews" }
  ],
  "maxItems": 25,
  "includeRelatedApps": true
}
```

### Output example

```json
{
  "url": "https://apps.shopify.com/judgeme",
  "handle": "judgeme",
  "name": "Judge.me Product Reviews App",
  "developerName": "Judge.me",
  "pricingSummary": "Free plan available",
  "ratingValue": 5,
  "ratingCount": 40545,
  "categories": ["Product reviews"],
  "relatedApps": [
    {
      "handle": "yotpo-social-reviews",
      "name": "Yotpo: Product Reviews App",
      "url": "https://apps.shopify.com/yotpo-social-reviews"
    }
  ],
  "scrapedAt": "2026-06-22T00:00:00.000Z"
}
```

### Tips for better results

Use direct app URLs for the most precise runs.

Use category URLs when you want discovery rather than a known list.

Keep `maxItems` low for your first run.

Turn on related apps when you want to expand from seed competitors.

Turn off related apps when you only want the exact apps you provided.

Schedule recurring runs if you want to track rating counts or pricing summaries over time.

### Common workflows

#### Competitor monitoring

Provide your competitor handles and schedule the actor weekly.

Track rating count, pricing summaries, category labels, and related apps.

#### Category mapping

Start from a Shopify App Store category URL.

Collect app names, developers, ratings, and positioning fields.

Export to a spreadsheet for market mapping.

#### Partnership prospecting

Start from an app in your target ecosystem.

Enable related apps.

Use developer names and websites to qualify potential partners.

#### Investment research

Run category samples across multiple Shopify App Store categories.

Compare review volume, pricing posture, and app clusters.

### Integrations

Send results to Google Sheets for lightweight research.

Export CSV for spreadsheet analysis.

Use JSON for data pipelines.

Connect Apify datasets to Make, Zapier, or webhooks.

Schedule runs and pull datasets into a warehouse.

Combine results with product, review, or traffic datasets for deeper market intelligence.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('fetch_cat/shopify-app-store-scraper').call({
  handles: ['judgeme'],
  maxItems: 10,
  includeRelatedApps: true
});

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

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])

run = client.actor('fetch_cat/shopify-app-store-scraper').call(run_input={
    'handles': ['judgeme'],
    'maxItems': 10,
    'includeRelatedApps': True,
})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~shopify-app-store-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"handles":["judgeme"],"maxItems":10,"includeRelatedApps":true}'
```

### MCP usage

You can use this actor through Apify MCP from tools that support MCP.

Use an MCP URL scoped to this actor:

```text
https://mcp.apify.com/?tools=fetch_cat/shopify-app-store-scraper
```

Claude Code setup:

```bash
claude mcp add apify-shopify-app-store "https://mcp.apify.com/?tools=fetch_cat/shopify-app-store-scraper"
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-shopify-app-store": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/shopify-app-store-scraper"
    }
  }
}
```

Example prompts:

- "Scrape the Shopify App Store listing for Judge.me and summarize its pricing and rating."

- "Collect 25 related apps around this Shopify reviews app and create a competitor table."

- "Compare developer names, categories, and pricing summaries for these Shopify app handles."

### Scheduling

Use Apify schedules to run the actor daily, weekly, or monthly.

Scheduled runs are useful for tracking rating counts, category changes, or pricing copy changes.

Keep the same input and export the dataset after every run.

### Data quality notes

The actor saves public data visible on Shopify App Store listing pages.

Some optional fields may be empty when Shopify does not expose them on a specific listing.

Rating and review counts can change over time.

Category and related-app sections may vary by app.

### Limits

The actor is not intended to access private Shopify merchant data.

It does not log into Shopify.

It does not scrape paid dashboards or app admin screens.

It does not guarantee that every category page exposes the same number of app cards.

Use `maxItems` to keep runs bounded.

### Legality and responsible use

This actor collects publicly available information from public Shopify App Store pages.

You are responsible for using exported data in compliance with applicable laws, platform terms, and your internal policies.

Avoid collecting or processing data in ways that violate privacy, intellectual property, or contractual obligations.

If you are unsure, consult your legal team before using scraped data commercially.

### Troubleshooting

#### Why did I get fewer apps than `maxItems`?

The source page may expose fewer app cards than requested, or duplicate related apps may have been skipped.

Try adding more seed app URLs or category URLs.

#### Why is a field empty?

Some Shopify App Store listings do not publish every field. Optional fields such as developer website, features, languages, or integrations may be missing on some apps.

#### How do I scrape only my exact input apps?

Set `includeRelatedApps` to `false`.

The actor will save only the app URLs and handles you provide, up to `maxItems`.

### Related scrapers

You may also find these Apify actors useful:

- https://apify.com/fetch\_cat/shopify-products-scraper

- https://apify.com/fetch\_cat/google-search-results-scraper

- https://apify.com/fetch\_cat/website-content-crawler-lite

### FAQ

#### Can I scrape Shopify App Store reviews?

This first version captures aggregate rating and review count. Full review-text extraction is a separate workflow and may be added later.

#### Can I scrape by keyword search?

Use app URLs, handles, category URLs, or related-app discovery for this version. Keyword search can be added in a later release if it remains stable.

#### Can I use the actor for ongoing monitoring?

Yes. Save your input, schedule recurring runs, and compare exported datasets over time.

#### Does this require a Shopify account?

No. The actor is designed for public Shopify App Store listing pages.

#### What export formats are supported?

Apify datasets support JSON, JSONL, CSV, Excel, XML, RSS, and HTML table exports.

### Support

If a public app page stops returning data or you need a new field, open an issue on the actor page with a sample input and expected output.

# Actor input Schema

## `startUrls` (type: `array`):

Shopify App Store app listing URLs to scrape, such as https://apps.shopify.com/judgeme.

## `handles` (type: `array`):

Optional Shopify App Store handles without the domain, for example judgeme or klaviyo-email-marketing.

## `categoryUrls` (type: `array`):

Optional public Shopify App Store category URLs. The actor discovers app cards from these pages and scrapes the app listings it finds.

## `maxItems` (type: `integer`):

Maximum number of app listings to save. Keep low for test runs and raise for category discovery.

## `includeRelatedApps` (type: `boolean`):

When enabled, related app cards from listing pages are added to the crawl queue until Maximum apps is reached.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://apps.shopify.com/judgeme"
    },
    {
      "url": "https://apps.shopify.com/klaviyo-email-marketing"
    }
  ],
  "handles": [
    "judgeme"
  ],
  "categoryUrls": [
    {
      "url": "https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews"
    }
  ],
  "maxItems": 10,
  "includeRelatedApps": true
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://apps.shopify.com/judgeme"
        },
        {
            "url": "https://apps.shopify.com/klaviyo-email-marketing"
        }
    ],
    "handles": [
        "judgeme"
    ],
    "categoryUrls": [
        {
            "url": "https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews"
        }
    ],
    "maxItems": 10,
    "includeRelatedApps": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/shopify-app-store-scraper").call(input);

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "startUrls": [
        { "url": "https://apps.shopify.com/judgeme" },
        { "url": "https://apps.shopify.com/klaviyo-email-marketing" },
    ],
    "handles": ["judgeme"],
    "categoryUrls": [{ "url": "https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews" }],
    "maxItems": 10,
    "includeRelatedApps": True,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/shopify-app-store-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://apps.shopify.com/judgeme"
    },
    {
      "url": "https://apps.shopify.com/klaviyo-email-marketing"
    }
  ],
  "handles": [
    "judgeme"
  ],
  "categoryUrls": [
    {
      "url": "https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews"
    }
  ],
  "maxItems": 10,
  "includeRelatedApps": true
}' |
apify call fetch_cat/shopify-app-store-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopify App Store Scraper",
        "description": "Extract public Shopify App Store app listings with pricing, ratings, developer metadata, categories, features, integrations, and related apps.",
        "version": "0.1",
        "x-build-id": "eHvhV1saHfDStc5zM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~shopify-app-store-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-shopify-app-store-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/fetch_cat~shopify-app-store-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-shopify-app-store-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/fetch_cat~shopify-app-store-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-shopify-app-store-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "App URLs",
                        "type": "array",
                        "description": "Shopify App Store app listing URLs to scrape, such as https://apps.shopify.com/judgeme.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "handles": {
                        "title": "App handles",
                        "type": "array",
                        "description": "Optional Shopify App Store handles without the domain, for example judgeme or klaviyo-email-marketing.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "categoryUrls": {
                        "title": "Category URLs",
                        "type": "array",
                        "description": "Optional public Shopify App Store category URLs. The actor discovers app cards from these pages and scrapes the app listings it finds.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum apps",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of app listings to save. Keep low for test runs and raise for category discovery.",
                        "default": 10
                    },
                    "includeRelatedApps": {
                        "title": "Follow related apps",
                        "type": "boolean",
                        "description": "When enabled, related app cards from listing pages are added to the crawl queue until Maximum apps is reached.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
