# MusicBrainz Scraper — Artists, Releases & Recordings (`logiover/musicbrainz-scraper`) Actor

Scrape MusicBrainz by artist, release, recording, or label. Extract id, name, type, country, tags, score, life-span, and area. No API key, no login. Bulk pagination up to thousands of results.

- **URL**: https://apify.com/logiover/musicbrainz-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## MusicBrainz Scraper — Artists, Releases, Recordings & Labels

Extract open music metadata from MusicBrainz with no API key required — search artists, releases, recordings, and labels at scale, with full pagination and structured output.

### What does MusicBrainz Scraper do?

MusicBrainz Scraper connects directly to the official MusicBrainz JSON Web Service (`https://musicbrainz.org/ws/2/`) — a fully open, key-free music metadata API. You choose a mode (artist, release, recording, or label), provide a search query, and the actor paginates through results in batches of up to 100, respecting MusicBrainz's ~1 req/sec rate limit. Each result is normalized into a clean flat object: ID, name/title, type, country, area, begin/end dates, disambiguation, relevance score, and tags. The actor handles transient errors with automatic retries and exponential back-off. A single run can retrieve hundreds to thousands of entries — ideal for bulk music research, catalog enrichment, or analytics pipelines. No credentials, no login, no browser — pure API.

### Who is it for?

- **Music researchers and academics** who need structured discography or artist data in bulk for analysis.
- **Music streaming and playlist apps** that need to enrich track or artist metadata from a trusted open registry.
- **Data journalists** covering music industry trends, genre evolution, or country-level artist distributions.
- **Record label teams** auditing catalog coverage and cross-referencing MusicBrainz IDs with internal databases.
- **Developers and data engineers** building music knowledge graphs, recommendation systems, or tagging pipelines.

### Use cases

- Build a complete discography database for a genre by searching releases with genre-tagged queries.
- Cross-reference your internal artist catalog with MusicBrainz IDs for deduplication and canonical linking.
- Extract all labels registered to a specific country for market research or licensing analysis.
- Collect artist life-span and area data to map music scenes geographically over time.
- Automate metadata enrichment for a music library by searching recordings and pulling canonical titles and dates.

### Why use MusicBrainz Scraper?

- **Completely keyless** — no API key, no account, no login required from you or your users.
- **12 structured output fields** — id, name, type, country, score, area, beginDate, endDate, disambiguation, tags, mode, url.
- **Bulk pagination** — retrieve up to 10,000 results per run via automatic offset pagination.
- **Four entity modes** — artists, releases, recordings, and labels all in one actor.
- **Export anywhere** — download results as CSV, JSON, Excel, or JSONL directly from Apify.
- **Pay-per-result pricing** — you only pay for the data rows you actually retrieve.

### What data can you extract?

The actor extracts the following fields for every result:

| Field | Type | Description |
|---|---|---|
| `id` | string | MusicBrainz unique identifier (MBID) |
| `name` | string | Artist name, release title, recording title, or label name |
| `type` | string | Entity type (e.g. "Person", "Group", "Album", "Single") |
| `country` | string | ISO country code (e.g. "GB", "US", "JP") |
| `disambiguation` | string | Parenthetical note to distinguish entities with the same name |
| `score` | string | Relevance match score (0–100) returned by MusicBrainz search |
| `area` | string | Geographic area associated with the entity |
| `beginDate` | string | Formation/release/founded date (YYYY or YYYY-MM-DD) |
| `endDate` | string | Dissolution/ended date if applicable |
| `tags` | string | Comma-separated genre/style tags from the community |
| `mode` | string | Which search mode was used (artistSearch, releaseSearch, etc.) |
| `url` | string | Direct MusicBrainz URL for the entity |

**Example JSON output (artist):**

