# Spotify Songs Scraper (`automation-lab/spotify-songs-scraper`) Actor

Extract public Spotify track, album, artist and playlist metadata from open.spotify.com URLs for music research, catalog QA and playlist monitoring.

- **URL**: https://apify.com/automation-lab/spotify-songs-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Spotify Songs Scraper

Export public Spotify song, album, artist and playlist metadata from `open.spotify.com` pages.

Use this actor to collect Spotify catalog metadata, preview links, release dates, artist URLs, album URLs, playlist positions and public counts for music marketing, catalog QA and playlist research workflows.

### What does Spotify Songs Scraper do?

Spotify Songs Scraper reads public Spotify web pages and turns their metadata into a clean Apify dataset.

It supports:

- 🎵 Track pages
- 💿 Album pages
- 👤 Artist pages
- 📋 Playlist pages
- 🔗 Track links exposed by album and playlist pages

The actor uses the public HTML metadata Spotify exposes to browsers. It does not require a Spotify login, cookies or API credentials.

### Who is it for?

Music teams use this actor when they need structured Spotify metadata without manual copy-paste.

Common users include:

- 🎧 Music marketers checking playlist placements
- 🏷️ Record labels validating release pages
- 📈 Playlist analysts monitoring public playlist structure
- 🧾 Catalog operations teams checking song metadata
- 🔎 Research teams building market/category datasets
- 🤖 Automation builders enriching music databases

### Why use this Spotify extractor?

Spotify pages are useful, but manual collection is slow and inconsistent.

This actor helps you:

- Export many Spotify URLs in one run
- Normalize track, album, artist and playlist metadata
- Preserve source URLs for auditability
- Follow public playlist/album track links
- Capture preview audio and image URLs when exposed
- Build repeatable monitoring jobs on Apify

### What Spotify data can you extract?

The output depends on what Spotify exposes on each public page.

Typical track data:

- Song name
- Spotify track URL
- Spotify ID
- Artist name and artist URL
- Album URL
- Release date
- Duration in seconds
- Preview audio URL when available
- Cover image URL
- Track number

Typical album data:

- Album name
- Album URL
- Release date
- Artist URL when exposed
- Cover image
- Public track links
- Disc and track positions

Typical playlist data:

- Playlist name
- Playlist URL
- Description
- Item count
- Saves count when exposed
- Image URL
- Linked track URLs
- Playlist positions
- Allowed-country count when exposed

Typical artist data:

- Artist name
- Artist URL
- Description
- Monthly listener count when exposed
- Image URL

### Data table

| Field | Description |
| --- | --- |
| `sourceUrl` | Original URL submitted or parent URL for expanded tracks |
| `url` | Spotify URL for the saved record |
| `spotifyId` | ID parsed from the Spotify URL |
| `pageType` | `track`, `album`, `artist`, `playlist`, `user` or `unknown` |
| `resultType` | `page` for source pages or `track` for song records |
| `name` | Song, album, artist or playlist name |
| `description` | Public Spotify description/snippet |
| `artistName` | Artist name where exposed |
| `artistUrl` | Spotify artist URL where exposed |
| `albumUrl` | Spotify album URL where exposed |
| `releaseDate` | Release date where exposed |
| `durationSeconds` | Track duration in seconds |
| `previewUrl` | Public preview audio URL when exposed |
| `imageUrl` | Cover/profile/playlist image URL |
| `trackNumber` | Album track number where exposed |
| `discNumber` | Album disc number where exposed |
| `itemCount` | Playlist item count where parsed |
| `monthlyListeners` | Artist monthly listener count where parsed |
| `savesCount` | Playlist save count where parsed |
| `allowedCountriesCount` | Count of allowed country tags for playlist pages |
| `parentUrl` | Album or playlist URL for expanded track records |
| `parentName` | Album or playlist name for expanded track records |
| `position` | Track position in the parent page |
| `scrapedAt` | ISO timestamp when the record was saved |

### How much does it cost to scrape Spotify songs?

This actor uses pay-per-event pricing.

You pay a $0.005 start fee plus one `item` event for each saved Spotify metadata record.

