# Pub.dev Scraper | Dart and Flutter Packages (`parseforge/pub-dev-scraper`) Actor

Pull Dart and Flutter package data from pub.dev including name, version, publisher, pub points, popularity, likes, platforms, dependencies, and license. Track the Flutter ecosystem, audit deps, and build developer tooling for mobile, web, and desktop Dart projects.

- **URL**: https://apify.com/parseforge/pub-dev-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 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.
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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 📦 Pub.dev Flutter Package Scraper

> 🚀 **Export Dart and Flutter package data from pub.dev with quality metrics in seconds.** No API key required. No login needed.

> 🕒 **Last updated:** 2026-05-22 · **📊 17 fields** per record · **Unlimited packages** · **Global coverage**

The Pub.dev Flutter Package Scraper pulls real-time data directly from pub.dev's public API. Each record includes the package name, version, description, publisher, like count, pub points, 30-day download count, SDK constraints, topics, homepage, repository link, and publish date. The dataset is sourced live from pub.dev's official REST API - no scraping of HTML, no stale cache.

Pub.dev is the official package repository for Dart and Flutter, hosting over 50,000 packages. This actor gives you structured, machine-readable access to every package's quality metrics and metadata - ideal for ecosystem analysis, dependency auditing, SDK compatibility research, and package discovery at scale.

---

**Target Audience / Use Cases**

| Who | What they use it for |
|-----|---------------------|
| Flutter developers | Discover top packages by topic, check SDK compatibility |
| DevOps / platform teams | Audit dependencies for license, quality, and pub points |
| Researchers | Analyze the Dart/Flutter ecosystem growth and trends |
| Open source maintainers | Benchmark their packages against competitors |
| Data engineers | Build dashboards tracking package popularity over time |
| Security teams | Monitor packages for version updates and publisher changes |

---

### 📋 What the Pub.dev Scraper does

- Searches pub.dev by keyword (e.g. "http", "state management", "firebase") or browses all packages
- Fetches package detail, score, and publisher in parallel for maximum speed
- Returns 17 structured fields per package including likes, pub points, and 30-day downloads
- Respects free/paid user tiers - free users get a 10-item preview automatically
- Handles pagination automatically to collect any volume of results

> 💡 **Why it matters:** pub.dev has no official export feature. Getting structured package data requires reverse-engineering the API or scraping HTML - this actor does that work for you, giving clean JSON/CSV/Excel output in seconds.

---

### 🎬 Full Demo

🚧 Coming soon - video walkthrough of a full package discovery workflow

---

### ⚙️ Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchQuery` | String | (empty) | Search keyword - e.g. "http", "firebase", "state management". Leave empty to browse top packages. |
| `maxItems` | Integer | 10 | Max packages to collect. Free users: limited to 10. Paid users: up to 1,000,000. |

