# Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc. (`invideoiq/video-transcript-extractor`) Actor

Scrapes transcripts from online video/audio content on multiple plateforms (Youtube, X, ..) in any available language. It delivers outputs in both JSON and LLM-ready formats, making it ideal for analytics, and AI-based applications. Perfect for research and building intelligent conversational agents

- **URL**: https://apify.com/invideoiq/video-transcript-extractor.md
- **Developed by:** [InVideoIQ](https://apify.com/invideoiq) (community)
- **Categories:** AI, Automation, Social media
- **Stats:** 64 total users, 8 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### 🎯 Video Transcript Extractor: One API for Every Video Platform

Most transcript tools only work with YouTube. **Video Transcript Extractor** works everywhere.

Extract clean, structured transcripts from **YouTube, X (Twitter), TikTok, Facebook, Dailymotion, Vimeo, Loom**, and more through a single, unified API. No switching between tools, no per-platform headaches.

Send a URL. Get back **timestamped transcript + rich metadata** in seconds.

**💰 $0.01 per video · 🌍 Multi-language · ⚡ High concurrency**

---

### ✨ Why Teams Choose Video Transcript Extractor

| | Video Transcript Extractor | Typical Competitor |
|---|---|---|
| Platforms supported | **7+ (YouTube, X, TikTok, Facebook, Vimeo, Dailymotion, Loom)** | YouTube only |
| Output format | **Timestamped segments + LLM-ready plain text** | Segments only |
| Video metadata | **Title, description, thumbnail, duration, views, likes, channel, publish date** | Transcript only |
| Speed | **Fast async processing, high concurrency, no rate limits** | Sequential or rate-limited |
| Language support | **Multi-language with auto-detection** | Limited |
| Proxy handling | **Built-in residential proxies with smart fallback** | Manual or none |

---

### 📊 What Data Can Video Transcript Extractor Extract?

Every request returns two transcript formats plus rich metadata:

- **`text`** — The full transcript as a single plain string, ready to feed into any LLM or NLP pipeline
- **`transcript`** — Timestamped segments with precise start/end times, ideal for indexing, search, and UI display
- **Video metadata** — Title, description, thumbnail, duration, view count, like count, channel info, publish date
- **Language info** — Available languages and which one was selected

```json
{
  "title": "How to Build a Startup in 2026",
  "description": "In this video we break down...",
  "duration": 847,
  "thumbnail": "https://i.ytimg.com/vi/abc123/maxresdefault.jpg",
  "view_count": 284000,
  "like_count": 12400,
  "published_date": "2026-03-10",
  "channel": "TechFounders",
  "channel_url": "https://youtube.com/@TechFounders",
  "channel_id": "UC1234567890",
  "available_languages": ["English", "French", "Spanish"],
  "selected_language": "English",
  "text": "Welcome back to the channel. Today we're going to talk about...",
  "transcript": [
    { "text": "Welcome back to the channel.", "start": 0.0, "end": 1.8 },
    { "text": "Today we're going to talk about...", "start": 1.8, "end": 4.2 }
  ]
}
````

> **Note:** `like_count`, `channel`, `channel_url`, `available_languages`, and `selected_language` are currently available for YouTube videos only.

You can download the dataset extracted by Video Transcript Extractor in various formats such as **JSON, CSV, Excel, or HTML** directly from the Apify dashboard.

***

### 🔗 Supported Video Platforms

| Platform | Notes |
|----------|-------|
| **YouTube** | Long-form videos, Shorts, auto-generated and manual captions |
| **X (Twitter)** | Paste the tweet URL containing the video |
| **TikTok** | Public videos with available captions |
| **Facebook** | Public videos |
| **Dailymotion** | Full support |
| **Vimeo** | Full support |
| **Loom** | Full support |

Also works on many other video hosting sites and media platforms. If it has embedded subtitles, this actor can probably extract them.

> Need to transcribe videos that **don't have captions** (e.g. Instagram, or videos without any subtitle track)? Use our speech-to-text companion actor: [Video Transcriber](https://apify.com/invideoiq/video-transcriber).

***

### 🛠️ How To Extract Video Transcripts Using Video Transcript Extractor

1. Go to [Video Transcript Extractor](https://apify.com/invideoiq/video-transcript-extractor) on Apify
2. Click **"Try for free"**
3. Paste one or more video URLs into the `video_urls` field — you can mix platforms in a single run
4. *(Optional)* Set a `language` code (e.g. `"en"`, `"fr"`) to request a specific transcript language
5. Click **"Start"** and wait for the run to finish
6. Download your transcripts in **JSON, CSV, Excel, or HTML** from the dataset tab

#### Run it your way

Because this is an Apify Actor, you also get:

- **API access**: Call it programmatically from any language — check the [API tab](https://apify.com/invideoiq/video-transcript-extractor/api) for ready-made code examples
- **Scheduling**: Set up recurring runs to monitor new video content automatically
- **Integrations**: Connect to Zapier, Make, Google Sheets, webhooks, and more
- **Monitoring**: Track run history, costs, and results from the Apify dashboard

***

### 📥 Input

| Parameter | Required | Description |
|-----------|----------|-------------|
| `video_urls` | Yes | Array of video URLs. Mix platforms freely in a single request |
| `language` | No | Language code (`"en"`, `"fr"`, `"de"`). Leave empty for default language |
| `best_effort` | No | If `true`, returns metadata even when no transcript is available |

#### Advanced YouTube Settings (rarely needed)

| Parameter | Description |
|-----------|-------------|
| `proxy_country` | Two-letter country code for residential proxy (default: `US`). Auto-falls back to US if unavailable |
| `get_yt_original_metadata` | Fetch original (non-localized) title and description via YouTube Data API |
| `youtube_api_key` | Your own YouTube Data API v3 key. Optional — a shared key is provided by default |

#### Input Example

```json
{
  "video_urls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://x.com/elonmusk/status/1234567890",
    "https://www.tiktok.com/@user/video/1234567890"
  ],
  "language": "en"
}
```

Yes, you can mix platforms in a single batch. They all come back in the same format.

***

### 🚀 Quick Start Code Examples

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/invideoiq~video-transcript-extractor/run-sync?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"video_urls": ["https://www.youtube.com/watch?v=vl6jn-DdafM", "https://www.youtube.com/watch?v=4czjS9h4Fpg"]}'
```

