# Youtube Transcript Scraper (`scrapelabsapi/youtube-transcript-scraper`) Actor

✨ YouTube Transcript Scraper to extract video transcripts quickly and at scale. Collect captions, timestamps, and spoken content with accuracy. Ideal for research, SEO, and content analysis. Features: ⚡ fast extraction • 📊 clean output • 🔍 detailed insights • 🌍 scalable automation

- **URL**: https://apify.com/scrapelabsapi/youtube-transcript-scraper.md
- **Developed by:** [ScrapeLabs](https://apify.com/scrapelabsapi) (community)
- **Categories:** Automation, Developer tools, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## 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 Scraper

The Youtube Transcript Scraper is a fast, scalable YouTube transcript extractor that converts public captions into structured data for analysis and reuse. It solves the tedious task of manual transcription by letting you paste one or more video URLs and automatically returns clean transcripts as plain text or timestamped captions. Built for marketers, developers, data analysts, and researchers, this YouTube transcript downloader helps you export YouTube captions at scale and power SEO, content repurposing, and NLP workflows.

### What data / output can you get?

Below are the exact fields this actor saves to the Apify dataset for each processed URL. The structure supports both timestamped captions and plain-text transcripts.

| Data type | Description | Example value |
| --- | --- | --- |
| id | YouTube video ID extracted from the input URL | "dQw4w9WgXcQ" |
| url | Canonical watch URL built from the video ID | "https://www.youtube.com/watch?v=dQw4w9WgXcQ" |
| input | The original input string you provided | "https://youtu.be/dQw4w9WgXcQ" |
| transcripts | Array of transcripts by language (filtered by settings) | [ { "language": "English (auto-generated)", "content": [...] } ] |
| transcripts[].language | The caption track language label returned by YouTube | "English (auto-generated)" |
| transcripts[].content (timestamp) | When outputFormat = "timestamp": array of caption entries | [ { "startMs": 520, "endMs": 2120, "startTime": "0:00", "text": "We're no strangers to love" } ] |
| transcripts[].content[].startMs | Caption start time in milliseconds | 520 |
| transcripts[].content[].endMs | Caption end time in milliseconds | 2120 |
| transcripts[].content[].startTime | Human-readable start time (MM:SS) | "0:00" |
| transcripts[].content[].text | Caption text for the time slice | "We're no strangers to love" |
| transcripts[].content (text) | When outputFormat = "text": the full transcript as a single string | "We're no strangers to love You know the rules and so do I ..." |

Notes:
- Multiple languages can be returned for a single video, depending on your includeEnglishAG and includeNonEnglish settings.
- Results stream live to the Apify dataset as each URL finishes, so you can download partial results mid-run.
- You can export results from the dataset in JSON, CSV, or Excel for downstream use.

### Key features

- ⚙️ Flexible transcript formats (timestamp or text) — Choose between detailed timestamped captions (startMs, endMs, startTime, text) or a single plain-text transcript with outputFormat = "timestamp" or "text".
- 🌐 Language-aware filtering — Control inclusion of English auto-generated captions and non-English transcripts via includeEnglishAG and includeNonEnglish to fine-tune your dataset.
- 📦 Batch URL processing — Supply multiple YouTube URLs in urls and process them in a single run for a bulk YouTube closed captions scraper workflow.
- 📤 Live dataset streaming — Each completed URL is appended immediately to the dataset, enabling faster feedback loops and incremental exports.
- 🛡️ Smart proxy defaults — Uses the Apify RESIDENTIAL proxy by default to reduce YouTube IP blocks; you can customize proxyConfiguration or let it auto-configure.
- 🧰 Developer-friendly & automation-ready — Works seamlessly with the Apify API and Python runtime, making it easy to integrate as a YouTube transcript API component in ETL pipelines and automation tools.
- 🔎 Reliable extraction backbone — Powered by youtube-transcript-api under the hood for consistent YouTube transcript parsing, including support to download auto-generated YouTube subtitles when allowed by your settings.

### How to use Youtube Transcript Scraper - step by step

1. Create or log in to your Apify account.
2. Open the “youtube-transcript-scraper” actor in Apify.
3. Add input URLs:
   - Paste one or more YouTube video links into urls (supports both youtube.com/watch?v=... and youtu.be/...).
4. Configure language and format:
   - includeEnglishAG: include or exclude English auto-generated captions.
   - includeNonEnglish: include or exclude non-English transcripts.
   - outputFormat: choose "timestamp" for detailed caption entries or "text" for a single plain-text transcript.
5. Set proxy (optional):
   - Leave proxyConfiguration empty to use Apify RESIDENTIAL by default, or supply your own proxy settings.
6. Start the run:
   - The actor fetches transcripts per URL and streams each result to the dataset as soon as it completes.
7. Download your results:
   - Open the run’s Dataset tab to export JSON, CSV, or Excel and feed the data into your SEO, research, or analytics tools.

Pro tip: Use the "timestamp" format when you need precise caption timings for AI/LLM pipelines, video indexing, or searchable archives, and switch to "text" for quick content repurposing and summaries.

### Use cases

| Use case name | Description |
| --- | --- |
| SEO teams — export YouTube captions for content repurposing | Extract transcripts to create blog posts, meta descriptions, and keyword-rich articles using a scalable YouTube subtitle to text converter. |
| Research & academia — analyze video content at scale | Collect clean text for topic modeling, sentiment analysis, and qualitative studies with a dependable YouTube transcript parser. |
| Accessibility — enhance caption availability | Retrieve public captions to improve accessibility documentation and review, using a compliant YouTube caption downloader workflow. |
| Developers — build a transcripts API pipeline | Integrate the dataset into your backend via Apify API as a practical YouTube transcript API component for search and chatbots. |
| Social & marketing — snippet extraction for campaigns | Quickly find quotes and highlights from videos with a bulk YouTube transcript downloader and export ready-to-use snippets. |
| Data analysts — structure video speech for NLP | Use timestamped captions to align text with audio/video timelines for ML feature engineering and downstream analytics. |

### Why choose Youtube Transcript Scraper?

The Youtube Transcript Scraper focuses on precision, automation, and reliability for extracting public YouTube captions into structured, analysis-ready data.

- ✅ Accurate, structured output — Get clean transcripts with consistent keys and optional timestamps for dependable downstream use.
- 🌍 Multilingual support & filters — Include English auto-generated or non-English tracks on demand to fit your language strategy.
- 🚀 Built for scale — Process multiple URLs at once and stream results live to the dataset for faster iteration.
- 💻 Developer-ready — Integrate via the Apify platform and Python runtime to automate transcript extraction in your apps and pipelines.
- 🛡️ Robust proxy defaults — Uses Apify RESIDENTIAL proxies by default to mitigate IP blocking and improve run stability.
- 🔄 Better than extensions — Avoid brittle browser plugins; run a production-ready YouTube transcript extractor with repeatable outputs and infrastructure support.
- 💸 Cost-effective automation — Operate reliably within Apify’s usage-based environment and scale as your workloads grow.

In short: a production-ready YouTube closed captions scraper that outperforms fragile alternatives with cleaner data, more control, and automation built in.

### Is it legal / ethical to use Youtube Transcript Scraper?

Yes — when done responsibly. This actor automates access to public caption tracks available on YouTube and does not access private or authenticated content.

Guidelines for responsible use:
- Review and comply with YouTube’s Terms of Service and your local regulations.
- Use only publicly available transcripts and respect content owners’ rights for redistribution or commercial reuse.
- Avoid scraping private, paywalled, or region-restricted videos.
- For edge cases or commercial redistribution, consult your legal team to ensure compliance with applicable laws (e.g., GDPR/CCPA) and platform terms.

### Input parameters & output format

#### Example JSON input
```json
{
  "urls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://youtu.be/5NV6Rdv1a3I"
  ],
  "includeEnglishAG": true,
  "includeNonEnglish": false,
  "outputFormat": "timestamp",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

#### Input parameter reference

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| urls | array | Yes | \[] | One or more YouTube video URLs to process. Each completed URL is appended immediately to the dataset. |
| includeEnglishAG | boolean | No | true | Whether to include English auto-generated transcripts. |
| includeNonEnglish | boolean | No | false | Whether to include non-English transcripts. |
| outputFormat | string ("timestamp" or "text") | No | "text" | Format of transcript output: "timestamp" returns detailed timestamps, "text" returns plain text. |
| proxyConfiguration | object | No | {} | Proxy configuration. Uses Apify RESIDENTIAL proxy by default to bypass YouTube IP blocking. If not configured, will try to use Apify proxy automatically. |

Notes:

- Runtime behavior: if includeNonEnglish isn’t provided, the current implementation treats it as true internally; use the explicit value you prefer to avoid surprises.
- Provide valid video URLs (youtube.com/watch?v=... or youtu.be/...) — both are supported.

#### Example JSON output (timestamp format)

```json
{
  "id": "dQw4w9WgXcQ",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "input": "https://youtu.be/dQw4w9WgXcQ",
  "transcripts": [
    {
      "language": "English (auto-generated)",
      "content": [
        {
          "startMs": 520,
          "endMs": 2120,
          "startTime": "0:00",
          "text": "We're no strangers to love"
        },
        {
          "startMs": 2120,
          "endMs": 3640,
          "startTime": "0:02",
          "text": "You know the rules and so do I"
        }
      ]
    }
  ]
}
```

When outputFormat = "text", the content becomes a single string:

```json
{
  "id": "dQw4w9WgXcQ",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "input": "https://youtu.be/dQw4w9WgXcQ",
  "transcripts": [
    {
      "language": "English (auto-generated)",
      "content": "We're no strangers to love You know the rules and so do I ..."
    }
  ]
}
```

Field behavior:

- transcripts may be an empty array if a video has no available transcripts or if filters exclude all tracks.
- startMs/endMs/startTime/text fields appear only when outputFormat = "timestamp".

### FAQ

#### Can it extract auto-generated YouTube captions?

Yes. Set includeEnglishAG to true to include English auto-generated tracks. If set to false, English auto-generated captions will be excluded.

#### Does it support non-English transcripts?

Yes. Set includeNonEnglish to true to include non-English transcripts. When false, only English tracks are considered (subject to availability and filters).

#### Can I use short youtu.be links?

Yes. The actor extracts the video ID from both youtube.com/watch?v=... and youtu.be/... links, making it easy to get YouTube transcript online from any standard video URL.

#### How do I download plain text vs timestamped captions?

Choose the outputFormat input: use "text" for a single plain-text transcript or "timestamp" to export YouTube captions with startMs/endMs and startTime for each segment.

#### How many videos can I process in one run?

You can provide multiple URLs in the urls array for bulk processing. Practical limits depend on your Apify plan and runtime limits. Results stream to the dataset as each URL completes.

#### Do I need to configure a proxy?

It’s optional. If not provided, the actor attempts to use the Apify RESIDENTIAL proxy by default to reduce IP blocks. You can customize proxyConfiguration if needed.

#### Does it return video metadata like title or views?

No. This actor focuses on transcripts only and outputs id, url, input, and transcripts. It operates as a focused YouTube transcript extractor rather than a full video metadata scraper.

#### Can I integrate this with my app or workflow?

Yes. Use the Apify API to pull dataset items into your systems. It’s great for building a YouTube transcript API pipeline, automations, and exports to CSV/JSON for further processing.

### Final thoughts

The Youtube Transcript Scraper is built to convert public YouTube captions into clean, structured text for analysis and reuse. With flexible formats, language-aware filters, bulk URL support, and smart proxy defaults, it’s ideal for marketers, developers, data analysts, and researchers. Use the Apify API to automate your YouTube transcript downloader pipeline or export datasets for SEO and analytics. Start extracting smarter, scalable insights from video content today.

# Actor input Schema

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

One or more YouTube video URLs to process. Each completed URL is appended immediately to the dataset.

## `includeEnglishAG` (type: `boolean`):

Whether to include English auto-generated transcripts

## `includeNonEnglish` (type: `boolean`):

Whether to include non-English transcripts

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

Format of transcript output: 'timestamp' returns detailed timestamps, 'text' returns plain text

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

Proxy configuration. Uses Apify RESIDENTIAL proxy by default to bypass YouTube IP blocking. If not configured, will try to use Apify proxy automatically.

## Actor input object example

```json
{
  "urls": [
    "https://www.youtube.com/watch?v=4KbrxIpQgkM"
  ],
  "includeEnglishAG": true,
  "includeNonEnglish": false,
  "outputFormat": "text",
  "proxyConfiguration": {}
}
```

# 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=4KbrxIpQgkM"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapelabsapi/youtube-transcript-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 = { "urls": ["https://www.youtube.com/watch?v=4KbrxIpQgkM"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapelabsapi/youtube-transcript-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 '{
  "urls": [
    "https://www.youtube.com/watch?v=4KbrxIpQgkM"
  ]
}' |
apify call scrapelabsapi/youtube-transcript-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Youtube Transcript Scraper",
        "description": "✨ YouTube Transcript Scraper to extract video transcripts quickly and at scale. Collect captions, timestamps, and spoken content with accuracy. Ideal for research, SEO, and content analysis. Features: ⚡ fast extraction • 📊 clean output • 🔍 detailed insights • 🌍 scalable automation",
        "version": "0.1",
        "x-build-id": "NyKOWHTQv4B1JcKO3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapelabsapi~youtube-transcript-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapelabsapi-youtube-transcript-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/scrapelabsapi~youtube-transcript-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapelabsapi-youtube-transcript-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/scrapelabsapi~youtube-transcript-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapelabsapi-youtube-transcript-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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "YouTube URLs",
                        "type": "array",
                        "description": "One or more YouTube video URLs to process. Each completed URL is appended immediately to the dataset.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeEnglishAG": {
                        "title": "Include English Auto-Generated",
                        "type": "boolean",
                        "description": "Whether to include English auto-generated transcripts",
                        "default": true
                    },
                    "includeNonEnglish": {
                        "title": "Include Non-English Transcripts",
                        "type": "boolean",
                        "description": "Whether to include non-English transcripts",
                        "default": false
                    },
                    "outputFormat": {
                        "title": "Output Format",
                        "enum": [
                            "timestamp",
                            "text"
                        ],
                        "type": "string",
                        "description": "Format of transcript output: 'timestamp' returns detailed timestamps, 'text' returns plain text",
                        "default": "text"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy configuration. Uses Apify RESIDENTIAL proxy by default to bypass YouTube IP blocking. If not configured, will try to use Apify proxy automatically.",
                        "default": {}
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
