# Spotify Downloader (`maximedupre/spotify-downloader`) Actor

Download Spotify tracks from track URLs or search terms. Get metadata, preview URLs, MP3 download links, and optional MP3 files saved to Apify storage for exports, API calls, or workflows.

- **URL**: https://apify.com/maximedupre/spotify-downloader.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media, Integrations
- **Stats:** 8 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.65 / 1,000 resolved tracks

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

### 🎧 Download Spotify tracks from URLs or searches

Spotify Downloader turns public [Spotify](https://open.spotify.com/) track URLs and search terms into a clean dataset with track metadata, preview URLs, MP3 download links, and optional MP3 files saved to Apify storage.

Use it as a Spotify downloader, Spotify MP3 downloader, or Spotify music downloader when you need repeatable exports instead of a one-off browser download. You do not need Spotify cookies, a Spotify login, or a Spotify API key.

This Actor is focused on public tracks. It accepts known track URLs when you already know what to download, search terms when you want to find matching tracks, or both in the same run.

### ✅ What this Spotify downloader does

- Accepts public Spotify track URLs, Spotify track URIs, and search terms.
- Finds matching tracks from keywords such as song names, artists, albums, or genres.
- Saves one dataset row per accepted Spotify track.
- Returns track name, artists, album, duration, explicit flag, popularity, ISRC, release date, cover image, Spotify URL, and scrape time.
- Adds media fields such as Spotify preview URL, MP3 download URL, download host, extension, content type, and link status when available.
- Can save MP3 files to Apify key-value storage when you choose file saving.
- Lets you filter by explicit content and track duration.
- Skips invalid, unavailable, or unresolved tracks without saving failure rows.

### 📊 Data you can export

Each output item represents one accepted track. Core fields include:

- `trackId`, `spotifyUri`, and `spotifyUrl`
- `trackName`, `artistNames`, and `albumName`
- `durationMs`, `durationText`, `explicit`, and `popularity`
- `isrc`, `releaseDate`, and `coverImageUrl`
- `media.audioPreviewUrl`, `media.downloadUrl`, `media.downloadHost`, and `media.contentType`
- `savedFile.key`, `savedFile.contentType`, and `savedFile.sizeBytes` when file saving is used
- `availability.downloadLinkStatus` and `availability.downloadContentLength`
- `input`, `inputType`, `searchTerm`, and `searchRank`
- `scrapedAt`

You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it through the Apify API, schedule recurring runs, or connect it to webhooks and integrations.

### 🚀 How to run

1. Add Spotify track URLs in **Spotify track URLs**, search terms in **Search terms**, or both.
2. Choose whether to include all tracks, explicit tracks only, or clean tracks only.
3. Optionally set minimum and maximum track duration.
4. Choose **Fast media links** for speed or **Save files to Apify storage** for saved MP3 artifacts.
5. Set **Tracks per search** and **Total tracks**.
6. Start the Actor and open the dataset.

For a quick first run, keep the prefilled track URL and search term. Once the output shape looks right, replace them with your own Spotify track URLs or keywords.

### 🛠️ Input

| Field | What to enter |
| ----- | ------------- |
| `trackUrls` | Spotify track links, Spotify track URIs, or track IDs. |
| `keywords` | Song, artist, album, genre, or mixed search terms. |
| `explicitContent` | `all`, `explicit_only`, or `non_explicit_only`. |
| `minDurationSeconds` | Optional minimum track length in seconds. |
| `maxDurationSeconds` | Optional maximum track length in seconds. |
| `resolutionMode` | `fast_links` for media links or `save_files` for saved MP3 files. |
| `maxTracksPerSearch` | Maximum track matches to collect from each keyword. |
| `maxTracks` | Maximum accepted track results across the run. |

Example input:

```json
{
  "trackUrls": ["https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"],
  "keywords": ["Daft Punk One More Time"],
  "explicitContent": "all",
  "resolutionMode": "fast_links",
  "maxTracksPerSearch": 5,
  "maxTracks": 25
}
````

### 📦 Output example

```json
{
  "status": "ok",
  "input": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp",
  "inputType": "url",
  "searchTerm": null,
  "searchRank": null,
  "trackId": "3n3Ppam7vgaVa1iaRUc9Lp",
  "spotifyUri": "spotify:track:3n3Ppam7vgaVa1iaRUc9Lp",
  "spotifyUrl": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp",
  "trackName": "Mr. Brightside",
  "artistNames": ["The Killers"],
  "albumName": "Hot Fuss",
  "durationMs": 222973,
  "durationText": "3:42",
  "explicit": false,
  "popularity": 85,
  "isrc": "USIR20400274",
  "releaseDate": "2004-01-01",
  "coverImageUrl": "https://i.scdn.co/image/...",
  "media": {
    "audioPreviewUrl": "https://p.scdn.co/mp3-preview/...",
    "downloadUrl": "https://cdn-spotify-247.zm.io.vn/download/3n3Ppam7vgaVa1iaRUc9Lp",
    "downloadHost": "cdn-spotify-247.zm.io.vn",
    "extension": "mp3",
    "contentType": "audio/mpeg"
  },
  "savedFile": null,
  "availability": {
    "playable": true,
    "reason": null,
    "downloadLinkStatus": 200,
    "downloadContentLength": 3722185
  },
  "scrape": {
    "resolutionMode": "fast_links",
    "scrapedAt": "2026-06-13T12:00:00.000Z"
  }
}
```

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged `$0.00265` for each accepted track result saved to the dataset, which is `$2.65 per 1,000 tracks`.

Invalid URLs, unsupported inputs, unavailable tracks, unresolved tracks, and skipped search matches do not create paid track-result events.

### ⚠️ Limits and caveats

Spotify Downloader works with public track pages and keyword searches. It does not expand playlists, albums, artist pages, podcasts, shows, episodes, comments, followers, or private account content.

Direct MP3 links can depend on the media host that exposes the track at run time. Use **Save files to Apify storage** when you need an Apify-hosted run artifact instead of only a direct media link.

Some public tracks may not expose preview audio, direct MP3 media, or all metadata fields. In those cases, the Actor saves accepted tracks only when it can resolve usable media output and leaves unavailable fields empty.

This Actor is not an official Spotify API client and does not require Spotify developer credentials.

### ❓ FAQ

#### Do I need a Spotify API key, login, or cookies?

No. The Actor works without user-provided Spotify credentials.

#### Can it save MP3 files?

Yes. Choose **Save files to Apify storage** in **Media result**. The dataset row will include saved-file metadata when the MP3 file is saved successfully.

#### Can I use Spotify track URLs and search terms together?

Yes. You can combine known track URLs with keyword searches in one run. Duplicate tracks are saved once.

#### Are failed or skipped inputs charged?

No. The pay-per-event charge is created only for accepted track rows saved to the dataset.

#### Does it support playlists, albums, artists, or podcasts?

No. The public contract is Spotify track URLs and keyword track searches.

### 📝 Changelog

- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~spotify-downloader/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [SoundCloud MP3 Downloader ↗](https://apify.com/maximedupre/soundcloud-mp3-downloader) - Get playable SoundCloud media links from public tracks, profiles, playlists, and searches.
- [TikTok Video Downloader ↗](https://apify.com/maximedupre/tiktok-video-downloader) - Save public TikTok video and audio files with captions, author data, and file metadata.
- [Facebook Media Downloader ↗](https://apify.com/maximedupre/facebook-media-downloader) - Download public Facebook videos and reels with thumbnails, captions, and media links.
- [Telegram Media Downloader ↗](https://apify.com/maximedupre/telegram-media-downloader) - Export public Telegram photos, videos, documents, post text, and source links.
- [YouTube Channel Scraper ↗](https://apify.com/maximedupre/youtube-channel-scraper) - Export public YouTube channel profiles and recent videos for creator research.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `trackUrls` (type: `array`):

Paste Spotify track links or track URIs when you already know which tracks you want.

## `keywords` (type: `array`):

Enter track, artist, album, or genre searches. Each search uses the per-search limit below.

## `explicitContent` (type: `string`):

Choose whether to include all matched tracks, only explicit tracks, or only clean tracks.

## `minDurationSeconds` (type: `integer`):

Keep tracks at or above this length in seconds.

## `maxDurationSeconds` (type: `integer`):

Keep tracks at or below this length in seconds.

## `resolutionMode` (type: `string`):

Choose fast media links for speed or saved files when durable Apify storage output is available.

## `maxTracksPerSearch` (type: `integer`):

Maximum track matches to collect from each search term.

## `maxTracks` (type: `integer`):

Maximum accepted track results across URLs and searches.

## Actor input object example

```json
{
  "trackUrls": [
    "https://open.spotify.com/track/1dGr1c8CrMLDpV6mPbImSI",
    "https://open.spotify.com/track/7qiZfU4dY1lWllzX7mPBI3",
    "https://open.spotify.com/track/0tgVpDi06FyKpA1z0VMD4v",
    "https://open.spotify.com/track/6habFhsOp2NvshLv26DqMb",
    "https://open.spotify.com/track/1rfofaqEpACxVEHIZBJe6W",
    "https://open.spotify.com/track/7BKLCZ1jbUBVqRi2FVlTVw",
    "https://open.spotify.com/track/3ZCTVFBt2Brf31RLEnCkWJ",
    "https://open.spotify.com/track/4xqrdfXkTW4T0RauPLv3WA",
    "https://open.spotify.com/track/6DCZcSspjsKoFjzjrWoCdn",
    "https://open.spotify.com/track/2XU0oxnq2qxCpomAAuJY8K",
    "https://open.spotify.com/track/5wANPM4fQCJwkGd4rN57mH",
    "https://open.spotify.com/track/0u2P5u6lvoDfwTYjAADbn4",
    "https://open.spotify.com/track/2QjOHCTQ1Jl3zawyYOpxh6"
  ],
  "keywords": [],
  "explicitContent": "all",
  "resolutionMode": "fast_links",
  "maxTracksPerSearch": 5,
  "maxTracks": 13
}
```

# Actor output Schema

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

Open the default dataset with accepted Spotify track downloader results.

# 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 = {
    "trackUrls": [
        "https://open.spotify.com/track/1dGr1c8CrMLDpV6mPbImSI",
        "https://open.spotify.com/track/7qiZfU4dY1lWllzX7mPBI3",
        "https://open.spotify.com/track/0tgVpDi06FyKpA1z0VMD4v",
        "https://open.spotify.com/track/6habFhsOp2NvshLv26DqMb",
        "https://open.spotify.com/track/1rfofaqEpACxVEHIZBJe6W",
        "https://open.spotify.com/track/7BKLCZ1jbUBVqRi2FVlTVw",
        "https://open.spotify.com/track/3ZCTVFBt2Brf31RLEnCkWJ",
        "https://open.spotify.com/track/4xqrdfXkTW4T0RauPLv3WA",
        "https://open.spotify.com/track/6DCZcSspjsKoFjzjrWoCdn",
        "https://open.spotify.com/track/2XU0oxnq2qxCpomAAuJY8K",
        "https://open.spotify.com/track/5wANPM4fQCJwkGd4rN57mH",
        "https://open.spotify.com/track/0u2P5u6lvoDfwTYjAADbn4",
        "https://open.spotify.com/track/2QjOHCTQ1Jl3zawyYOpxh6"
    ],
    "keywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/spotify-downloader").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 = {
    "trackUrls": [
        "https://open.spotify.com/track/1dGr1c8CrMLDpV6mPbImSI",
        "https://open.spotify.com/track/7qiZfU4dY1lWllzX7mPBI3",
        "https://open.spotify.com/track/0tgVpDi06FyKpA1z0VMD4v",
        "https://open.spotify.com/track/6habFhsOp2NvshLv26DqMb",
        "https://open.spotify.com/track/1rfofaqEpACxVEHIZBJe6W",
        "https://open.spotify.com/track/7BKLCZ1jbUBVqRi2FVlTVw",
        "https://open.spotify.com/track/3ZCTVFBt2Brf31RLEnCkWJ",
        "https://open.spotify.com/track/4xqrdfXkTW4T0RauPLv3WA",
        "https://open.spotify.com/track/6DCZcSspjsKoFjzjrWoCdn",
        "https://open.spotify.com/track/2XU0oxnq2qxCpomAAuJY8K",
        "https://open.spotify.com/track/5wANPM4fQCJwkGd4rN57mH",
        "https://open.spotify.com/track/0u2P5u6lvoDfwTYjAADbn4",
        "https://open.spotify.com/track/2QjOHCTQ1Jl3zawyYOpxh6",
    ],
    "keywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/spotify-downloader").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 '{
  "trackUrls": [
    "https://open.spotify.com/track/1dGr1c8CrMLDpV6mPbImSI",
    "https://open.spotify.com/track/7qiZfU4dY1lWllzX7mPBI3",
    "https://open.spotify.com/track/0tgVpDi06FyKpA1z0VMD4v",
    "https://open.spotify.com/track/6habFhsOp2NvshLv26DqMb",
    "https://open.spotify.com/track/1rfofaqEpACxVEHIZBJe6W",
    "https://open.spotify.com/track/7BKLCZ1jbUBVqRi2FVlTVw",
    "https://open.spotify.com/track/3ZCTVFBt2Brf31RLEnCkWJ",
    "https://open.spotify.com/track/4xqrdfXkTW4T0RauPLv3WA",
    "https://open.spotify.com/track/6DCZcSspjsKoFjzjrWoCdn",
    "https://open.spotify.com/track/2XU0oxnq2qxCpomAAuJY8K",
    "https://open.spotify.com/track/5wANPM4fQCJwkGd4rN57mH",
    "https://open.spotify.com/track/0u2P5u6lvoDfwTYjAADbn4",
    "https://open.spotify.com/track/2QjOHCTQ1Jl3zawyYOpxh6"
  ],
  "keywords": []
}' |
apify call maximedupre/spotify-downloader --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Spotify Downloader",
        "description": "Download Spotify tracks from track URLs or search terms. Get metadata, preview URLs, MP3 download links, and optional MP3 files saved to Apify storage for exports, API calls, or workflows.",
        "version": "0.1",
        "x-build-id": "eLPt5pDi7Wc4OT22i"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~spotify-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-spotify-downloader",
                "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/maximedupre~spotify-downloader/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-spotify-downloader",
                "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/maximedupre~spotify-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-spotify-downloader",
                "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": {
                    "trackUrls": {
                        "title": "Spotify track URLs",
                        "maxItems": 1000,
                        "type": "array",
                        "description": "Paste Spotify track links or track URIs when you already know which tracks you want.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "keywords": {
                        "title": "Search terms",
                        "maxItems": 1000,
                        "type": "array",
                        "description": "Enter track, artist, album, or genre searches. Each search uses the per-search limit below.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "explicitContent": {
                        "title": "Explicit content",
                        "enum": [
                            "all",
                            "explicit_only",
                            "non_explicit_only"
                        ],
                        "type": "string",
                        "description": "Choose whether to include all matched tracks, only explicit tracks, or only clean tracks.",
                        "default": "all"
                    },
                    "minDurationSeconds": {
                        "title": "Minimum duration",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep tracks at or above this length in seconds."
                    },
                    "maxDurationSeconds": {
                        "title": "Maximum duration",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Keep tracks at or below this length in seconds."
                    },
                    "resolutionMode": {
                        "title": "Media result",
                        "enum": [
                            "fast_links",
                            "save_files"
                        ],
                        "type": "string",
                        "description": "Choose fast media links for speed or saved files when durable Apify storage output is available.",
                        "default": "fast_links"
                    },
                    "maxTracksPerSearch": {
                        "title": "Tracks per search",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum track matches to collect from each search term.",
                        "default": 5
                    },
                    "maxTracks": {
                        "title": "Total tracks",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum accepted track results across URLs and searches.",
                        "default": 13
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
