# Maven Central Scraper | Java Package Metadata (`parseforge/maven-central-scraper`) Actor

Extract Java and Kotlin artifacts from Maven Central including group ID, artifact ID, version history, dependencies, publisher, packaging, and license info. Audit JVM dependencies, track ecosystem trends, or feed developer security, SBOM, and intelligence tools at scale.

- **URL**: https://apify.com/parseforge/maven-central-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)

## ☕ Maven Central Repository Scraper

> 🚀 **Export Java and JVM packages from Maven Central in seconds.** Search by keyword, filter by groupId, and download artifact metadata - groupId, artifactId, version, packaging, version history, and timestamps - without touching a browser or writing a single parser.

> 🕒 **Last updated:** 2026-05-21 · **📊 9 fields** per record · **☕ 500,000+ artifacts** · **🌐 Maven Central** · **🔓 No auth required**

The **Maven Central Scraper** queries the official Maven Central Solr search API and returns structured metadata for every matching Java and JVM package. Each record includes the full Maven coordinates (groupId, artifactId, latestVersion), packaging type, version count, repository origin, and last-updated timestamp.

Maven Central is the primary public repository for JVM ecosystem packages - the definitive source for Spring, Jackson, Hibernate, Guava, Apache Commons, and hundreds of thousands of other open-source libraries. This Actor makes the entire catalog searchable and downloadable as JSON, CSV, or Excel without any setup.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Java developers, security teams, DevOps engineers, data analysts, OSS researchers, enterprise architects | Dependency auditing, supply chain analysis, ecosystem research, package discovery, build tool integration, license compliance |

---

### 📋 What the Maven Central Scraper does

Five search workflows in a single run:

- 🔍 **Keyword search.** Find all packages matching a library name, technology, or concept (e.g. `spring`, `jackson`, `logging`, `kafka`).
- 🏷 **GroupId filter.** Restrict to a specific Maven group like `org.springframework`, `com.fasterxml.jackson`, or `org.apache.commons`.
- 🔀 **Combined search.** Search by keyword within a specific groupId for targeted results.
- 📦 **Full catalog browse.** Leave both fields empty to iterate through Maven Central's entire public artifact index.
- 📊 **Version history.** Every record includes `versionCount` - the total number of published versions for that artifact.

Each record includes Maven coordinates, latest version, packaging type (jar, pom, bundle, aar), version count, repository ID, and the ISO timestamp of the last published version.

> 💡 **Why it matters:** auditing your dependency tree means knowing what is actually published, when it was last updated, and how actively it is maintained. Building this yourself means maintaining a Solr client, handling pagination edge cases, and refreshing by hand. This Actor skips all of that.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td>searchQuery</td><td>string</td><td>""</td><td>Keyword search (e.g. "spring", "jackson", "logging"). Empty = browse all packages.</td></tr>
<tr><td>groupId</td><td>string</td><td>""</td><td>Filter by Maven groupId (e.g. "org.springframework"). Empty = all groups.</td></tr>
<tr><td>maxItems</td><td>integer</td><td>10</td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
</tbody>
</table>

**Example: all Spring Framework packages.**

