# TED Talks Transcript Scraper (`jungle_synthesizer/ted-talks-transcript-scraper`) Actor

Extracts full transcripts from TED.com talks in any available language. Returns timed segments (JSON), plain text, SRT, and WebVTT formats alongside speaker metadata, tags, and multi-language availability.

- **URL**: https://apify.com/jungle\_synthesizer/ted-talks-transcript-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** AI, Education, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## TED Talks Transcript Scraper

Scrape full transcripts from [TED.com](https://www.ted.com) in any available language. Returns timed cue segments, plain text, SRT subtitles, WebVTT captions, and speaker metadata for every talk — packaged in one record per language per talk.

---

### TED Talks Transcript Scraper Features

- Extracts complete transcripts with millisecond-accurate timing (427 cues for an average talk)
- Returns four formats per transcript: JSON segments, plain text, SRT, and WebVTT — most actors pick one format and call it done
- Collects speaker name, role, full bio, event name, recorded date, duration, view count, and topic tags alongside the transcript
- Reports all available language codes so you can plan multi-language runs
- Fetches only the native language by default, or every translation the talk has, or a specific list you provide
- Accepts custom start URLs for targeted scraping of individual talks
- Discovers all talks automatically via TED's year-by-year sitemap index when no URLs are given
- No proxy required — TED serves transcripts publicly, no auth or Cloudflare management involved

---

### What Can You Do With TED Transcript Data?

- **NLP researchers** — Build or extend corpora for text classification, summarization, or speaker style analysis; TED-LIUM is a standard benchmark, and this actor gives you fresh slices of it
- **Language-learning app developers** — Pull parallel transcripts (English audio + Japanese subtitles) for aligned bilingual reading and listening exercises
- **AI training teams** — Collect multi-speaker, multi-language text at scale; TED's volunteer-translated transcripts cover 100+ languages with consistent quality
- **Public speaking coaches** — Analyze rhetorical structure, pacing cues, and paragraph breaks across thousands of talks
- **Translation quality researchers** — Compare the same content across 60+ language variants for benchmarking MT and human translation output
- **Educators and content curators** — Build searchable archives of transcript text with metadata for curriculum alignment or topic discovery

---

### How TED Talks Transcript Scraper Works

1. Seed the run. If you provide `startUrls`, those talks are processed directly. Otherwise the scraper walks TED's year-by-year sitemap index (2006–2025) and collects every talk URL up to your `maxItems` budget.
2. For each talk, the scraper fetches the transcript page HTML and parses the embedded `__NEXT_DATA__` JSON blob. This yields the numeric talk ID, speaker details, event name, dates, view count, tags, and the full list of available language codes.
3. Using the language list, the scraper calls TED's public subtitles API — one request per language — and retrieves millisecond-timed caption cues.
4. The cues are assembled into four transcript formats, merged with the talk metadata, and saved as one dataset record per language.

---

### Input

```json
{
  "maxItems": 15,
  "startUrls": [
    { "url": "https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity" }
  ],
  "languages": ["en", "ja"],
  "fetchAllLanguages": false
}
````

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `maxItems` | integer | 15 | Maximum transcript records to save. One record = one talk × one language. |
| `startUrls` | array | — | Specific TED talk URLs to scrape. When empty, the scraper discovers talks from the sitemap. |
| `languages` | array | — | ISO 639-1 codes to fetch (e.g. `["en", "ja", "es"]`). Leave empty for the talk's native language only. |
| `fetchAllLanguages` | boolean | false | When true, fetches every available translation for each talk. Overrides `languages`. |

**Fetch all languages for a single talk:**

```json
{
  "maxItems": 100,
  "startUrls": [
    { "url": "https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity" }
  ],
  "fetchAllLanguages": true
}
```

Ken Robinson's talk has 64 language translations — that input produces 64 records.

***

### TED Talks Transcript Scraper Output Fields

```json
{
  "talk_id": "66",
  "slug": "sir_ken_robinson_do_schools_kill_creativity",
  "title": "Do schools kill creativity?",
  "speaker_name": "Sir Ken Robinson",
  "speaker_role": "Author, educator",
  "speaker_bio": "Creativity expert Sir Ken Robinson challenged the way we educate our children...",
  "event": "TED2006",
  "recorded_date": "2006-02-25",
  "published_date": "2006-06-27T00:11:00.000Z",
  "duration_seconds": 1148,
  "language": "en",
  "language_name": "English",
  "tags": "culture, education, creativity, dance, parenting, teaching, kids",
  "description": "Sir Ken Robinson makes an entertaining and profoundly moving case for creating an education system...",
  "view_count": 80149052,
  "thumbnail_url": "https://pi.tedcdn.com/r/pe.tedcdn.com/...",
  "canonical_url": "https://www.ted.com/talks/sir_ken_robinson_do_schools_kill_creativity",
  "available_languages": "pt-br, el, eo, en, vi, ca, it, sv, cs, ar, ...",
  "transcript_plain": "Good morning. How are you? (Audience) Good. It's been great, hasn't it?...",
  "transcript_srt": "1\n00:00:02,103 --> 00:00:04,678\nGood morning. How are you?\n\n2\n...",
  "transcript_vtt": "WEBVTT\n\n1\n00:00:02.103 --> 00:00:04.678\nGood morning. How are you?\n\n2\n...",
  "transcript_segments": "[{\"start_ms\":2103,\"duration_ms\":2575,\"text\":\"Good morning. How are you?\",\"start_of_paragraph\":true},...]"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `talk_id` | string | Numeric TED talk ID |
| `slug` | string | Canonical URL slug |
| `title` | string | Talk title in English |
| `speaker_name` | string | Speaker display name |
| `speaker_role` | string | One-line speaker description |
| `speaker_bio` | string | Full speaker biography |
| `event` | string | Event where the talk was given (e.g. TED2006, TEDxBoston) |
| `recorded_date` | string | Recording date (YYYY-MM-DD) |
| `published_date` | string | Publication date (ISO 8601) |
| `duration_seconds` | number | Talk duration in seconds |
| `language` | string | ISO 639-1 code for this transcript |
| `language_name` | string | Full language name in English |
| `tags` | string | Comma-separated TED topic tags |
| `description` | string | Talk abstract |
| `view_count` | number | Total view count across platforms |
| `thumbnail_url` | string | Talk thumbnail image URL |
| `canonical_url` | string | Canonical TED.com URL |
| `available_languages` | string | Comma-separated codes of all available translations |
| `transcript_plain` | string | Full transcript as plain text |
| `transcript_srt` | string | Transcript in SRT subtitle format |
| `transcript_vtt` | string | Transcript in WebVTT format |
| `transcript_segments` | string | JSON-serialized timed cue array: `[{start_ms, duration_ms, text, start_of_paragraph}]` |

***

### 🔍 FAQ

#### How do I scrape TED talk transcripts?

TED Talks Transcript Scraper handles discovery automatically. Provide a `startUrls` list for specific talks or leave it empty to pull from the sitemap. Set `maxItems` to cap the output, then run.

#### How much does TED Talks Transcript Scraper cost to run?

TED Talks Transcript Scraper charges $0.003 per transcript record (one talk × one language) plus a small platform start fee. Fetching the English transcript for 100 talks costs roughly $0.30.

#### Can I get transcripts in multiple languages?

Yes. Set `fetchAllLanguages: true` to retrieve every translation for each talk, or pass a `languages` array with specific ISO 639-1 codes. A popular talk like Ken Robinson's "Do Schools Kill Creativity?" has 64 language variants.

#### Does TED Talks Transcript Scraper need proxies?

No. TED publishes transcripts publicly — no authentication, no Cloudflare challenge, no residential proxy required. The scraper runs on standard infrastructure at a courteous pace.

#### What format do the timed segments come in?

Each record includes `transcript_segments` as a JSON string containing an array of cue objects: `{start_ms, duration_ms, text, start_of_paragraph}`. Timing is in milliseconds, matching TED's source data. SRT and VTT formats are derived from the same cue data.

#### Are transcripts available for all TED talks?

Most established talks have English transcripts. Translations depend on TED's volunteer community — popular talks often have 50+ languages, while talks published in the last few months may have none yet. The scraper logs a warning and skips talks with no available transcripts for the requested language.

***

### Need More Features?

Need filtering by event, speaker, or topic? Custom language combinations? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use TED Talks Transcript Scraper?

- **Four formats, one run** — plain text, SRT, WebVTT, and timestamped JSON segments in a single record; most alternatives force you to choose one and convert the rest yourself
- **Multi-language by design** — fetch all 64+ translations of a talk with a single flag, which is the part that makes this corpus useful for NLP alignment work
- **No setup required** — public access, no API keys, no proxies, sitemap-driven discovery out of the box

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `maxItems` (type: `integer`):

Maximum number of transcript records to extract (one per talk + language combination). Defaults to 15 for quick validation runs.

## `startUrls` (type: `array`):

Optional: specific TED talk URLs to scrape (e.g. https://www.ted.com/talks/ken\_robinson\_says\_schools\_kill\_creativity). When empty, the actor crawls all talks from the sitemap.

## `languages` (type: `array`):

ISO 639-1 language codes to fetch (e.g. \['en', 'ja', 'es']). Leave empty to fetch only the talk's native language (English for most talks).

## `fetchAllLanguages` (type: `boolean`):

When enabled, fetches transcripts for every language the talk is translated into. Overrides the Languages field.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 15,
  "startUrls": [
    {
      "url": "https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity"
    }
  ],
  "languages": [],
  "fetchAllLanguages": 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 15,
    "startUrls": [
        {
            "url": "https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity"
        }
    ],
    "languages": [],
    "fetchAllLanguages": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/ted-talks-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 15,
    "startUrls": [{ "url": "https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity" }],
    "languages": [],
    "fetchAllLanguages": False,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/ted-talks-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 15,
  "startUrls": [
    {
      "url": "https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity"
    }
  ],
  "languages": [],
  "fetchAllLanguages": false
}' |
apify call jungle_synthesizer/ted-talks-transcript-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TED Talks Transcript Scraper",
        "description": "Extracts full transcripts from TED.com talks in any available language. Returns timed segments (JSON), plain text, SRT, and WebVTT formats alongside speaker metadata, tags, and multi-language availability.",
        "version": "0.1",
        "x-build-id": "dvlEcEteriGTvBraH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~ted-talks-transcript-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-ted-talks-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/jungle_synthesizer~ted-talks-transcript-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-ted-talks-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/jungle_synthesizer~ted-talks-transcript-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-ted-talks-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": [
                    "maxItems"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of transcript records to extract (one per talk + language combination). Defaults to 15 for quick validation runs.",
                        "default": 15
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional: specific TED talk URLs to scrape (e.g. https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity). When empty, the actor crawls all talks from the sitemap.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "languages": {
                        "title": "Languages",
                        "type": "array",
                        "description": "ISO 639-1 language codes to fetch (e.g. ['en', 'ja', 'es']). Leave empty to fetch only the talk's native language (English for most talks).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchAllLanguages": {
                        "title": "Fetch All Available Languages",
                        "type": "boolean",
                        "description": "When enabled, fetches transcripts for every language the talk is translated into. Overrides the Languages field.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
