# RuTube Scraper (`solidcode/rutube-scraper`) Actor

\[💰 $3 / 1K] Extract videos from RuTube, Russia's leading video platform. Search by keyword or paste video, channel, or search URLs to collect titles, view counts, durations, upload dates, descriptions, thumbnails, hashtags, comment counts, and channel details.

- **URL**: https://apify.com/solidcode/rutube-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Videos, Developer tools, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

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

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

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


# README

## RuTube Scraper

Pull video data from RuTube — Russia's largest domestic video platform — by keyword, channel, or direct link, with view counts, durations, upload dates, descriptions, hashtags, comment counts, and full channel details on every row. Turn a search term or a channel URL into a clean, structured dataset in minutes. Built for media analysts, market researchers, and brand-monitoring teams who need Russian-market video intelligence without collecting it by hand.

### Why This Scraper?

- **Up to 100 videos per keyword search, across unlimited keywords in one run** — RuTube's own search ceiling, honestly stated; every keyword runs as its own independent search so five keywords can return up to 500 videos.
- **Full channel back-catalogs with no per-channel cap** — paste a channel URL and pull its entire video history, page after page, far beyond the 100-per-keyword search limit.
- **Three input modes in one list** — plain keyword, single video URL, or channel URL; mix and match freely in a single run.
- **20 fields per video** — title, view count, duration, upload date, description, thumbnail, category, age rating, and full channel details on every row.
- **Hashtags and comment counts on demand** — flip `includeDetails` on to enrich every row with its tag list and total comment count.
- **Denormalized channel details on every row** — channel name, ID, avatar image, and channel URL travel with each video, so no second lookup to learn who posted it.
- **Reaches content YouTube-focused tools ignore** — index Russian-language creators and videos that mainstream Western video extractors never see.
- **Livestream-aware and age-rating-aware** — a `duration` of 0 flags a live broadcast, and every row carries an `isAdult` flag plus a numeric `ageRating`.
- **Flat one-row-per-video output** — spreadsheet- and dashboard-ready with no nested unpacking, and automatic deduplication so overlapping searches and channels never double up.

### Use Cases

**Market & Audience Research**
- Track view counts and upload cadence across Russian-language creators
- Benchmark video performance by category — news, cooking, music, gaming
- Measure engagement with comment counts per video
- Size a topic's footprint on RuTube by searching many keywords in one run

**Media Monitoring & Brand Intelligence**
- Monitor how a brand, product, or public figure appears across RuTube
- Follow a channel's full back-catalog to watch its content strategy evolve
- Surface newly published videos on the keywords you watch
- Flag age-restricted (18+) content that mentions your brand

**Competitive Intelligence**
- Pull a rival channel's entire video library with view counts and durations
- Compare hashtag strategies across competing creators
- Track which categories rivals publish into, and how often
- Gauge community engagement from per-video comment volume

**Content Strategy & Trend Discovery**
- Discover trending topics and hashtags in your niche
- Study title and description patterns on high-view videos
- Identify winning formats and durations in your category
- Build content calendars from what already performs on RuTube

**Academic & OSINT Research**
- Assemble structured datasets of Russian-language video metadata
- Study information flows and narratives across channels and keywords
- Analyze publication timelines with ISO upload timestamps
- Archive channel catalogs for longitudinal study

### Getting Started

#### Simple Keyword Search

Just one keyword — the fastest way to start:

```json
{
    "searchQueries": ["новости"]
}
````

#### Multiple Keywords at Once

```json
{
    "searchQueries": ["кулинария", "музыка", "путешествия"],
    "maxResults": 50
}
```

#### Channel Back-Catalog and a Video URL

Paste RuTube links directly — set `maxResults` to 0 to pull an entire channel:

```json
{
    "startUrls": [
        "https://rutube.ru/channel/23704195/",
        "https://rutube.ru/video/c6cc4d620b1d4338901770a5c30d9569/"
    ],
    "maxResults": 0
}
```

#### Full-Featured Run

Mix keywords, a search URL, and a channel — all in one run:

```json
{
    "searchQueries": ["технологии"],
    "startUrls": [
        "https://rutube.ru/search/?query=обзор",
        "https://rutube.ru/channel/23704195/"
    ],
    "maxResults": 200,
    "includeDetails": true
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | array | `[]` | Keywords to search on RuTube (e.g. "новости", "кулинария", "music"). Each query runs independently. Leave empty if you only want to scrape URLs. |
| `startUrls` | array | `[]` | Paste RuTube URLs directly — search-result URLs (`rutube.ru/search/?query=...`), single video URLs (`rutube.ru/video/...`), and channel URLs (`rutube.ru/channel/...`). Mix any of these in one list. |

#### Results

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum videos to fetch per search query or channel. Set to 0 to fetch every available video. Keyword search is capped at 100 per query by RuTube — use a channel URL to collect more. A single video URL always returns exactly one result. |
| `includeDetails` | boolean | `true` | When on, each video is enriched with its hashtags and total comment count. Turn off for a faster, lighter run that returns titles, views, durations, descriptions, thumbnails, and channel details only. |

### Output

Each video is one flat row, with channel details denormalized onto it. Here is a representative result with details enabled:

```json
{
    "id": "c6cc4d620b1d4338901770a5c30d9569",
    "title": "Обзор новинок недели: технологии и гаджеты",
    "url": "https://rutube.ru/video/c6cc4d620b1d4338901770a5c30d9569/",
    "description": "В этом выпуске разбираем главные технологические новинки недели и делимся впечатлениями.",
    "thumbnailUrl": "https://pic.rutubelist.ru/video/preview.jpg",
    "duration": 842,
    "viewCount": 152340,
    "commentsCount": 318,
    "publishedAt": "2026-06-19T16:30:07",
    "publishedText": "19 Jun 2026",
    "isAdult": false,
    "ageRating": 12,
    "category": "Наука и техника",
    "hashtags": ["технологии", "гаджеты", "обзор"],
    "channelName": "Технозона",
    "channelId": "23704195",
    "channelUrl": "https://rutube.ru/channel/23704195/",
    "channelAvatar": "https://pic.rutubelist.ru/user/avatar.jpg",
    "searchQuery": "технологии",
    "scrapedAt": "2026-07-11T14:30:00+00:00"
}
```

#### Core Video Fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique RuTube video identifier |
| `title` | string | Video title |
| `url` | string | Canonical video page URL |
| `description` | string | Video description |
| `thumbnailUrl` | string | Preview image URL |
| `duration` | number | Video length in seconds (0 indicates a live broadcast) |
| `viewCount` | number | Total view count |
| `category` | string | RuTube category name |
| `isAdult` | boolean | Age-restricted (18+) flag |
| `ageRating` | number | Numeric age rating (e.g. 12, 16, 18) |
| `publishedAt` | string | Upload timestamp in ISO 8601 format |
| `publishedText` | string | Human-readable upload date (e.g. "19 Jun 2026") |

#### Engagement & Tags

Populated when `includeDetails` is on.

| Field | Type | Description |
|-------|------|-------------|
| `commentsCount` | number | Total number of comments on the video |
| `hashtags` | array | List of tags / hashtags on the video |

#### Channel Fields

| Field | Type | Description |
|-------|------|-------------|
| `channelName` | string | Author / channel name |
| `channelId` | string | Channel identifier |
| `channelUrl` | string | Channel page URL |
| `channelAvatar` | string | Channel avatar image URL |

#### Run Metadata

| Field | Type | Description |
|-------|------|-------------|
| `searchQuery` | string | The keyword or source URL that produced this row |
| `scrapedAt` | string | ISO 8601 timestamp of data extraction |

### Tips for Best Results

- **Paste a channel URL to break past the search ceiling** — keyword search stops at 100 videos per query, but a channel URL pulls the entire back-catalog page by page with no cap. This is the way to collect thousands of videos from a single creator.
- **Search multiple keywords in one run** — each keyword returns up to 100 videos independently, so five keywords can yield up to 500 videos in one go.
- **Turn off `includeDetails` for speed** — when you only need titles, views, durations, and channel info, disabling details skips the hashtag and comment-count lookups for a faster, lighter run.
- **Set `maxResults` to 0 for full channel pulls** — leave the cap off to enumerate every video on a channel; keyword searches still stop at RuTube's 100 ceiling automatically.
- **A `duration` of 0 means a live broadcast** — use it to separate livestreams and premieres from regular uploads.
- **Reuse browser filters via search URLs** — copy a `rutube.ru/search/?query=...` link straight from your browser and it runs as that keyword search.
- **Mix sources freely** — combine keywords, video URLs, and channel URLs in a single run; results are deduplicated automatically so overlapping sources never double up.

### Pricing

**From $3.00 per 1,000 results** — well below comparable RuTube tools, and priced per result so you only pay for the videos you keep. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows the total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.36 | $0.34 | $0.32 | $0.30 |
| 1,000 | $3.60 | $3.40 | $3.20 | $3.00 |
| 10,000 | $36.00 | $34.00 | $32.00 | $30.00 |
| 100,000 | $360.00 | $340.00 | $320.00 | $300.00 |

A "result" is any video row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate research, media monitoring, and market analysis. You are responsible for complying with applicable laws and RuTube's Terms of Service. Only collect publicly available data, respect copyright, and do not use extracted data for spam, harassment, or any unlawful purpose. Handle any personal data you encounter in line with applicable privacy regulations. </content> </invoke>

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on RuTube (e.g. 'новости', 'кулинария', 'music'). Each query runs independently. Leave empty if you only want to scrape URLs.

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

Paste RuTube URLs directly. Accepts search-result URLs (rutube.ru/search/?query=...), single video URLs (rutube.ru/video/...), and channel URLs (rutube.ru/channel/...). Mix any of these in one list.

## `maxResults` (type: `integer`):

Maximum number of videos to fetch per search query or channel. Set to 0 to collect all available videos from each source (up to a safety maximum of 100,000 per source). Note: RuTube caps keyword search at 100 videos per query, so a search returns at most 100 no matter how high you set this — use a channel URL to collect more. Individual video URLs always return exactly one result.

## `includeDetails` (type: `boolean`):

When enabled, each video is enriched with its hashtags and total comment count (a little slower). Turn off for a faster, lighter run that returns titles, views, durations, descriptions, thumbnails, and channel details only.

## Actor input object example

```json
{
  "searchQueries": [],
  "startUrls": [],
  "maxResults": 100,
  "includeDetails": true
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of all videos with the most useful fields at a glance.

## `videos` (type: `string`):

Per-video detail rows with duration, view count, comment count, description, hashtags, channel info, and thumbnails.

# 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 = {
    "searchQueries": [],
    "startUrls": [],
    "maxResults": 100,
    "includeDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/rutube-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 = {
    "searchQueries": [],
    "startUrls": [],
    "maxResults": 100,
    "includeDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/rutube-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 '{
  "searchQueries": [],
  "startUrls": [],
  "maxResults": 100,
  "includeDetails": true
}' |
apify call solidcode/rutube-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RuTube Scraper",
        "description": "[💰 $3 / 1K] Extract videos from RuTube, Russia's leading video platform. Search by keyword or paste video, channel, or search URLs to collect titles, view counts, durations, upload dates, descriptions, thumbnails, hashtags, comment counts, and channel details.",
        "version": "1.0",
        "x-build-id": "URqbTiZccf80ArSBY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~rutube-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-rutube-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/solidcode~rutube-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-rutube-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/solidcode~rutube-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-rutube-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",
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Keywords to search on RuTube (e.g. 'новости', 'кулинария', 'music'). Each query runs independently. Leave empty if you only want to scrape URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "RuTube URLs",
                        "type": "array",
                        "description": "Paste RuTube URLs directly. Accepts search-result URLs (rutube.ru/search/?query=...), single video URLs (rutube.ru/video/...), and channel URLs (rutube.ru/channel/...). Mix any of these in one list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Maximum Videos per Source",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of videos to fetch per search query or channel. Set to 0 to collect all available videos from each source (up to a safety maximum of 100,000 per source). Note: RuTube caps keyword search at 100 videos per query, so a search returns at most 100 no matter how high you set this — use a channel URL to collect more. Individual video URLs always return exactly one result.",
                        "default": 100
                    },
                    "includeDetails": {
                        "title": "Include Hashtags and Comment Counts",
                        "type": "boolean",
                        "description": "When enabled, each video is enriched with its hashtags and total comment count (a little slower). Turn off for a faster, lighter run that returns titles, views, durations, descriptions, thumbnails, and channel details only.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