| Plan tier | Price per saved record |
| --- | ---: |
| Free | $0.00052489 |
| Bronze | $0.00045643 |
| Silver | $0.00035601 |
| Gold | $0.00027386 |
| Platinum | $0.00018257 |
| Diamond | $0.00012780 |

Example: 1,000 saved Spotify records cost about $0.53 on Free tier before the start fee, and about $0.46 on Bronze tier before the start fee.

Tips to control cost:

- Start with a small `maxItems` value
- Test one playlist or album before large batches
- Disable linked track expansion if you only need page-level metadata
- Use the Apify scheduler for predictable recurring monitoring

### How to scrape Spotify songs

1. Open the actor on Apify.
2. Paste Spotify track, album, artist or playlist URLs into `Spotify URLs`.
3. Choose a `Maximum records` limit.
4. Keep `Expand albums and playlists into tracks` enabled if you want song rows.
5. Run the actor.
6. Export the dataset as JSON, CSV, Excel, XML or via API.

### Input example

```json
{
  "startUrls": [
    { "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT" },
    { "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M" }
  ],
  "maxItems": 100,
  "includeLinkedTracks": true,
  "requestDelayMs": 100
}
````

### Output example

```json
{
  "sourceUrl": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
  "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT",
  "spotifyId": "4cOdK2wGLETKBW3PvgPWqT",
  "pageType": "track",
  "resultType": "track",
  "name": "Never Gonna Give You Up",
  "artistName": "Rick Astley",
  "artistUrl": "https://open.spotify.com/artist/0gxyHStUsqpMadRV0Di1Qt",
  "albumUrl": "https://open.spotify.com/album/5Z9iiGl2FcIfa3BMiv6OIw",
  "releaseDate": "1987-11-12",
  "durationSeconds": 214,
  "previewUrl": "https://p.scdn.co/mp3-preview/...",
  "imageUrl": "https://i.scdn.co/image/...",
  "scrapedAt": "2026-07-09T00:00:00.000Z"
}
```

### Tips for best results

- Use public `open.spotify.com` URLs.
- Prefer playlist or album URLs when you want many song records.
- Keep `maxItems` high enough for expanded tracks.
- Use a delay for large batches.
- Store the dataset ID if you need reproducible exports.

### Integrations

You can connect the dataset to:

- Google Sheets for playlist reports
- Airtable for catalog review
- BigQuery or Snowflake for music analytics
- Zapier or Make for notifications
- Apify webhooks for recurring monitors
- Internal enrichment pipelines through the Apify API

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/spotify-songs-scraper').call({
  startUrls: [{ url: 'https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M' }],
  maxItems: 100,
  includeLinkedTracks: true
});
console.log(run.defaultDatasetId);
```

#### Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/spotify-songs-scraper').call(run_input={
    'startUrls': [{'url': 'https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT'}],
    'maxItems': 25,
})
print(run['defaultDatasetId'])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~spotify-songs-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"}],"maxItems":100}'
```

### MCP usage

Use the Apify MCP server with Claude Code or Claude Desktop to run this actor from natural language prompts.

MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/spotify-songs-scraper
```

Claude Code setup:

```bash
claude mcp add apify-spotify-songs https://mcp.apify.com/?tools=automation-lab/spotify-songs-scraper
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-spotify-songs": {
      "url": "https://mcp.apify.com/?tools=automation-lab/spotify-songs-scraper"
    }
  }
}
```

Example prompts:

- "Run Spotify Songs Scraper for this playlist and summarize the first 50 tracks."
- "Extract metadata from these Spotify album URLs and return a CSV."
- "Monitor this playlist weekly and tell me when the first 10 songs change."

### Scheduling and monitoring

For recurring workflows:

1. Create a task with your Spotify URLs.
2. Add a schedule in Apify.
3. Export each run dataset or connect a webhook.
4. Compare new datasets against previous runs.

This is useful for playlist placement monitoring and catalog checks.

### Limitations

Spotify decides which metadata is present in public HTML.

Some fields may be missing for certain regions, pages or entities. The actor does not bypass login-only content, private playlists, Spotify API restrictions or Premium-only features.