#### Python

```python
import requests
import json

url = "https://api.apify.com/v2/acts/invideoiq~video-transcript-extractor/run-sync?token=YOUR_TOKEN"
data = {
    "video_urls": [
        "https://www.youtube.com/watch?v=vl6jn-DdafM",
        "https://www.youtube.com/watch?v=4czjS9h4Fpg"
    ]
}
response = requests.post(url, json=data, headers={"Content-Type": "application/json"})
print(json.dumps(response.json(), indent=4, ensure_ascii=False))
```

#### JavaScript

```javascript
const response = await fetch(
  "https://api.apify.com/v2/acts/invideoiq~video-transcript-extractor/run-sync?token=YOUR_TOKEN",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      video_urls: [
        "https://www.youtube.com/watch?v=vl6jn-DdafM",
        "https://www.youtube.com/watch?v=4czjS9h4Fpg",
      ],
    }),
  }
);
const data = await response.json();
console.log(data);
```

***

### 💰 How Much Does Video Transcript Extraction Cost?

**$10 per 1,000 results** (pay per result — you are not charged for Apify platform usage, only a fixed price per extraction event).

| Scenario | Cost |
|----------|------|
| 1 video | ~$0.01 |
| 100 videos | ~$1.00 |
| 1,000 videos | $10.00 |
| 10,000 videos | $100.00 |

On the **Apify free plan**, you get **$5 of platform usage credits per month** — enough to test the actor and extract transcripts from hundreds of videos before committing to a paid plan.

***

### 📈 Use Cases for Video Transcript Extraction

- **RAG pipelines and AI agents** — Feed video transcripts into your retrieval-augmented generation system. One API call gives you LLM-ready text.
- **Content repurposing** — Turn YouTube videos, tweets, and TikToks into blog posts, newsletters, or social media threads
- **Market research** — Monitor what competitors, influencers, or thought leaders say across platforms. Batch-process hundreds of URLs.
- **Accessibility and compliance** — Generate text versions of video content for accessibility requirements
- **Media monitoring** — Track brand mentions across video platforms at scale
- **Dataset building** — Build training datasets from video content across multiple platforms
- **Sentiment analysis** — Process transcripts through NLP pipelines for opinion mining and brand perception

***

### ❓ FAQ

#### Is it legal to extract video transcripts?