**Example 1 - Search for HTTP packages:**
```json
{
  "searchQuery": "http",
  "maxItems": 50
}
````

**Example 2 - Browse top 100 packages:**

```json
{
  "maxItems": 100
}
```

> ⚠️ **Good to Know:** Leave `searchQuery` empty to browse the full pub.dev catalog sorted by recent activity. When searching, results are ordered by pub.dev's relevance ranking.

***

### 📊 Output

Each record contains the following fields:

| Field | Type | Description |
|-------|------|-------------|
| 📦 `name` | String | Package name (e.g. "http") |
| 🔗 `url` | String | Direct URL to the package on pub.dev |
| 🏷 `latestVersion` | String | Latest published version string |
| 📝 `description` | String | Package description from pubspec |
| 🏢 `publisher` | String / null | Publisher domain (e.g. "dart.dev", "flutter.dev") |
| ❤️ `likeCount` | Integer | Number of pub.dev likes |
| 🏅 `pubPoints` | Integer | Granted pub points (code quality score) |
| 🔢 `maxPubPoints` | Integer | Maximum possible pub points |
| 📈 `popularityScore` | Float / null | Popularity score 0.0-1.0 (deprecated by pub.dev, use downloadCount30Days) |
| 📥 `downloadCount30Days` | Integer | Downloads in the last 30 days |
| 🏷 `topics` | Array | Topics/tags assigned to the package |
| 🎯 `sdkConstraint` | String | Dart SDK version constraint (e.g. ">=3.0.0 <4.0.0") |
| 🦋 `flutterConstraint` | String / null | Flutter SDK constraint if the package requires Flutter |
| 🌐 `homepage` | String / null | Homepage URL from pubspec |
| 📁 `repository` | String / null | Source repository URL (GitHub, GitLab, etc.) |
| 🕒 `publishedAt` | ISO 8601 | Latest version publish timestamp |
| 🕒 `scrapedAt` | ISO 8601 | When the record was collected |
| ❌ `error` | String / null | Error message if collection failed for this package |

**Sample record:**

```json
{
  "name": "http",
  "url": "https://pub.dev/packages/http",
  "latestVersion": "1.3.0",
  "description": "A composable, Future-based library for making HTTP requests.",
  "publisher": "dart.dev",
  "likeCount": 5200,
  "pubPoints": 160,
  "maxPubPoints": 160,
  "popularityScore": null,
  "downloadCount30Days": 2847391,
  "topics": ["http", "networking"],
  "sdkConstraint": ">=3.0.0 <4.0.0",
  "flutterConstraint": null,
  "homepage": null,
  "repository": "https://github.com/dart-lang/http",
  "publishedAt": "2024-11-12T14:23:00.000Z",
  "scrapedAt": "2026-05-21T01:46:48.000Z",
  "error": null
}
```

***

### ✨ Why choose this Actor

| Feature | This Actor |
|---------|-----------|
| ✅ No API key required | Uses pub.dev's public REST API |
| ✅ Real-time data | Every run fetches live data - no cache |
| ✅ Parallel fetching | Detail + score + publisher fetched simultaneously per package |
| ✅ Publisher identification | Uses the dedicated `/publisher` endpoint for accurate publisher info |
| ✅ SDK constraints | Extracts both Dart and Flutter SDK version ranges |
| ✅ 30-day download metric | More reliable than deprecated popularity score |
| ✅ Full pagination | Collects any volume - from 10 to 1,000,000 packages |
| ✅ CSV / Excel / JSON / XML | All Apify export formats supported |

***

### 📈 How it compares to alternatives

| Approach | Speed | Structure | Scale | Maintenance |
|----------|-------|-----------|-------|-------------|
| This Actor | Fast (API) | Full 17-field schema | 1M+ packages | Maintained |
| Manual browsing | Very slow | No export | 10-20 packages | N/A |
| Custom scripts | Requires setup | DIY | Unlimited | Self-maintained |
| pub.dev UI search | Slow | No export | 20 per page | N/A |

***

### 🚀 How to use

1. [Create a free Apify account](https://console.apify.com/sign-up?fpr=vmoqkp) (includes $5 credit)
2. Open the **Pub.dev Flutter Package Scraper** actor
3. Set `searchQuery` to a keyword or leave empty for top packages
4. Set `maxItems` to the number of packages you want
5. Click **Start** and wait for results (typically seconds)
6. Download your dataset as JSON, CSV, Excel, or XML

***

### 💼 Business use cases

#### Package Discovery and Evaluation

Find the best packages for a specific use case. Search "state management" and compare likes, pub points, and download counts across all competing packages. Filter by SDK constraint to ensure compatibility with your project's Dart version.

#### Dependency Auditing

Export your dependency list and cross-reference against pub.dev data to identify packages with low pub points, no publisher, or infrequent updates. Flag potential security or maintenance risks before they become production problems.

#### Flutter Ecosystem Analysis

Track the growth and health of the Flutter ecosystem over time. Monitor which publishers are most active, which topics are trending, and how download counts evolve across package categories.

#### SDK Compatibility Research

Identify all packages compatible with a specific Dart or Flutter SDK version range. Essential when planning SDK upgrades - know which packages you'll need to update or replace before migrating.

***

### 🔌 Automating Pub.dev Scraper

Connect this actor to your workflow tools:

- **Make (formerly Integromat)** - Schedule weekly package audits, send results to Google Sheets
- **Zapier** - Trigger on new results, create Jira tickets for dependency updates
- **Slack** - Post weekly ecosystem digest to your Flutter dev channel
- **Google Sheets** - Live dashboard of your monitored packages
- **Webhooks** - Integrate with any internal tooling via Apify webhooks

***

### 🌟 Beyond business use cases

#### Research and Academia

Study the evolution of the Dart/Flutter ecosystem. Analyze how package quality metrics correlate with adoption rates. Track the rise and fall of competing solutions to common problems.

#### Open Source Contribution

Identify underserved niches in the Flutter ecosystem. Find packages with high like counts but low pub points - good candidates for forks or improvements.

#### Learning and Experimentation

Explore how top-rated packages are structured. Compare SDK constraints across packages to understand Dart versioning practices in the community.

#### Community and Content Creation

Generate data-driven articles about the Flutter ecosystem. "Top 50 Flutter packages by downloads this month" becomes trivial with this actor.

***

### 🤖 Ask an AI assistant about this scraper

You can ask an AI assistant things like:

- "Which packages have more than 1000 likes and a Flutter constraint?"
- "Show me all packages published by dart.dev"
- "Compare pub points across packages with the 'networking' topic"
- "Find packages with sdkConstraint compatible with Dart 3.0"

Load your dataset export into any AI chat tool and start exploring.

***

### ❓ Frequently Asked Questions

**❓ Does this require authentication?**
No. pub.dev's API is fully public. No API key, no login, no rate limit headers needed.

**❓ How fresh is the data?**
Every run fetches live data from pub.dev's API. Results are as fresh as pub.dev itself.

**❓ Can I search for multiple keywords?**
Currently the actor accepts one search query per run. For multiple keywords, start multiple runs or use Apify's schedule feature.

**❓ Why is popularityScore null for some packages?**
pub.dev deprecated the `popularityScore` field in their API. Use `downloadCount30Days` instead - it's a more reliable indicator of actual usage.

**❓ What does publisher being null mean?**
Packages without a verified publisher show null. The package may still be active and high quality - publisher verification is optional on pub.dev.

**❓ How many packages can I collect?**
Free users are limited to 10 packages per run (preview). Paid users can collect up to 1,000,000 packages.

**❓ Can I filter by SDK version?**
Not directly in the input - collect all results and filter by `sdkConstraint` in your spreadsheet or data pipeline.

**❓ What's the difference between pubPoints and maxPubPoints?**
`pubPoints` is the score actually granted (0-160). `maxPubPoints` is the ceiling (usually 160). High-quality packages score 140-160.

**❓ Does the actor follow pagination automatically?**
Yes. It fetches page after page until `maxItems` is reached or all results are exhausted.

**❓ Can I run this on a schedule?**
Yes - use Apify's built-in scheduler to run weekly ecosystem snapshots automatically.

**❓ Is this actor maintained?**
Yes. ParseForge monitors pub.dev's API for changes and updates the actor accordingly.

**❓ What export formats are available?**
JSON, CSV, Excel (XLSX), and XML - all standard Apify dataset export formats.

***

### 🔌 Integrate with any app

This actor works with every tool that connects to Apify:

**Spreadsheets:** Google Sheets, Microsoft Excel, Airtable
**Automation:** Make, Zapier, n8n, Activepieces
**Databases:** PostgreSQL, MySQL, MongoDB, BigQuery, Snowflake
**BI Tools:** Tableau, Power BI, Looker, Metabase
**Dev Tools:** REST API, Python client, JavaScript client, CLI
**Notifications:** Slack, Email, Discord, PagerDuty (via webhooks)

***

### 🔗 Recommended Actors

| Actor | Description |
|-------|-------------|
| [GitHub Repositories Scraper](https://apify.com/parseforge) | Scrape GitHub repo metadata, stars, and topics |
| [npm Package Scraper](https://apify.com/parseforge) | Extract npm package stats and dependency data |
| [PyPI Package Scraper](https://apify.com/parseforge) | Python ecosystem package metadata and download counts |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) to find scrapers for 100+ platforms - all maintained, all real-time.

***

**Disclaimer:** This actor uses pub.dev's public REST API in accordance with their terms of service. All data is publicly available without authentication. ParseForge is not affiliated with pub.dev, the Dart team, or Google. Use this data responsibly and in compliance with applicable laws.

# Actor input Schema

## `searchQuery` (type: `string`):

Search packages by keyword (e.g. 'http', 'state management', 'firebase'). Leave empty to browse top packages.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "maxItems": 10
}
```

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/pub-dev-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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/pub-dev-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 '{
  "maxItems": 10
}' |
apify call parseforge/pub-dev-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Pub.dev Scraper | Dart and Flutter Packages",
        "description": "Pull Dart and Flutter package data from pub.dev including name, version, publisher, pub points, popularity, likes, platforms, dependencies, and license. Track the Flutter ecosystem, audit deps, and build developer tooling for mobile, web, and desktop Dart projects.",
        "version": "0.1",
        "x-build-id": "HooVFpeZsg9RVUViB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~pub-dev-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-pub-dev-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/parseforge~pub-dev-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-pub-dev-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/parseforge~pub-dev-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-pub-dev-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": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search packages by keyword (e.g. 'http', 'state management', 'firebase'). Leave empty to browse top packages."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
