# YouTube Transcript Download (`lurkapi/youtube-transcript-download`) Actor

Download transcripts from YouTube videos in multiple formats. Supports playlists, channels, multiple languages, and batch processing.

- **URL**: https://apify.com/lurkapi/youtube-transcript-download.md
- **Developed by:** [LurkAPI](https://apify.com/lurkapi) (community)
- **Categories:** Social media, Videos
- **Stats:** 4 total users, 2 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 transcript extracteds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## YouTube Transcript Download

Download transcripts, subtitles, and captions from any YouTube video. Paste a link, get the text.

### 🎬 What it does

Give it one or more YouTube video links, and it will:

1. **Download the transcript, subtitles, or captions** in your preferred language
2. **Format it** as plain text, SRT subtitles, VTT, CSV, XML, JSON, or timestamped text
3. **Return video details** like the title, view count, channel name, and more

Works with video URLs, short links, playlists, channels, and bare video IDs.

### 📋 How to use it

#### Step 1: Paste your links

Add YouTube video URLs in the input. You can add up to 1,000 at a time.

Supported formats:

- `https://www.youtube.com/watch?v=VIDEO_ID`
- `https://youtu.be/VIDEO_ID`
- `https://www.youtube.com/shorts/VIDEO_ID`
- `https://www.youtube.com/live/VIDEO_ID`
- `https://www.youtube.com/embed/VIDEO_ID`
- `https://www.youtube.com/playlist?list=PLAYLIST_ID`
- `https://www.youtube.com/@ChannelName`
- Bare video IDs (e.g. `dQw4w9WgXcQ`)

#### Step 2: Choose your options

- **Language**: Pick your preferred language from the dropdown (120+ languages available), or pass an ISO 639-1 code (e.g. "en", "es", "fr") when calling via API. Defaults to English. If the requested language is not available, it will fall back to English or auto-generated captions.
- **Output Format**: Choose one of: `plain`, `timestamped`, `srt`, `vtt`, `json`, `csv`, `xml`, or `all`.
- **Keep Music Markers**: Set to true to keep `[Music]` and similar tags. Off by default.
- **Drop Empty Segments**: Removes empty transcript lines after cleanup. On by default.
- **Max Videos Per Channel**: When using channel URLs, limits how many videos to process (default: 50). Playlists always process all videos.
- **Channel Date From / Date To**: Filter channel videos by publish date. Only videos within the date range are processed. Dates are approximate since YouTube shows relative dates like "2 days ago". Does not apply to playlists.
- **Concurrency**: Number of videos to process in parallel (1-10, default 1). Higher values are faster but use more memory. Increase the run memory allocation if using concurrency above 3.

#### Example input (API)

```json
{
    "urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
    "language": "en",
    "outputFormat": "json"
}
````

#### Step 3: Run it

Click **Start** and wait. Each video takes a few seconds.

#### Step 4: Get your transcripts

Results appear in the **Output** tab. Each row includes:

| Field | Description |
|-------|-------------|
| status | "Success" or an actionable error message (e.g. "Video is private", "No captions available") |
| videoId | The YouTube video ID |
| title | Video title |
| transcript | The transcript in your chosen format |
| language | Language code of the transcript that was found |
| isAutoGenerated | Whether the transcript is auto-generated by YouTube |
| channelName | Name of the YouTube channel |
| viewCount | Number of views |
| likeCount | Number of likes |
| duration | Video length in seconds |
| uploadDate | When the video was published |
| thumbnailUrl | Video thumbnail image |
| availableLanguages | List of all caption tracks available for the video (code, name, auto-generated) |

When you choose the `all` output format, you get additional fields: `transcriptTimestamped`, `transcriptSrt`, `transcriptVtt`, `transcriptJson`, `transcriptCsv`, `transcriptXml`.

#### Example output

```json
{
    "status": "Success",
    "videoId": "dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "channelName": "Rick Astley",
    "language": "en",
    "isAutoGenerated": true,
    "transcript": "We're no strangers to love You know the rules and so do I...",
    "viewCount": 1760088984,
    "likeCount": 18920088,
    "duration": 213,
    "thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
    "availableLanguages": [
        { "code": "en", "name": "English", "isAutoGenerated": true }
    ]
}
```

### 📄 Output formats

| Format | Description | Example |
|--------|-------------|---------|
| `plain` | Clean text with paragraph breaks (splits at pauses longer than 2 seconds) | `Hello world this is a test` |
| `timestamped` | Each line with a timestamp | `[00:05] Hello world` |
| `srt` | SubRip subtitle format | `1\n00:00:05,000 --> 00:00:08,000\nHello world` |
| `vtt` | WebVTT subtitle format | `WEBVTT\n\n00:00:05.000 --> 00:00:08.000\nHello world` |
| `json` | Structured JSON array | `[{"text":"Hello","startMs":5000,"endMs":8000}]` |
| `csv` | Comma-separated values | `start_ms,end_ms,start_formatted,text` |
| `xml` | XML document | `<transcript><segment>Hello</segment></transcript>` |
| `all` | All formats at once | One field per format |

#### Typical use cases

- **Build subtitle files** (`srt` or `vtt`) for editing or publishing
- **Prepare clean text for AI/LLM pipelines** (`plain` or `json`)
- **Create timestamped transcripts** for compliance or QA reviews
- **Batch-export transcripts** for research and analytics

### 🌍 Language support

The Actor tries to find a transcript in your requested language. If it is not available, it falls back in this order:

1. Requested language (e.g. "es" for Spanish)
2. English ("en")
3. Any available language or auto-generated captions
4. YouTube's internal transcript data

Most YouTube videos have auto-generated English captions available.

### 🌐 Proxy settings

By default, the Actor uses Apify's datacenter proxies.

- **Automatic (default)**: Apify selects the best proxy.
- **Datacenter**: Fast and cheap. Works for most videos.
- **Residential**: Use if you get frequent blocks or rate limits.
- **Own proxies**: Provide your own proxy URLs.
- **No proxy**: Disable proxies entirely. No IP rotation if you get blocked.

### 💰 Pricing

Each successful transcript extraction is one billable event. Approximately $5 per 1,000 transcripts.

Choosing the `all` output format counts as a single event, not one per format. You are billed per video, not per format.

Failed extractions (private videos, videos without captions) are not charged.

### 💡 Good to know

- Only works with videos that have subtitles, captions, or auto-generated transcripts enabled.
- Private and age-restricted videos cannot be processed.
- Playlist and channel URLs are expanded into individual videos automatically.
- Results are saved as they complete, so partial results are preserved if the run is interrupted or times out.
- The `[Music]`, `[Applause]`, and similar markers are removed by default. Enable "Keep Music Markers" to keep them.
- Duplicate video IDs are automatically skipped when processing playlists or multiple URLs.
- Results are stored in your Apify storage. How long they are kept depends on your Apify plan.

### ❓ FAQ

**Can I get transcripts from private or age-restricted videos?**
No. Private and age-restricted videos require a logged-in YouTube account, which this Actor does not use.

**What if a video has no captions?**
The Actor tries auto-generated captions first. If none exist, it returns an error status for that video. You are not charged.

**How accurate are auto-generated captions?**
YouTube's auto-generated captions are generally good for clear English speech. Accuracy varies for other languages, heavy accents, or background noise.

**Can I use this with the Apify API?**
Yes. Pass input as JSON via the API. Use ISO 639-1 language codes (e.g. "en", "es", "fr") in the `language` field.

**Which proxy should I use?**
Start with the default (Automatic). Switch to Residential if you get frequent blocks or rate limits.

**How long are the results stored?**
Results are stored in your Apify storage. How long they are kept depends on your Apify plan.

### 🔗 Other tools you might like

- [YouTube Video Downloader](https://apify.com/lurkapi/youtube-video-downloader) — Download YouTube videos and audio files in MP4, WebM, MP3, or M4A format.
- [TikTok Video Downloader](https://apify.com/lurkapi/tiktok-video-downloader) — Download TikTok videos.

### ⚖️ Disclaimer

This tool is intended for personal, research, and educational use. You are responsible for complying with YouTube's Terms of Service and applicable laws in your jurisdiction. The developer is not liable for misuse. Data availability depends on YouTube at run time.

**Keywords:** youtube transcript, youtube subtitles, youtube captions, transcript download, youtube to text, subtitle extractor

# Actor input Schema

## `urls` (type: `array`):

YouTube video URLs, playlist URLs, channel URLs, or bare video IDs.

## `language` (type: `string`):

Preferred language for the transcript. Falls back to English auto-generated if not available.

## `outputFormat` (type: `string`):

Format for the transcript output.

## `keepMusicMarkers` (type: `boolean`):

Keep \[Music], \[Applause], and similar markers in the transcript.

## `dropEmpty` (type: `boolean`):

Remove transcript segments that are empty after cleanup.

## `maxVideosPerChannel` (type: `integer`):

Maximum number of videos to fetch from channel URLs.

## `channelDateFrom` (type: `string`):

Only include channel videos published after this date (approximate). Does not apply to playlists.

## `channelDateTo` (type: `string`):

Only include channel videos published before this date (approximate). Does not apply to playlists.

## `concurrency` (type: `integer`):

Number of videos to process in parallel. Higher values are faster but use more memory. Increase the run memory allocation if using concurrency above 3.

## `proxyConfig` (type: `object`):

Select proxies for accessing YouTube.

## Actor input object example

```json
{
  "urls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  ],
  "language": "en",
  "outputFormat": "plain",
  "keepMusicMarkers": false,
  "dropEmpty": true,
  "maxVideosPerChannel": 50,
  "concurrency": 1,
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# 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 = {
    "urls": [
        "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
    ],
    "language": "en",
    "outputFormat": "plain",
    "proxyConfig": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lurkapi/youtube-transcript-download").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 = {
    "urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
    "language": "en",
    "outputFormat": "plain",
    "proxyConfig": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("lurkapi/youtube-transcript-download").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 '{
  "urls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  ],
  "language": "en",
  "outputFormat": "plain",
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call lurkapi/youtube-transcript-download --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Transcript Download",
        "description": "Download transcripts from YouTube videos in multiple formats. Supports playlists, channels, multiple languages, and batch processing.",
        "version": "0.0",
        "x-build-id": "Zc4EzUzia6h0SbBv4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lurkapi~youtube-transcript-download/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lurkapi-youtube-transcript-download",
                "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/lurkapi~youtube-transcript-download/runs": {
            "post": {
                "operationId": "runs-sync-lurkapi-youtube-transcript-download",
                "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/lurkapi~youtube-transcript-download/run-sync": {
            "post": {
                "operationId": "run-sync-lurkapi-youtube-transcript-download",
                "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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "YouTube URLs or Video IDs",
                        "maxItems": 1000,
                        "type": "array",
                        "description": "YouTube video URLs, playlist URLs, channel URLs, or bare video IDs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "af",
                            "ak",
                            "am",
                            "ar",
                            "as",
                            "ay",
                            "az",
                            "be",
                            "bg",
                            "bn",
                            "bs",
                            "ca",
                            "ceb",
                            "co",
                            "cs",
                            "cy",
                            "da",
                            "de",
                            "dv",
                            "ee",
                            "el",
                            "eo",
                            "es",
                            "et",
                            "eu",
                            "fa",
                            "fi",
                            "fil",
                            "fr",
                            "fy",
                            "ga",
                            "gd",
                            "gl",
                            "gn",
                            "gu",
                            "ha",
                            "haw",
                            "hi",
                            "hmn",
                            "hr",
                            "ht",
                            "hu",
                            "hy",
                            "id",
                            "ig",
                            "is",
                            "it",
                            "iw",
                            "ja",
                            "jv",
                            "ka",
                            "kk",
                            "km",
                            "kn",
                            "ko",
                            "kri",
                            "ku",
                            "ky",
                            "la",
                            "lb",
                            "lg",
                            "ln",
                            "lo",
                            "lt",
                            "lv",
                            "mg",
                            "mi",
                            "mk",
                            "ml",
                            "mn",
                            "mr",
                            "ms",
                            "mt",
                            "my",
                            "ne",
                            "nl",
                            "no",
                            "nso",
                            "ny",
                            "om",
                            "or",
                            "pa",
                            "pl",
                            "ps",
                            "pt",
                            "qu",
                            "ro",
                            "ru",
                            "rw",
                            "sa",
                            "sd",
                            "si",
                            "sk",
                            "sl",
                            "sm",
                            "sn",
                            "so",
                            "sq",
                            "sr",
                            "st",
                            "su",
                            "sv",
                            "sw",
                            "ta",
                            "te",
                            "tg",
                            "th",
                            "ti",
                            "tk",
                            "tr",
                            "ts",
                            "tt",
                            "ug",
                            "uk",
                            "ur",
                            "uz",
                            "vi",
                            "xh",
                            "yo",
                            "zh",
                            "zh-Hans",
                            "zh-Hant",
                            "zu"
                        ],
                        "type": "string",
                        "description": "Preferred language for the transcript. Falls back to English auto-generated if not available.",
                        "default": "en"
                    },
                    "outputFormat": {
                        "title": "Output Format",
                        "enum": [
                            "plain",
                            "timestamped",
                            "srt",
                            "vtt",
                            "json",
                            "csv",
                            "xml",
                            "all"
                        ],
                        "type": "string",
                        "description": "Format for the transcript output.",
                        "default": "plain"
                    },
                    "keepMusicMarkers": {
                        "title": "Keep Music Markers",
                        "type": "boolean",
                        "description": "Keep [Music], [Applause], and similar markers in the transcript.",
                        "default": false
                    },
                    "dropEmpty": {
                        "title": "Drop Empty Segments",
                        "type": "boolean",
                        "description": "Remove transcript segments that are empty after cleanup.",
                        "default": true
                    },
                    "maxVideosPerChannel": {
                        "title": "Max Videos Per Channel",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of videos to fetch from channel URLs.",
                        "default": 50
                    },
                    "channelDateFrom": {
                        "title": "Channel Date From",
                        "type": "string",
                        "description": "Only include channel videos published after this date (approximate). Does not apply to playlists."
                    },
                    "channelDateTo": {
                        "title": "Channel Date To",
                        "type": "string",
                        "description": "Only include channel videos published before this date (approximate). Does not apply to playlists."
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Number of videos to process in parallel. Higher values are faster but use more memory. Increase the run memory allocation if using concurrency above 3.",
                        "default": 1
                    },
                    "proxyConfig": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Select proxies for accessing YouTube.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": []
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