This actor extracts publicly available subtitle tracks and does not access private user data such as email addresses, gender, or location — only information that users and platforms have chosen to share publicly. However, results may contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not extract personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

#### What if a video has no subtitles/captions?

The actor relies on embedded subtitle tracks (manual or auto-generated). If none exist, it returns an error — or metadata-only if `best_effort` is enabled. For videos without any captions, use our [Video Transcriber](https://apify.com/invideoiq/video-transcriber) which uses speech-to-text.

#### Can I specify a transcript language?

Yes. Pass a language code like `"en"` or `"fr"` in the `language` field. If that language isn't available for a given video, you'll get a clear message. When in doubt, leave it empty and the actor returns the default language. For YouTube, check the `available_languages` field in the output to see what's available.

#### How many videos can I process at once?

As many as you need. Pass all your URLs in the `video_urls` array and the actor processes them concurrently with no rate limiting.

#### Does it work with private or age-restricted videos?

No. The actor can only access publicly available videos with public subtitle tracks.

#### I'm getting an error for my URL. What's wrong?

Make sure the URL is a complete, direct link to the video (e.g. `https://www.youtube.com/watch?v=...`, not a shortened or embedded URL). The actor supports direct links from YouTube, X (tweet URLs), TikTok, Facebook, Vimeo, Dailymotion, and Loom.

#### What is the difference between Video Transcript Extractor and Video Transcript Scraper?

Both extract caption-based transcripts with the same output format. **Video Transcript Extractor** uses pay-per-result pricing ($10/1,000 results), while **Video Transcript Scraper** uses a rental model ($19.99/month + usage). Choose whichever pricing model fits your usage pattern.

***

### 🔗 Related Actors

Need a different pricing model or a different kind of output? Check the rest of the suite:

- [Video Transcript Scraper](https://apify.com/invideoiq/video-transcript-scraper) — Rental model, **$20/month + usage**. Best if you want the same transcript-retrieval workflow under a rental plan.
- [Video Transcriber](https://apify.com/invideoiq/video-transcriber) — Speech-to-text for videos that do not already have captions or subtitle tracks.
- [AI Video Data Extractor](https://apify.com/invideoiq/ai-video-data-extractor) — AI-powered structured data extraction. Define a JSON schema and get back custom structured data from any video.

***

### 💬 Support

Found a bug or have a feature request? [Open an issue](https://apify.com/invideoiq/video-transcript-extractor/issues) and we'll get back to you.

Need a custom workflow or integration? Reach out through the [Issues tab](https://apify.com/invideoiq/video-transcript-extractor/issues) — we're happy to help tailor the actor to your use case.

# Actor input Schema

## `video_urls` (type: `array`):

Array of video URLs (YouTube, X/Twitter, Dailymotion, etc.). If provided, overrides video\_url.

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

Languages of the subtitles to download, e.g. "en", "fr", etc. Leave blank to get the default language.

## `best_effort` (type: `boolean`):

If true, the actor will get the metadata even if transcript is unavailable

## `proxy_country` (type: `string`):

Select the proxy country

## `get_yt_original_metadata` (type: `boolean`):

Youtube depending on the location translates some metadata like title and description. If this parameter is enabled, the actor will get the original metadata of the video

## `youtube_api_key` (type: `string`):

Getting original metadata from Youtube requires a YouTube Data API Key. If you don't have one, we provide one for you in the Actor's code, however, Youtube limits an API key to 10000 requests a day and therefore it's first come first serve. So we encourage you to get your own API Key. You can get one for free: https://developers.google.com/youtube/registering\_an\_application

## Actor input object example

```json
{
  "video_urls": [
    "https://www.youtube.com/watch?v=vl6jn-DdafM"
  ],
  "best_effort": false,
  "proxy_country": "US",
  "get_yt_original_metadata": false
}
```

# Actor output Schema

## `results` (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 = {
    "video_urls": [
        "https://www.youtube.com/watch?v=vl6jn-DdafM"
    ],
    "language": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("invideoiq/video-transcript-extractor").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 = {
    "video_urls": ["https://www.youtube.com/watch?v=vl6jn-DdafM"],
    "language": "",
}

# Run the Actor and wait for it to finish
run = client.actor("invideoiq/video-transcript-extractor").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 '{
  "video_urls": [
    "https://www.youtube.com/watch?v=vl6jn-DdafM"
  ],
  "language": ""
}' |
apify call invideoiq/video-transcript-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Video Transcript Extractor: Youtube, X, Facebook, Tiktok, etc.",
        "description": "Scrapes transcripts from online video/audio content on multiple plateforms (Youtube, X, ..) in any available language. It delivers outputs in both JSON and LLM-ready formats, making it ideal for analytics, and AI-based applications. Perfect for research and building intelligent conversational agents",
        "version": "0.0",
        "x-build-id": "nmuSxZrumUQpxYq16"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/invideoiq~video-transcript-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-invideoiq-video-transcript-extractor",
                "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/invideoiq~video-transcript-extractor/runs": {
            "post": {
                "operationId": "runs-sync-invideoiq-video-transcript-extractor",
                "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/invideoiq~video-transcript-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-invideoiq-video-transcript-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "video_urls": {
                        "title": "Video URLs",
                        "type": "array",
                        "description": "Array of video URLs (YouTube, X/Twitter, Dailymotion, etc.). If provided, overrides video_url.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Languages of the subtitles to download, e.g. \"en\", \"fr\", etc. Leave blank to get the default language."
                    },
                    "best_effort": {
                        "title": "Best Effort",
                        "type": "boolean",
                        "description": "If true, the actor will get the metadata even if transcript is unavailable",
                        "default": false
                    },
                    "proxy_country": {
                        "title": "Select a Residential Proxy Country",
                        "enum": [
                            "US",
                            "CA",
                            "GB",
                            "DE",
                            "FR",
                            "ES",
                            "IT",
                            "NL",
                            "BE",
                            "CH",
                            "AT",
                            "SE",
                            "NO",
                            "DK",
                            "FI",
                            "IE",
                            "PT",
                            "GR",
                            "PL",
                            "CZ",
                            "SK",
                            "HU",
                            "RO",
                            "BG",
                            "HR",
                            "SI",
                            "RS",
                            "BA",
                            "MK",
                            "AL",
                            "UA",
                            "RU",
                            "TR",
                            "IL",
                            "AE",
                            "SA",
                            "QA",
                            "KW",
                            "OM",
                            "BH",
                            "JO",
                            "LB",
                            "EG",
                            "MA",
                            "DZ",
                            "TN",
                            "ZA",
                            "NG",
                            "KE",
                            "GH",
                            "ET",
                            "CM",
                            "CI",
                            "SN",
                            "UG",
                            "TZ",
                            "ZM",
                            "ZW",
                            "MZ",
                            "AO",
                            "NA",
                            "BW",
                            "CN",
                            "HK",
                            "MO",
                            "TW",
                            "JP",
                            "KR",
                            "SG",
                            "MY",
                            "TH",
                            "ID",
                            "PH",
                            "VN",
                            "IN",
                            "PK",
                            "BD",
                            "LK",
                            "NP",
                            "KH",
                            "LA",
                            "MM",
                            "BN",
                            "AU",
                            "NZ",
                            "FJ",
                            "PG",
                            "MX",
                            "BR",
                            "AR",
                            "CL",
                            "CO",
                            "PE",
                            "VE",
                            "UY",
                            "PY",
                            "BO",
                            "EC",
                            "CR",
                            "PA",
                            "GT",
                            "SV",
                            "HN",
                            "NI",
                            "DO",
                            "HT",
                            "PR",
                            "JM",
                            "TT",
                            "BB",
                            "BS",
                            "AG",
                            "DM",
                            "GD",
                            "LC",
                            "VC"
                        ],
                        "type": "string",
                        "description": "Select the proxy country",
                        "default": "US"
                    },
                    "get_yt_original_metadata": {
                        "title": "Get Youtube Original Metadata",
                        "type": "boolean",
                        "description": "Youtube depending on the location translates some metadata like title and description. If this parameter is enabled, the actor will get the original metadata of the video",
                        "default": false
                    },
                    "youtube_api_key": {
                        "title": "Youtube API Key",
                        "type": "string",
                        "description": "Getting original metadata from Youtube requires a YouTube Data API Key. If you don't have one, we provide one for you in the Actor's code, however, Youtube limits an API key to 10000 requests a day and therefore it's first come first serve. So we encourage you to get your own API Key. You can get one for free: https://developers.google.com/youtube/registering_an_application"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