```json
{
    "groupId": "org.springframework",
    "maxItems": 100
}
````

**Example: top Jackson packages.**

```json
{
    "searchQuery": "jackson",
    "maxItems": 50
}
```

> ⚠️ **Good to Know:** Maven Central's Solr index is updated continuously as new versions are published. `versionCount` reflects all historically published versions including snapshots promoted to release. The `latestVersion` field shows the most recent stable release at time of scraping.

***

### 📊 Output

Each record contains 9 fields:

| Field | Type | Description |
|---|---|---|
| 🏷 `groupId` | string | Maven groupId (e.g. `org.springframework`) |
| 📦 `artifactId` | string | Maven artifactId (e.g. `spring-core`) |
| 🔗 `url` | string | Direct link to the artifact on search.maven.org |
| 🏷 `latestVersion` | string | Most recently published version |
| 📁 `packaging` | string | Artifact type: jar, pom, bundle, aar, etc. |
| 🔢 `versionCount` | integer | Total number of published versions |
| 🗄 `repositoryId` | string | Repository origin (almost always `central`) |
| 📅 `lastUpdated` | string | ISO 8601 timestamp of the last published version |
| 🕒 `scrapedAt` | string | ISO 8601 timestamp when the record was collected |

**Sample records (real output):**

```json
[
  {
    "groupId": "org.apache.karaf.features",
    "artifactId": "spring",
    "url": "https://search.maven.org/artifact/org.apache.karaf.features/spring",
    "latestVersion": "4.4.11",
    "packaging": "pom",
    "versionCount": 77,
    "repositoryId": "central",
    "lastUpdated": "2026-04-27T13:48:38.000Z",
    "scrapedAt": "2026-05-22T01:45:56.208Z",
    "error": null
  },
  {
    "groupId": "au.com.dius.pact.provider",
    "artifactId": "spring",
    "url": "https://search.maven.org/artifact/au.com.dius.pact.provider/spring",
    "latestVersion": "4.7.0-beta.1",
    "packaging": "jar",
    "versionCount": 152,
    "repositoryId": "central",
    "lastUpdated": "2025-05-22T23:43:20.428Z",
    "scrapedAt": "2026-05-22T01:45:56.208Z",
    "error": null
  },
  {
    "groupId": "community.flock.wirespec.integration",
    "artifactId": "spring",
    "url": "https://search.maven.org/artifact/community.flock.wirespec.integration/spring",
    "latestVersion": "0.14.11",
    "packaging": "jar",
    "versionCount": 22,
    "repositoryId": "central",
    "lastUpdated": "2025-05-09T07:17:19.000Z",
    "scrapedAt": "2026-05-22T01:45:56.208Z",
    "error": null
  }
]
```

***

### ✨ Why choose this Actor

| Feature | Benefit |
|---|---|
| 🔓 No auth required | Works out of the box - no API keys, no Maven account needed |
| ⚡ Direct Solr API | Queries Maven Central's native search engine for fast, accurate results |
| 🔍 Flexible search | Keyword search, groupId filter, or both combined |
| 📄 Clean JSON output | Ready to load into BigQuery, Postgres, or any BI tool |
| 🔢 Version history | `versionCount` reveals how actively a library is maintained |
| 🕒 Timestamps | `lastUpdated` shows exactly when each artifact was last published |
| 📦 All packaging types | Covers jar, pom, bundle, aar, and all other Maven packaging formats |
| 🌐 Full catalog | Access to 500,000+ artifacts across the entire JVM ecosystem |

***

### 📈 How it compares to alternatives

| Approach | Setup | Maintenance | Data freshness |
|---|---|---|---|
| ☕ **This Actor** | Zero - click Run | Automatic | Real-time from Solr |
| Manual curl scripts | Write pagination logic | Break on API changes | Manual refresh |
| Maven REST API | Custom client code | Maintain yourself | Manual refresh |
| Third-party package DBs | Varies | Varies | Often delayed |

***

### 🚀 How to use

1. [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) on Apify.
2. Open the **Maven Central Scraper** Actor page.
3. Enter a `searchQuery` (e.g. `spring`) or `groupId` (e.g. `org.springframework`).
4. Set `maxItems` - free plan gives 10, paid plan up to 1,000,000.
5. Click **Run** and wait a few seconds.
6. Download your dataset as JSON, CSV, Excel, or XML.

***

### 💼 Business use cases

#### Dependency auditing and security

Security and DevOps teams use Maven Central data to audit which versions of a library are published, identify abandoned packages (low `versionCount` or old `lastUpdated`), and flag dependencies that have not received updates in over 12 months.

#### Supply chain analysis

Engineering leads can map the entire dependency graph of a technology stack by searching groupIds like `org.springframework`, `com.google.guava`, or `io.netty`. Knowing how many versions exist and when they were last updated surfaces maintenance risk before it becomes a production incident.

#### Open-source ecosystem research

Academic researchers and analyst firms use Maven Central data to study Java ecosystem trends - which frameworks are gaining adoption, which are declining, and how publishing velocity correlates with community health metrics.

#### Build tool and IDE integration

Platform teams can feed Maven Central metadata into internal developer portals, Renovate/Dependabot dashboards, or package recommendation engines to help developers discover well-maintained alternatives to deprecated libraries.

***

### 🔌 Automating Maven Central Scraper

Connect this Actor to thousands of tools without writing code:

- **Make (Integromat)** - Trigger a run on schedule, send results to Google Sheets or Slack.
- **Zapier** - Connect to your ticketing system or internal wiki whenever new packages are found.
- **Slack** - Pipe weekly dependency audit summaries directly to your engineering channel.
- **Apify Scheduler** - Run daily or weekly to track ecosystem changes over time.
- **Webhooks** - POST results to any internal endpoint when the run completes.

***

### 🌟 Beyond business use cases

#### Research and academia

Study how the JVM ecosystem has evolved by tracking version counts and publication timestamps across thousands of libraries. Identify periods of high activity, framework migrations, and the lifecycle of open-source Java projects.

#### Non-profit and open source

Open-source maintainers can audit competing implementations of a library concept, identify gaps in the ecosystem, and ensure their artifact metadata is consistent with similar packages.

#### Education and training

Java instructors and bootcamp curricula can use real Maven Central data to teach students about dependency management, semantic versioning, and the structure of the JVM package ecosystem without setting up a local Maven repository.

#### Experimentation and prototyping

Data engineers can prototype dependency graph visualizations, build custom package search UIs, or create internal developer tooling using live Maven Central data without building a Solr integration from scratch.

***

### 🤖 Ask an AI assistant about this scraper

Not sure which inputs to use? Paste this into any AI assistant:

> "I want to scrape Maven Central packages using the ParseForge Maven Central Scraper on Apify. The inputs are: `searchQuery` (keyword), `groupId` (Maven group filter), and `maxItems`. Help me build an input for \[your use case]."

***

### ❓ Frequently Asked Questions

**❓ Do I need a Maven account or API key?**
No. Maven Central's search API is fully public. This Actor works without any credentials.

**❓ How many packages does Maven Central have?**
Maven Central hosts over 500,000 unique artifacts from more than 50,000 groupIds. The index is updated in near-real-time as new versions are published.

**❓ What does `versionCount` mean?**
It is the total number of distinct versions published for that artifact in Maven Central, including all historical releases.

**❓ Can I filter by packaging type (jar vs pom)?**
The current version returns all packaging types. The `packaging` field in the output lets you filter results client-side after downloading.

**❓ How fresh is the data?**
Results come directly from Maven Central's live Solr index. The `lastUpdated` field reflects the exact timestamp of the most recently published version.

**❓ Can I scrape an entire groupId like org.springframework?**
Yes. Set `groupId` to `org.springframework` (or any other group) and set `maxItems` to however many you need. The scraper will paginate through all matching artifacts.

**❓ What is the difference between groupId and searchQuery?**
`groupId` is an exact Maven namespace match (e.g. only artifacts in `com.fasterxml.jackson`). `searchQuery` is a full-text keyword search across artifact names and descriptions. You can use both together for narrower results.

**❓ Does this scrape private repositories?**
No. This Actor only queries Maven Central's public index. Private Nexus, Artifactory, or GitHub Packages repositories are not accessible.

**❓ How do I get all packages from a specific organization?**
Use the `groupId` field with the organization's Maven namespace. For example, `com.google.guava` returns all Guava artifacts, while `com.google` would return all Google-published artifacts.

**❓ Is there a rate limit?**
Maven Central's public API is rate-limited per IP. This Actor includes a 300ms delay between pages to stay within polite limits. For large extractions, paid Apify plans include proxy rotation that further reduces throttling risk.

**❓ Can I schedule regular runs to track ecosystem changes?**
Yes. Use Apify Scheduler to run this Actor daily or weekly and compare datasets over time to track new releases, abandoned packages, and version trends.

***

### 🔌 Integrate with any app

Download your dataset in any format and connect to:

JSON - CSV - Excel - XML - Google Sheets - BigQuery - Snowflake - PostgreSQL - MySQL - MongoDB - Airtable - Notion - Zapier - Make - Slack - Microsoft Teams - Power BI - Tableau - Looker - dbt - Airflow - Prefect

***

### 🔗 Recommended Actors

| Actor | Description |
|---|---|
| [PyPI Scraper](https://apify.com/parseforge/pypi-scraper) | Scrape Python packages from the PyPI registry |
| [NPM Registry Scraper](https://apify.com/parseforge/npm-registry-scraper) | Extract JavaScript packages from the npm registry |
| [NuGet Scraper](https://apify.com/parseforge/nuget-scraper) | Download .NET package metadata from NuGet.org |
| [Crates.io Scraper](https://apify.com/parseforge/crates-io-scraper) | Scrape Rust packages from crates.io |
| [GitHub Trending Scraper](https://apify.com/parseforge/github-trending-scraper) | Track trending repositories across programming languages |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for scrapers covering package registries, developer tools, job boards, and public datasets.

***

*This Actor queries Maven Central's public search API. All data is publicly available at search.maven.org. This tool is intended for lawful research, analysis, and development purposes only.*

# Actor input Schema

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

Search by keyword (e.g. 'spring', 'jackson', 'logging'). Leave empty to browse all packages.

## `groupId` (type: `string`):

Filter by Maven groupId (e.g. 'org.springframework', 'com.fasterxml.jackson'). Leave empty for all groups.

## `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/maven-central-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/maven-central-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/maven-central-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Maven Central Scraper | Java Package Metadata",
        "description": "Extract Java and Kotlin artifacts from Maven Central including group ID, artifact ID, version history, dependencies, publisher, packaging, and license info. Audit JVM dependencies, track ecosystem trends, or feed developer security, SBOM, and intelligence tools at scale.",
        "version": "0.1",
        "x-build-id": "OHeh55FDEcpnRMcl2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~maven-central-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-maven-central-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~maven-central-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-maven-central-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~maven-central-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-maven-central-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 by keyword (e.g. 'spring', 'jackson', 'logging'). Leave empty to browse all packages."
                    },
                    "groupId": {
                        "title": "Group ID Filter",
                        "type": "string",
                        "description": "Filter by Maven groupId (e.g. 'org.springframework', 'com.fasterxml.jackson'). Leave empty for all groups."
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