### Legality

This actor extracts publicly available metadata from public Spotify web pages. You are responsible for using the data legally and respecting Spotify's terms, copyright rules, privacy requirements and local regulations.

### FAQ

#### Does it need a Spotify account?

No. The actor targets public `open.spotify.com` metadata that is visible without login.

#### Can it scrape private playlists?

No. Private or login-only data is outside the actor scope.

#### Why are some fields null?

Spotify does not expose every field on every page. The actor leaves unavailable values as `null` instead of guessing.

#### Can it extract lyrics?

No. Spotify lyrics are not part of the public metadata used by this actor.

#### Can it get ISRC or popularity scores?

Only if Spotify exposes them in the public page metadata. The current HTTP extraction does not rely on private APIs.

### Related scrapers

Explore other automation-lab actors on Apify:

- https://apify.com/automation-lab
- https://apify.com/automation-lab/soundcloud-scraper
- https://apify.com/automation-lab/apple-music-scraper
- https://apify.com/automation-lab/youtube-scraper

### Support

If a public Spotify URL returns no metadata, include the run ID and URL when reporting the issue. That lets us compare the page response and update the extractor if Spotify changes its markup.

# Actor input Schema

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

Open Spotify track, album, artist or playlist URLs. Album and playlist pages can expand into linked track records.

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

Maximum dataset records to save. Keep this low for a quick first run; increase it for large playlist batches.

## `includeLinkedTracks` (type: `boolean`):

When enabled, the actor follows public track links exposed in album and playlist metadata and outputs enriched track rows.

## `requestDelayMs` (type: `integer`):

Optional polite delay between Spotify page requests. Increase if you run very large batches.

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

Optional Apify proxy configuration. Spotify public metadata usually works without a proxy.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
    },
    {
      "url": "https://open.spotify.com/album/5Z9iiGl2FcIfa3BMiv6OIw"
    },
    {
      "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
    }
  ],
  "maxItems": 20,
  "includeLinkedTracks": true,
  "requestDelayMs": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
        },
        {
            "url": "https://open.spotify.com/album/5Z9iiGl2FcIfa3BMiv6OIw"
        },
        {
            "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
        }
    ],
    "maxItems": 20,
    "includeLinkedTracks": true,
    "requestDelayMs": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/spotify-songs-scraper").call(input);

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "startUrls": [
        { "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT" },
        { "url": "https://open.spotify.com/album/5Z9iiGl2FcIfa3BMiv6OIw" },
        { "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M" },
    ],
    "maxItems": 20,
    "includeLinkedTracks": True,
    "requestDelayMs": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/spotify-songs-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
    },
    {
      "url": "https://open.spotify.com/album/5Z9iiGl2FcIfa3BMiv6OIw"
    },
    {
      "url": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M"
    }
  ],
  "maxItems": 20,
  "includeLinkedTracks": true,
  "requestDelayMs": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call automation-lab/spotify-songs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Spotify Songs Scraper",
        "description": "Extract public Spotify track, album, artist and playlist metadata from open.spotify.com URLs for music research, catalog QA and playlist monitoring.",
        "version": "0.1",
        "x-build-id": "lNq0unwDvongXK9Xk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~spotify-songs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-spotify-songs-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/automation-lab~spotify-songs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-spotify-songs-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/automation-lab~spotify-songs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-spotify-songs-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Spotify URLs",
                        "type": "array",
                        "description": "Open Spotify track, album, artist or playlist URLs. Album and playlist pages can expand into linked track records.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum dataset records to save. Keep this low for a quick first run; increase it for large playlist batches.",
                        "default": 20
                    },
                    "includeLinkedTracks": {
                        "title": "Expand albums and playlists into tracks",
                        "type": "boolean",
                        "description": "When enabled, the actor follows public track links exposed in album and playlist metadata and outputs enriched track rows.",
                        "default": true
                    },
                    "requestDelayMs": {
                        "title": "Delay between requests (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Optional polite delay between Spotify page requests. Increase if you run very large batches.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify proxy configuration. Spotify public metadata usually works without a proxy.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
