# TikTok Transcript Scraper (`maximedupre/tiktok-transcript-scraper`) Actor

Extract public TikTok transcripts, captions, timed segments, VTT/SRT subtitles, and video metadata from TikTok video URLs. Export rows to datasets, API, CSV, Excel, or integrations.

- **URL**: https://apify.com/maximedupre/tiktok-transcript-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 7 total users, 5 monthly users, 93.8% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 tiktok transcript rows

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

### 📄 Get TikTok transcripts from public video URLs

TikTok Transcript Scraper extracts public captions and transcripts from [TikTok](https://www.tiktok.com/) videos. Paste one or more TikTok video URLs and get plain transcript text, timed transcript segments, VTT/SRT subtitle text, video metadata, creator fields, engagement counts, music details, and source links in an Apify dataset.

Use this TikTok transcript scraper when you need searchable text from short-form videos for content research, social listening, accessibility workflows, trend analysis, creator analysis, or AI pipelines. It works with public videos only, and it returns transcripts when TikTok exposes public captions for that video.

For a small first run, keep the prefilled TED Talks video URL. It has public captions, so you can quickly check the transcript row shape before adding more TikTok links.

### ⚙️ What this TikTok transcript scraper does

- Accepts public TikTok video URLs, including desktop, mobile, and short-link formats.
- Saves one dataset row per video transcript language.
- Saves plain transcript text and timestamped segments.
- Can include generated VTT and SRT subtitle text.
- Adds video metadata such as caption, publish time, duration, thumbnail, hashtags, and video ID.
- Adds creator metadata such as username, display name, verification status, signature, and visible author stats.
- Adds visible engagement stats such as plays, likes, comments, shares, and collects.
- Adds music or original-sound metadata when TikTok exposes it.
- Can save a no-transcript status row when a public video has no public captions.

### 📊 Data you can get

Each transcript row includes source fields so you can trace it back to the exact TikTok URL. Core fields include:

- `inputUrl`, `resolvedUrl`, `inputIndex`, and `videoId`
- `status` and `statusReason`
- `languageCode` and `transcriptSource`
- `transcriptText`
- `segments` with start time, end time, and text
- `segmentCount` and `scrapedAt`
- `subtitleFormats.vtt` and `subtitleFormats.srt` when enabled
- `username`, `authorName`, `caption`, `publishedAt`, and `durationSeconds`
- `video`, `author`, `engagement`, and `music` objects when their metadata toggles are enabled

Some fields can be `null` when TikTok does not show them on the public video page. Videos without public captions can still return a status row when **Save no-transcript rows** is on.

### 🚀 Common use cases

- Turn TikTok captions into searchable text for content analysis.
- Export TikTok video transcripts to JSON, CSV, Excel, or an API workflow.
- Collect hooks, spoken topics, and script patterns from public videos.
- Build datasets for social listening, brand monitoring, or trend research.
- Feed transcript text, timing, and video metadata into AI summarization or classification.
- Create subtitle-ready VTT/SRT files when TikTok exposes captions.
- Track which public videos have captions and which do not.

### ▶️ How to run it

1. Add one or more public TikTok video URLs in **TikTok video URLs**.
2. Keep **Languages per video** at `10`, or lower it for a smaller first run.
3. Optional: add language codes such as `en`, `eng-US`, `es`, or `fr` in **Language filter**.
4. Choose whether to include metadata, VTT/SRT formats, and no-transcript status rows.
5. Start the Actor and open the dataset.

The default input is intentionally small. After checking the row shape, add more TikTok video URLs or call the Actor through the Apify API, scheduler, webhooks, or integrations.

### 🛠️ Input

#### 🧪 Example input

```json
{
	"videoUrls": [
		{
			"url": "https://www.tiktok.com/@tedtoks/video/7295065135788477742"
		}
	],
	"maxTranscriptLanguagesPerVideo": 10,
	"languageFilter": [],
	"includeNoTranscriptRows": true,
	"includeSubtitleFormats": true,
	"includeVideoMetadata": true,
	"includeAuthorMetadata": true,
	"includeEngagementStats": true,
	"includeMusicMetadata": true
}
````

#### 🎛️ Input fields

| Field | What it does |
| --- | --- |
| `videoUrls` | Public TikTok video URLs to read. Desktop, mobile, and short links are accepted. |
| `maxTranscriptLanguagesPerVideo` | Caps how many transcript-language rows can be saved for each video. |
| `languageFilter` | Optional language codes to keep. Leave empty to keep every public transcript language. |
| `includeNoTranscriptRows` | Saves a status row for videos with no public captions or no matching language. |
| `includeSubtitleFormats` | Adds VTT and SRT subtitle text to transcript rows. |
| `includeVideoMetadata` | Adds caption, publish time, duration, thumbnail, hashtags, and video fields. |
| `includeAuthorMetadata` | Adds public creator profile fields and visible author stats. |
| `includeEngagementStats` | Adds visible play, like, comment, share, and collect counts. |
| `includeMusicMetadata` | Adds public sound or music fields when available. |

### 📦 Output example

```json
{
	"inputIndex": 1,
	"inputUrl": "https://www.tiktok.com/@washingtonpost/video/7221954260248939822",
	"resolvedUrl": "https://www.tiktok.com/@washingtonpost/video/7221954260248939822",
	"videoId": "7221954260248939822",
	"status": "ok",
	"statusReason": null,
	"username": "washingtonpost",
	"authorName": "The Washington Post",
	"caption": "The newly processed, sharper image of a black hole...",
	"publishedAt": "2023-04-14T17:11:07.000Z",
	"durationSeconds": 30,
	"languageCode": "eng-US",
	"transcriptSource": "ASR",
	"transcriptText": "You remember this black hole image...",
	"segments": [
		{
			"index": 1,
			"startSeconds": 0.158,
			"endSeconds": 2.661,
			"text": "You remember this black hole image we took 4 years ago?"
		}
	],
	"segmentCount": 15,
	"subtitleFormats": {
		"vtt": "WEBVTT...",
		"srt": "1\n00:00:00,158 --> 00:00:02,661\nYou remember this black hole image..."
	},
	"engagement": {
		"playCount": 4500000,
		"likeCount": 357100,
		"commentCount": 1222,
		"shareCount": 3272,
		"collectCount": 20177
	},
	"scrapedAt": "2026-05-22T19:06:02.434Z"
}
```

The exact number of rows depends on how many public transcript languages TikTok exposes for each video and your language limit.

### 💳 Pricing

This Actor uses pay-per-event pricing:

- Actor start: `$0.001` per run.
- TikTok transcript: `$0.0009` per saved transcript or no-transcript status.

The default prefill is small, so you can inspect the dataset before running a larger batch.

### ⚠️ Limits and caveats

- Only public TikTok videos are supported.
- The Actor does not use TikTok login, cookies, or private account access.
- It returns transcripts only when TikTok exposes public captions or subtitle files for the video.
- Private, deleted, unavailable, or region-restricted videos may return no transcript or an explanatory status row.
- Some videos expose only one language; others expose creator captions plus machine-translated captions.
- This Actor does not download TikTok videos or audio files.
- This Actor does not search TikTok profiles, hashtags, comments, or feeds. Paste direct video URLs.

### ❓ FAQ

#### 🔐 Does this TikTok transcript scraper need cookies?

No. It reads public TikTok video pages and public caption files. It does not ask for TikTok cookies, login details, or an API key.

#### 🌐 Can it scrape TikTok captions in multiple languages?

Yes, when TikTok exposes multiple public caption tracks for the video. The Actor saves one row per transcript language up to your **Languages per video** limit.

#### 🚦 What happens when a video has no transcript?

If **Save no-transcript rows** is enabled, the Actor saves one status row for that video. If it is disabled, videos without matching public captions produce no row.

#### 📤 Can I export TikTok transcripts to CSV or Excel?

Yes. Results are saved to an Apify dataset, which you can export as JSON, CSV, Excel, XML, RSS, or through the Apify API.

#### 🤖 Does it transcribe audio with AI?

No. This Actor extracts public captions and subtitle files that TikTok exposes. It does not download audio or create new AI transcripts from videos that have no public captions.

#### 🔗 Can I scrape a TikTok profile or hashtag?

No. This Actor is focused on direct TikTok video URLs. Profile, hashtag, search, comment, and feed scraping are outside this Actor.

### 📝 Changelog

- 0.0: Initial release.
- 0.1: Updated pricing event copy.

### 🆘 Support

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

### 🔗 Other actors

- [YouTube Channel Scraper ↗](https://apify.com/maximedupre/youtube-channel-scraper) - Export public YouTube channel profiles and video rows.
- [Twitter Scraper ↗](https://apify.com/maximedupre/twitter-scraper) - Search Twitter/X posts with text, author, hashtag, date, and engagement filters.
- [Reddit Scraper ↗](https://apify.com/maximedupre/reddit-scraper) - Find Reddit posts and comments around a topic, brand, or trend.
- [LinkedIn Posts Scraper ↗](https://apify.com/maximedupre/linkedin-posts-scraper) - Collect public LinkedIn post rows from profile, company, and direct post URLs.
- [Telegram Channel Messages Scraper ↗](https://apify.com/maximedupre/telegram-channel-messages-scraper) - Export public Telegram channel messages with text, dates, links, and visible engagement.

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

# Actor input Schema

## `videoUrls` (type: `array`):

Paste public TikTok video links. Full desktop links, mobile links, and short links are accepted; profile, hashtag, search, and comment URLs are not supported.

## `maxTranscriptLanguagesPerVideo` (type: `integer`):

Maximum number of transcript-language rows to save for each video. A video can return fewer rows when TikTok exposes fewer caption tracks.

## `languageFilter` (type: `array`):

Optional language codes to keep, such as en, eng-US, es, or fr. Leave empty to keep every public transcript language TikTok exposes.

## `includeNoTranscriptRows` (type: `boolean`):

Save one status row when a public video has no captions or no captions matching your language filter.

## `includeSubtitleFormats` (type: `boolean`):

Add subtitleFormats.vtt and subtitleFormats.srt to each transcript row.

## `includeVideoMetadata` (type: `boolean`):

Add caption, publish time, duration, thumbnail, hashtags, and resolved TikTok video identifiers.

## `includeAuthorMetadata` (type: `boolean`):

Add public creator fields that TikTok exposes on the video page, such as username, display name, verification, and visible profile stats.

## `includeEngagementStats` (type: `boolean`):

Add visible play, like, comment, share, and collect counts when TikTok shows them.

## `includeMusicMetadata` (type: `boolean`):

Add public sound or music fields, including title, author name, original-sound flag, and duration when available.

## Actor input object example

```json
{
  "videoUrls": [
    {
      "url": "https://www.tiktok.com/@tedtoks/video/7295065135788477742"
    }
  ],
  "maxTranscriptLanguagesPerVideo": 10,
  "languageFilter": [],
  "includeNoTranscriptRows": true,
  "includeSubtitleFormats": true,
  "includeVideoMetadata": true,
  "includeAuthorMetadata": true,
  "includeEngagementStats": true,
  "includeMusicMetadata": true
}
```

# Actor output Schema

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

Open the dataset with one row per TikTok video transcript language, plus optional status rows when captions are not available.

# 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 = {
    "videoUrls": [
        {
            "url": "https://www.tiktok.com/@tedtoks/video/7295065135788477742"
        }
    ],
    "languageFilter": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/tiktok-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 = {
    "videoUrls": [{ "url": "https://www.tiktok.com/@tedtoks/video/7295065135788477742" }],
    "languageFilter": [],
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/tiktok-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 '{
  "videoUrls": [
    {
      "url": "https://www.tiktok.com/@tedtoks/video/7295065135788477742"
    }
  ],
  "languageFilter": []
}' |
apify call maximedupre/tiktok-transcript-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Transcript Scraper",
        "description": "Extract public TikTok transcripts, captions, timed segments, VTT/SRT subtitles, and video metadata from TikTok video URLs. Export rows to datasets, API, CSV, Excel, or integrations.",
        "version": "0.1",
        "x-build-id": "KOOnjWarbqxotLq81"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~tiktok-transcript-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-tiktok-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/maximedupre~tiktok-transcript-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-tiktok-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/maximedupre~tiktok-transcript-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-tiktok-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": [
                    "videoUrls"
                ],
                "properties": {
                    "videoUrls": {
                        "title": "TikTok video URLs",
                        "minItems": 1,
                        "maxItems": 500,
                        "type": "array",
                        "description": "Paste public TikTok video links. Full desktop links, mobile links, and short links are accepted; profile, hashtag, search, and comment URLs are not supported.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxTranscriptLanguagesPerVideo": {
                        "title": "Transcript languages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of transcript-language rows to save for each video. A video can return fewer rows when TikTok exposes fewer caption tracks.",
                        "default": 10
                    },
                    "languageFilter": {
                        "title": "Transcript language filter",
                        "type": "array",
                        "description": "Optional language codes to keep, such as en, eng-US, es, or fr. Leave empty to keep every public transcript language TikTok exposes.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeNoTranscriptRows": {
                        "title": "Save no-transcript rows",
                        "type": "boolean",
                        "description": "Save one status row when a public video has no captions or no captions matching your language filter.",
                        "default": true
                    },
                    "includeSubtitleFormats": {
                        "title": "Include VTT and SRT",
                        "type": "boolean",
                        "description": "Add subtitleFormats.vtt and subtitleFormats.srt to each transcript row.",
                        "default": true
                    },
                    "includeVideoMetadata": {
                        "title": "Include video metadata",
                        "type": "boolean",
                        "description": "Add caption, publish time, duration, thumbnail, hashtags, and resolved TikTok video identifiers.",
                        "default": true
                    },
                    "includeAuthorMetadata": {
                        "title": "Include creator metadata",
                        "type": "boolean",
                        "description": "Add public creator fields that TikTok exposes on the video page, such as username, display name, verification, and visible profile stats.",
                        "default": true
                    },
                    "includeEngagementStats": {
                        "title": "Include engagement stats",
                        "type": "boolean",
                        "description": "Add visible play, like, comment, share, and collect counts when TikTok shows them.",
                        "default": true
                    },
                    "includeMusicMetadata": {
                        "title": "Include sound metadata",
                        "type": "boolean",
                        "description": "Add public sound or music fields, including title, author name, original-sound flag, and duration when available.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