```json
{
  "id": "a74b1b7f-71a5-4011-9441-d0b5e4122711",
  "name": "Radiohead",
  "type": "Group",
  "country": "GB",
  "disambiguation": "",
  "score": "100",
  "area": "United Kingdom",
  "beginDate": "1985",
  "endDate": null,
  "tags": "rock, alternative rock, art rock, post-rock, electronic",
  "mode": "artistSearch",
  "url": "https://musicbrainz.org/artist/a74b1b7f-71a5-4011-9441-d0b5e4122711"
}
````

### How to use

#### Option A — Search by artist name

1. Open the actor in Apify Console.
2. Set **mode** to `artistSearch`.
3. Enter the artist name in **query** (e.g. "Radiohead", "Nina Simone", "Daft Punk").
4. Set **maxResults** to however many you need (default 100, max 10000).
5. Click **Start** and download results as JSON or CSV.

**Input JSON:**

```json
{
  "mode": "artistSearch",
  "query": "Radiohead",
  "maxResults": 100
}
```

#### Option B — Search releases, recordings, or labels

1. Set **mode** to one of: `releaseSearch`, `recordingSearch`, or `labelSearch`.
2. Enter a descriptive query — can include album name, artist clause, year, etc.
3. MusicBrainz supports Lucene-style field queries: e.g. `artist:Radiohead AND type:album`.
4. Increase **maxResults** for bulk extraction.

**Input JSON:**

```json
{
  "mode": "releaseSearch",
  "query": "OK Computer",
  "maxResults": 200
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `artistSearch` | Entity to search: `artistSearch`, `releaseSearch`, `recordingSearch`, `labelSearch` |
| `query` | string | — | Free-text or Lucene-style search query |
| `maxResults` | integer | 100 | Max rows to collect (1–10000) |
| `proxyConfiguration` | object | — | Optional Apify proxy settings |

**Full input JSON:**

```json
{
  "mode": "artistSearch",
  "query": "Beatles",
  "maxResults": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

### Output example

```json
{
  "id": "b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d",
  "name": "The Beatles",
  "type": "Group",
  "country": "GB",
  "disambiguation": "",
  "score": "100",
  "area": "United Kingdom",
  "beginDate": "1960",
  "endDate": "1970",
  "tags": "rock, pop, british invasion, classic rock, merseybeat",
  "mode": "artistSearch",
  "url": "https://musicbrainz.org/artist/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d"
}
```

### Tips for best results

- **Use Lucene field syntax** for precision: `artist:Radiohead AND type:album` in releaseSearch gives cleaner results than a plain title query.
- **Score field** indicates relevance — filter downstream for `score >= 80` to keep high-confidence matches.
- **Disambiguation field** helps when multiple entities share a name — always inspect it when deduplicating.
- **Rate limit is respected** — the actor inserts a 1.1 s delay between requests as required by MusicBrainz ToS; don't try to bypass it.
- **Pagination is automatic** — just set a high `maxResults` and the actor handles all offsets.
- **Tags are community-sourced** — great for genre analysis but may be incomplete for obscure artists.
- **Country codes** follow ISO 3166-1 alpha-2 (e.g. "US", "JP", "DE"); filter in spreadsheet tools after download.
- **beginDate/endDate formats vary** — some entries have full YYYY-MM-DD, others only YYYY or YYYY-MM.
- **For label research**, combine country filter in your query: `label:EMI AND country:GB`.
- **MBID (id field)** is stable and globally unique — use it as your canonical music entity key in databases.

### Integrations

- **Google Sheets** — Use Apify's Google Sheets integration to push results directly to a spreadsheet for team collaboration.
- **Slack** — Set up a webhook to notify your channel when a scheduled MusicBrainz run completes.
- **Zapier / Make** — Connect actor runs to thousands of apps: save to Airtable, send rows to a CRM, or trigger downstream processing.
- **Webhooks** — Configure Apify webhooks to POST the dataset URL to your server when the run finishes.
- **Scheduler** — Schedule weekly runs to keep your music metadata dataset fresh with the latest MusicBrainz updates.

### API usage

**cURL:**

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/logiover~musicbrainz-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"artistSearch","query":"Radiohead","maxResults":100}'
```

**Node.js (Apify client):**

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover~musicbrainz-scraper').call({
  mode: 'artistSearch',
  query: 'Radiohead',
  maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover~musicbrainz-scraper").call(run_input={
    "mode": "artistSearch",
    "query": "Radiohead",
    "maxResults": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

### Use with AI agents (MCP)

MusicBrainz Scraper is available via the Apify MCP server, making it instantly usable from Claude, ChatGPT, and any MCP-compatible agent. Just connect the Apify MCP server and prompt your agent: *"Search MusicBrainz for all releases by Portishead and give me their dates and countries"* — the agent will trigger a run, wait for results, and summarize them inline.

### FAQ

#### Does this require an API key or account?

No. MusicBrainz's JSON Web Service is publicly accessible without registration. You only need an Apify account to run the actor.

#### How much data can I extract per run?

Up to 10,000 results per run. MusicBrainz returns up to 100 per page; the actor paginates automatically via offset until `maxResults` is reached or the result set is exhausted.

#### Why is there a 1-second delay between requests?

MusicBrainz's usage policy requires clients to send at most 1 request per second. The actor enforces a 1.1 s delay to stay compliant and avoid being rate-limited or blocked.

#### What happens if my query returns zero results?

The actor logs a warning and exits cleanly with an empty dataset. Check your query spelling; MusicBrainz search is fuzzy but typos still reduce results significantly.

#### Why are some fields null?

MusicBrainz is community-curated — many entities lack complete metadata. Fields like `endDate`, `country`, and `tags` are frequently null for less well-documented artists or releases.

#### Can I export results to Excel or CSV?

Yes. From the Apify dataset view, click **Export** and choose CSV, Excel, JSON, or JSONL. Google Sheets export is also available via the Apify integration.

#### How fast does it run?

Because of the 1 req/sec rate limit, 100 results take about 1 minute, 1,000 results take about 10 minutes. Plan accordingly for large extractions.

#### Is this legal to use?

Yes. MusicBrainz data is published under Creative Commons licenses (CC0 for the core data). The actor respects the rate limit and sends a descriptive User-Agent header as required by MusicBrainz policy.

#### What is the score field?

MusicBrainz search returns a relevance score (0–100) indicating how closely each result matches your query. A score of 100 means an exact match; lower scores indicate partial matches.

#### How often is MusicBrainz data updated?

MusicBrainz is continuously edited by its community. The API reflects the live database in near-real-time. Schedule weekly runs to keep your local data current.

#### Can I search for a specific artist's releases?

Yes — use `releaseSearch` with a Lucene artist clause: `query: "artist:Radiohead AND type:album"`. This targets releases credited to that artist.

#### Are there related scrapers I should know about?

Absolutely. You might also find these logiover actors useful:

- **Discogs Scraper** — vinyl marketplace, release editions, and user collections.
- **Last.fm Scraper** — scrobble counts, listener stats, and tag-based discovery.
- **Spotify Unofficial API** — track features, playlist data, and artist popularity scores.
- **IMDb Scraper** — for soundtracks and film-music metadata cross-referencing.

### Is it legal?

MusicBrainz data is released under Creative Commons CC0 (public domain dedication) for factual data and CC BY-NC-SA for Wikipedia-derived text. The actor accesses only the public JSON API with a compliant User-Agent and rate limit. No authentication is bypassed, no personal data is collected. Always review MusicBrainz's [Terms of Service](https://metabrainz.org/terms) for your specific use case, especially for commercial redistribution of large dataset dumps.

# Actor input Schema

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

Which entity type to search.

## `query` (type: `string`):

Free-text search query (e.g. artist name, album title, song name, label name). Use broad terms like 'rock', 'jazz', 'pop' for large result sets. Leave EMPTY to browse a broad recent listing of the selected entity.

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

Maximum number of results to return. MusicBrainz returns up to 100 per page; pagination fetches more. Set to 500+ for bulk exports.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. MusicBrainz is an open API; automatic Apify Proxy is recommended.

## Actor input object example

```json
{
  "mode": "releaseSearch",
  "query": "rock",
  "maxResults": 500,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All records extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# 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 = {
    "query": "rock",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/musicbrainz-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 = {
    "query": "rock",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/musicbrainz-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 '{
  "query": "rock",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call logiover/musicbrainz-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MusicBrainz Scraper — Artists, Releases & Recordings",
        "description": "Scrape MusicBrainz by artist, release, recording, or label. Extract id, name, type, country, tags, score, life-span, and area. No API key, no login. Bulk pagination up to thousands of results.",
        "version": "1.0",
        "x-build-id": "cvFOT3gvf1Me5Fqae"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~musicbrainz-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-musicbrainz-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/logiover~musicbrainz-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-musicbrainz-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/logiover~musicbrainz-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-musicbrainz-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": {
                    "mode": {
                        "title": "Search Mode",
                        "enum": [
                            "artistSearch",
                            "releaseSearch",
                            "recordingSearch",
                            "labelSearch"
                        ],
                        "type": "string",
                        "description": "Which entity type to search.",
                        "default": "releaseSearch"
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Free-text search query (e.g. artist name, album title, song name, label name). Use broad terms like 'rock', 'jazz', 'pop' for large result sets. Leave EMPTY to browse a broad recent listing of the selected entity."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of results to return. MusicBrainz returns up to 100 per page; pagination fetches more. Set to 500+ for bulk exports.",
                        "default": 500
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy settings. MusicBrainz is an open API; automatic Apify Proxy is recommended."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
