# YouTube Sponsor Segment Detector (`xtracto/youtube-sponsor-detector`) Actor

Detect sponsor segments, promo codes, and brand deals in any YouTube video. Returns exact ad timestamps with community vote scores, plus discount codes and percentages pulled from the description, and channel, views, and publish date. No login.

- **URL**: https://apify.com/xtracto/youtube-sponsor-detector.md
- **Developed by:** [Farhan Febrian Nauval](https://apify.com/xtracto) (community)
- **Categories:** Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## YouTube Sponsor Segment Detector

Detect sponsor segments, promo codes, and brand deals in any YouTube video. For each video you get the exact start and end time of every paid read and self-promotion, with community vote scores, plus the discount codes, percentages, and sponsor links pulled straight from the description — all in clean structured JSON.

### Why use this actor

- **No account, no login, no API key required** — just paste video URLs or a channel and hit Run.
- **Exact ad timestamps** — know precisely where each sponsor read starts and ends (down to the second), so you can measure ad load, skip past it, or audit brand placements.
- **Promo codes and discounts, extracted for you** — the description is scanned for coupon codes (e.g. `LTT`), percentage discounts (e.g. `15% off`), and every sponsor link with its brand domain.
- **Community-verified quality** — each segment carries an up/down vote score and a "locked" flag so you can trust the well-reviewed ones and filter out noise.
- **Analyze one video, a list, or a whole channel** — point it at a channel and it pulls the most recent uploads automatically.
- **Stable JSON output** suitable for pipelines, spreadsheets, and databases — every row carries `_input`, `_source`, and `_scrapedAt` fields so you can join results back to your input.
- Automatic retries; export to JSON, CSV, or Excel.

### How it works

1. You provide a list of YouTube videos (IDs or URLs) and/or a channel, and choose which segment types to detect (sponsor, self-promotion, intro, outro, and more).
2. For each video the actor looks up the known ad and promotional segments contributed by the viewer community, then reads the video's public details — title, channel, view count, publish date, and description.
3. The description is scanned for promo codes, discount percentages, and sponsor links.
4. Optionally, it can attach the words spoken during each sponsor read (from the video's captions) and a best-guess brand name.
5. Results stream into your dataset, one clean row per video, ready to download.

You do not need to manage scrapers, browsers, or blocks — it is all handled internally.

### Input

```json
{
  "videoUrls": [
    "https://www.youtube.com/watch?v=S82W3hWDvZA",
    "https://www.youtube.com/watch?v=5xN7ndof4Xc"
  ],
  "channelUrl": "",
  "maxVideos": 10,
  "categories": ["sponsor", "selfpromo"],
  "includeTranscriptMatch": false,
  "usePrivacyHash": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

| Field | Type | Description |
| --- | --- | --- |
| `videoUrls` | array | Videos to analyze. Accepts 11-character IDs, watch URLs, `youtu.be/...` short links, and Shorts URLs. |
| `channelUrl` | string | Optional. Analyze a channel's most recent uploads. Accepts a handle (`@LinusTechTips`), channel URL, or channel ID (`UC...`). |
| `maxVideos` | integer | When a channel is given, how many recent uploads to analyze (default 10). |
| `categories` | array | Which segment types to detect: `sponsor`, `selfpromo`, `interaction`, `intro`, `outro`, `music_offtopic`, `filler`. Default `["sponsor", "selfpromo"]`. |
| `includeTranscriptMatch` | boolean | Attach the spoken words for each sponsor / self-promotion segment plus a best-guess brand. Default `false`. |
| `usePrivacyHash` | boolean | Look up segments without sending the full video ID. Same results, slightly slower. Default `false`. |
| `maxItems` | integer | Maximum number of videos to output across all inputs (default 100). |
| `proxyConfiguration` | object | Apify Proxy settings. Residential is recommended. |

### Output

One row per video. A video with no known segments is still returned (with an empty `segments` list) so you can see it was checked.

```json
{
  "_input": "https://www.youtube.com/watch?v=S82W3hWDvZA",
  "_source": "sponsorblock+innertube-ios",
  "_scrapedAt": "2026-07-10T19:33:12Z",
  "videoId": "S82W3hWDvZA",
  "url": "https://www.youtube.com/watch?v=S82W3hWDvZA",
  "title": "I Hate These...",
  "channelName": "Linus Tech Tips",
  "channelId": "UCXuqSBlHAE6Xw-yeJA0Tunw",
  "viewCount": "1268127",
  "publishDate": "2026-07-06T09:53:00-07:00",
  "uploadDate": "2026-07-06T09:53:00-07:00",
  "category": "Science & Technology",
  "lengthSeconds": "1481",
  "segments": [
    {
      "category": "sponsor",
      "actionType": "skip",
      "startSec": 133.196,
      "endSec": 150.681,
      "durationSec": 17.485,
      "votes": 17,
      "locked": 1,
      "UUID": "de0a2ea01dcf3b43ff4ec9fa94d64843959d728c96be0ecfb587060fa784398a7",
      "videoDuration": 1480.69
    },
    {
      "category": "intro",
      "actionType": "skip",
      "startSec": 150.481,
      "endSec": 159.765,
      "durationSec": 9.284,
      "votes": 7,
      "locked": 1,
      "UUID": "4de1f1defc133c347403e9f238f39bb08d7d13abb402ff7f89ef4f7b55d894007",
      "videoDuration": 1480.69
    },
    "... 12 more"
  ],
  "sponsorCount": 6,
  "sponsorSecondsTotal": 101.09,
  "description": {
    "promoCodes": ["LTT"],
    "discountPct": [15],
    "sponsorUrls": [
      { "url": "https://saily.com/ltt", "brandHost": "saily.com" },
      { "url": "https://geni.us/1et77", "brandHost": "geni.us" },
      "... 15 more"
    ]
  }
}
```

| Field | Type | Description |
| --- | --- | --- |
| `videoId` | string | The 11-character YouTube video ID. |
| `url` | string | Canonical watch URL. |
| `title` | string | Video title. |
| `channelName` | string | Channel / uploader name. |
| `channelId` | string | Channel ID (`UC...`). |
| `viewCount` | string | View count at the moment of scraping. |
| `publishDate` / `uploadDate` | string | Publish and upload dates. |
| `category` | string | YouTube category (e.g. "Science & Technology"). |
| `lengthSeconds` | string | Video length in seconds. |
| `segments` | array | Detected segments (see below). Empty when the video has none. |
| `sponsorCount` | integer | Number of sponsor + self-promotion segments. |
| `sponsorSecondsTotal` | number | Total seconds of sponsor + self-promotion content. |
| `description` | object | Extracted `promoCodes`, `discountPct`, and `sponsorUrls` (`{url, brandHost}`). |

Each item in `segments`:

| Field | Type | Description |
| --- | --- | --- |
| `category` | string | `sponsor`, `selfpromo`, `intro`, `outro`, `filler`, etc. |
| `actionType` | string | Recommended handling: `skip`, `mute`, `full`, or `poi` (point of interest). |
| `startSec` / `endSec` | number | Segment start and end, in seconds. |
| `durationSec` | number | Segment length in seconds. |
| `votes` | integer | Community vote score (higher = more trusted; negative = disputed). |
| `locked` | integer | `1` if the segment is locked by a moderator. |
| `UUID` | string | Stable identifier for the segment. |
| `videoDuration` | number | Video length the segment was recorded against (may be omitted when unknown). |
| `spokenText` | string | (Only with `includeTranscriptMatch`) words spoken during the segment. |
| `matchedBrand` | string | (Only with `includeTranscriptMatch`) best-guess brand mentioned. |

### Notes / limits

- **Coverage.** Segment data comes from **SponsorBlock**, a community project where viewers submit ad and promotional timestamps. Popular creators (tech reviewers, large channels) have excellent coverage; a smaller or very new video may have no segments yet — it is returned with an empty `segments` list, not an error.
- **Vote scores.** Prefer segments with positive `votes` and `locked: 1` for the most reliable results. Negative votes indicate a disputed submission.
- **Promo codes.** Codes and discounts are read from the description text; a video whose sponsor mentions the code only out loud (not in the description) will have an empty `promoCodes` list.
- **Spoken text.** `includeTranscriptMatch` depends on the video having retrievable captions; when captions are unavailable, `spokenText` is left empty. Residential proxy improves availability.
- **Proxy.** Residential proxy is recommended because YouTube rate-limits datacenter networks.

### Other actors

| Actor | What it does |
| --- | --- |
| YouTube Video Detail Scraper | Full metadata for any video. |
| YouTube Channel Scraper | Channel stats: subscribers, video count, verified status. |
| YouTube Transcripts Scraper | Full timed transcript / captions for a video. |

# Actor input Schema

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

YouTube videos to analyze for sponsor segments. Accepts 11-character video IDs, full watch URLs (https://www.youtube.com/watch?v=...), short links (https://youtu.be/...), and Shorts URLs.

## `channelUrl` (type: `string`):

Optionally analyze a channel's most recent uploads instead of (or in addition to) the videos above. Accepts a channel handle (@LinusTechTips), channel URL, or channel ID (UC...).

## `maxVideos` (type: `integer`):

When a channel is provided, how many of its most recent uploads to analyze.

## `categories` (type: `array`):

Which kinds of segment to detect. Sponsor and self-promotion are the paid-deal categories; the rest cover intros, outros, and filler.

## `includeTranscriptMatch` (type: `boolean`):

When on, attaches the words spoken during each sponsor / self-promotion segment (from the video's captions) plus a best-guess brand name. Adds extra processing time.

## `usePrivacyHash` (type: `boolean`):

When on, looks up segments without sending the full video ID to the segment database. Slightly slower; same results.

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

Maximum number of videos to output across all inputs.

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

Apify Proxy settings. Residential is recommended because YouTube rate-limits datacenter networks.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.youtube.com/watch?v=S82W3hWDvZA",
    "https://www.youtube.com/watch?v=5xN7ndof4Xc"
  ],
  "maxVideos": 10,
  "categories": [
    "sponsor",
    "selfpromo"
  ],
  "includeTranscriptMatch": false,
  "usePrivacyHash": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [
        "https://www.youtube.com/watch?v=S82W3hWDvZA",
        "https://www.youtube.com/watch?v=5xN7ndof4Xc"
    ],
    "channelUrl": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/youtube-sponsor-detector").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": [
        "https://www.youtube.com/watch?v=S82W3hWDvZA",
        "https://www.youtube.com/watch?v=5xN7ndof4Xc",
    ],
    "channelUrl": "",
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/youtube-sponsor-detector").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": [
    "https://www.youtube.com/watch?v=S82W3hWDvZA",
    "https://www.youtube.com/watch?v=5xN7ndof4Xc"
  ],
  "channelUrl": ""
}' |
apify call xtracto/youtube-sponsor-detector --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Sponsor Segment Detector",
        "description": "Detect sponsor segments, promo codes, and brand deals in any YouTube video. Returns exact ad timestamps with community vote scores, plus discount codes and percentages pulled from the description, and channel, views, and publish date. No login.",
        "version": "1.0",
        "x-build-id": "ZFVZhi2k0y4OJOT5e"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~youtube-sponsor-detector/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-youtube-sponsor-detector",
                "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/xtracto~youtube-sponsor-detector/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-youtube-sponsor-detector",
                "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/xtracto~youtube-sponsor-detector/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-youtube-sponsor-detector",
                "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": "YouTube videos",
                        "type": "array",
                        "description": "YouTube videos to analyze for sponsor segments. Accepts 11-character video IDs, full watch URLs (https://www.youtube.com/watch?v=...), short links (https://youtu.be/...), and Shorts URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "channelUrl": {
                        "title": "Channel (optional)",
                        "type": "string",
                        "description": "Optionally analyze a channel's most recent uploads instead of (or in addition to) the videos above. Accepts a channel handle (@LinusTechTips), channel URL, or channel ID (UC...)."
                    },
                    "maxVideos": {
                        "title": "Max videos from channel",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "When a channel is provided, how many of its most recent uploads to analyze.",
                        "default": 10
                    },
                    "categories": {
                        "title": "Segment categories",
                        "type": "array",
                        "description": "Which kinds of segment to detect. Sponsor and self-promotion are the paid-deal categories; the rest cover intros, outros, and filler.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "sponsor",
                                "selfpromo",
                                "interaction",
                                "intro",
                                "outro",
                                "music_offtopic",
                                "filler"
                            ],
                            "enumTitles": [
                                "Paid sponsor read",
                                "Self / channel promotion",
                                "Interaction reminder (like & subscribe)",
                                "Intro / intermission",
                                "Outro / endcards",
                                "Non-music section (music videos)",
                                "Filler / tangent"
                            ]
                        },
                        "default": [
                            "sponsor",
                            "selfpromo"
                        ]
                    },
                    "includeTranscriptMatch": {
                        "title": "Include spoken text for sponsor segments",
                        "type": "boolean",
                        "description": "When on, attaches the words spoken during each sponsor / self-promotion segment (from the video's captions) plus a best-guess brand name. Adds extra processing time.",
                        "default": false
                    },
                    "usePrivacyHash": {
                        "title": "Privacy-preserving lookup",
                        "type": "boolean",
                        "description": "When on, looks up segments without sending the full video ID to the segment database. Slightly slower; same results.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of videos to output across all inputs.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Residential is recommended because YouTube rate-limits datacenter networks.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
