# Twitch ALL IN ONE URL | Search | Streams, VODs, Clips Scraper (`abotapi/twitch-scraper`) Actor

From $1/1K. Scrape Twitch data at scale, including channels, live streams, clips, VODs, and top games. Extract HLS m3u8 stream URLs, clip MP4 downloads in multiple qualities, chapter markers, and metadata. Supports keyword search with rich, analytics-ready output.

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

## Pricing

from $1.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

## Twitch Scraper

Pull rich, structured data from Twitch.tv at scale: channel profiles, live streams in any game/category, clips with direct MP4 download URLs, VODs with chapter markers, top games, and unified keyword search. Returns playable HLS m3u8 stream URLs and clip MP4 download URLs (multiple qualities), features rarely available elsewhere.

### Why this scraper?

* Nine modes in one actor: channel, live streams, game streams, top games, search, clips, videos (VODs), VOD metadata, and a free-form URL mode that auto-detects what you paste.
* Direct media URLs as a default field. Each live stream record carries a ready-to-play HLS playlist URL. Each clip record carries 1080p / 720p / 480p / 360p MP4 download URLs.
* Resilient query path: raw GraphQL strings, not persisted-query SHA hashes (which Twitch rotates without notice). Survives upstream changes that would otherwise break a fixed-hash scraper.
* Multi-tier session bootstrap with automatic failover: when the upstream edge tightens, the actor refreshes its session through alternate channels rather than stopping cold.
* Lightweight runtime, ~512 MB peak memory, with per-call work amortised across many records per session.
* Pricing is set on the actor's Apify Store page; volume discounts apply on paid plans.

### Data you get

> Sample shape, values are illustrative placeholders, not from a live record.

| Field | Example | Notes |
|---|---|---|
| `recordType` | `live_stream` | One of: channel, live_stream, game, clip, video, vod_metadata, search_channel, search_game |
| `id` | `00000000` | Twitch internal ID |
| `login` | `examplelogin` | URL-safe username |
| `displayName` | `Example Display` | User-set display name |
| `url` | `https://www.twitch.tv/examplelogin` | Canonical channel/category/video URL |
| `title` | `Sample stream title` | Live stream title or VOD title |
| `viewersCount` | `12345` | Concurrent viewers (live) |
| `viewCount` | `54321` | Total views (clips, VODs) |
| `followersCount` | `100000` | Channel followers |
| `gameName` | `Sample Game` | Game / category name |
| `gameSlug` | `sample-game` | URL slug for the category |
| `gameId` | `000000` | Game ID |
| `language` | `en` | ISO 639-1 |
| `createdAt` | `2026-01-01T00:00:00Z` | Stream / clip / VOD start |
| `thumbnailUrl` | `https://static-cdn.jtvnw.net/.../000000.jpg` | Preview image |
| `profileImageUrl` | `https://static-cdn.jtvnw.net/.../profile.png` | Avatar |
| `boxArtUrl` | `https://static-cdn.jtvnw.net/ttv-boxart/000000-285x380.jpg` | Game cover art |
| `isLive` | `true` | Whether the channel is currently broadcasting |
| `isPartner` | `false` | Twitch Partner status |
| `isAffiliate` | `true` | Twitch Affiliate status |
| `streamHlsUrl` | `https://usher.ttvnw.net/api/channel/hls/examplelogin.m3u8?sig=...&token=...` | Playable HLS playlist (live mode) |
| `clipMp4Urls` | `{ "1080": "https://.../1080.mp4", "720": "https://.../720.mp4" }` | Direct MP4 by quality (clips mode) |
| `chapters` | `[{ "type": "GAME_CHANGE", "positionMs": 0, "gameName": "Game A" }]` | Game-change markers (vod_metadata mode) |
| `tags` | `["English", "FPS"]` | Stream / video tags |
| `socialMedias` | `[{ "name": "twitter", "url": "https://twitter.com/example" }]` | Linked socials (channel mode) |
| `scrapedAt` | `2026-05-09T00:00:00.000Z` | UTC timestamp |

### How to use

#### Channel profile + clips + recent VODs

```json
{
  "mode": "channel",
  "channels": ["shroud", "ninja", "pokimane"],
  "includeMediaUrls": true,
  "maxResults": 30
}
````

#### Live streams in a game (with playable HLS URLs)

```json
{
  "mode": "live_streams",
  "gameSlug": "valorant",
  "streamSort": "VIEWER_COUNT",
  "includeMediaUrls": true,
  "maxResults": 50,
  "maxPages": 2
}
```

#### Top games right now

```json
{
  "mode": "top_games",
  "maxResults": 100
}
```

#### Top clips per channel (with MP4 download URLs)

```json
{
  "mode": "clips",
  "channels": ["xqc"],
  "clipPeriod": "LAST_WEEK",
  "includeMediaUrls": true,
  "maxResults": 25
}
```

#### Unified search

```json
{
  "mode": "search",
  "searchQuery": "valorant",
  "maxResults": 20
}
```

#### Recent VODs

```json
{
  "mode": "videos",
  "channels": ["shroud"],
  "maxResults": 20
}
```

#### VOD metadata with chapter markers

```json
{
  "mode": "vod_metadata",
  "videoIds": ["2767213751"],
  "includeMediaUrls": true
}
```

#### URL mode (paste any twitch.tv URL)

```json
{
  "mode": "url",
  "urls": [
    "https://www.twitch.tv/shroud",
    "https://www.twitch.tv/directory/category/just-chatting",
    "https://www.twitch.tv/videos/2767213751",
    "https://www.twitch.tv/shroud/clip/TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ"
  ],
  "maxResults": 50
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string enum | `channel` | One of: channel, live\_streams, game\_streams, top\_games, search, clips, videos, vod\_metadata, url |
| `channels` | string\[] | `["shroud"]` | Twitch logins (used by channel, clips, videos modes) |
| `gameSlug` | string | `valorant` | Category slug (used by live\_streams and game\_streams modes) |
| `streamSort` | enum | `VIEWER_COUNT` | One of: VIEWER\_COUNT, RECENT, RELEVANCE |
| `searchQuery` | string | `valorant` | Free-text query (used by search mode) |
| `videoIds` | string\[] | `[]` | Numeric video IDs (used by vod\_metadata mode) |
| `clipPeriod` | enum | `LAST_WEEK` | One of: LAST\_DAY, LAST\_WEEK, LAST\_MONTH, ALL\_TIME |
| `urls` | string\[] | `[]` | Any twitch.tv URLs (used by url mode) |
| `includeMediaUrls` | boolean | `true` | When true, attach playable HLS m3u8 (live streams + VODs) and direct clip MP4 URLs |
| `maxResults` | integer | `30` | Maximum records to push, 0 means unlimited up to maxPages cap |
| `maxPages` | integer | `1` | Pages of results to walk for paginated modes (each page is ~30 items) |
| `proxyConfiguration` | object | Apify Datacenter | Apify Residential US is recommended |

### Output example

> Sample shape, values are illustrative placeholders, not from a live record.

```json
{
  "recordType": "live_stream",
  "id": "000000000000",
  "login": "examplelogin",
  "displayName": "Example Display",
  "url": "https://www.twitch.tv/examplelogin",
  "title": "Sample stream title",
  "viewersCount": 12345,
  "createdAt": "2026-01-01T00:00:00Z",
  "streamType": "live",
  "gameName": "Sample Game",
  "gameSlug": "sample-game",
  "gameId": "000000",
  "boxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/000000-285x380.jpg",
  "thumbnailUrl": "https://static-cdn.jtvnw.net/preview/0000.jpg",
  "broadcasterId": "00000000",
  "broadcasterDescription": "Sample broadcaster bio.",
  "profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/0000-profile_image-70x70.png",
  "isPartner": true,
  "isAffiliate": false,
  "followersCount": 100000,
  "tags": ["English", "FPS"],
  "streamHlsUrl": "https://usher.ttvnw.net/api/channel/hls/examplelogin.m3u8?sig=0000&token=%7B...%7D",
  "scrapedAt": "2026-05-09T00:00:00.000Z"
}
```

For very large pulls (over 10,000 records) we recommend Apify Residential and setting `maxPages` to at least 3 per mode (or 0 for unlimited) to give the actor enough room to paginate.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. Each mode reads only the inputs in its own section below.

## `channels` (type: `array`):

Twitch usernames (the part after twitch.tv/), one per line. Example: shroud, ninja, pokimane.

## `clipPeriod` (type: `string`):

Time window for clips collection.

## `gameSlug` (type: `string`):

URL slug for the game or category. Find it in the address bar on twitch.tv/directory/category/SLUG. Examples: valorant, league-of-legends, just-chatting.

## `streamSort` (type: `string`):

Sort order for the live stream list.

## `searchQuery` (type: `string`):

Free-text keyword.

## `videoIds` (type: `array`):

Numeric video IDs (the trailing segment of a twitch.tv/videos/ID URL), one per line. Example: 2767213751.

## `urls` (type: `array`):

Paste any twitch.tv URLs. One per line. Mixing kinds is fine.

## `includeMediaUrls` (type: `boolean`):

When true, each live stream record carries an HLS m3u8 URL and each VOD carries an HLS playlist. Adds ~1 extra request per live-stream record (other modes incur negligible extra cost). Clip MP4 URLs are always included at no extra charge.

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

0 = unlimited (still capped by maxPages).

## `maxPages` (type: `integer`):

Pages to walk for paginated modes (~30 items per page). 0 = unlimited (walk until the source is exhausted or maxResults is hit).

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

Apify Residential US is recommended. Free-tier collapses to Apify Datacenter, which works for most modes but may rate-limit on long walks.

## Actor input object example

```json
{
  "mode": "channel",
  "channels": [
    "shroud"
  ],
  "clipPeriod": "LAST_WEEK",
  "gameSlug": "valorant",
  "streamSort": "VIEWER_COUNT",
  "searchQuery": "valorant",
  "videoIds": [
    "2767213751"
  ],
  "urls": [
    "https://www.twitch.tv/shroud",
    "https://www.twitch.tv/directory/category/just-chatting",
    "https://www.twitch.tv/videos/2767213751"
  ],
  "includeMediaUrls": true,
  "maxResults": 30,
  "maxPages": 1,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "channels": [
        "shroud"
    ],
    "gameSlug": "valorant",
    "searchQuery": "valorant",
    "videoIds": [
        "2767213751"
    ],
    "urls": [
        "https://www.twitch.tv/shroud",
        "https://www.twitch.tv/directory/category/just-chatting",
        "https://www.twitch.tv/videos/2767213751"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/twitch-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 = {
    "channels": ["shroud"],
    "gameSlug": "valorant",
    "searchQuery": "valorant",
    "videoIds": ["2767213751"],
    "urls": [
        "https://www.twitch.tv/shroud",
        "https://www.twitch.tv/directory/category/just-chatting",
        "https://www.twitch.tv/videos/2767213751",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/twitch-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 '{
  "channels": [
    "shroud"
  ],
  "gameSlug": "valorant",
  "searchQuery": "valorant",
  "videoIds": [
    "2767213751"
  ],
  "urls": [
    "https://www.twitch.tv/shroud",
    "https://www.twitch.tv/directory/category/just-chatting",
    "https://www.twitch.tv/videos/2767213751"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call abotapi/twitch-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Twitch ALL IN ONE URL | Search | Streams, VODs, Clips Scraper",
        "description": "From $1/1K. Scrape Twitch data at scale, including channels, live streams, clips, VODs, and top games. Extract HLS m3u8 stream URLs, clip MP4 downloads in multiple qualities, chapter markers, and metadata. Supports keyword search with rich, analytics-ready output.",
        "version": "1.0",
        "x-build-id": "iBGFgW7rl1Qdlk2Xd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~twitch-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-twitch-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/abotapi~twitch-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-twitch-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/abotapi~twitch-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-twitch-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "channel",
                            "live_streams",
                            "game_streams",
                            "top_games",
                            "search",
                            "clips",
                            "videos",
                            "vod_metadata",
                            "vod_comments",
                            "url"
                        ],
                        "type": "string",
                        "description": "What to scrape. Each mode reads only the inputs in its own section below.",
                        "default": "channel"
                    },
                    "channels": {
                        "title": "Channel logins",
                        "type": "array",
                        "description": "Twitch usernames (the part after twitch.tv/), one per line. Example: shroud, ninja, pokimane.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "clipPeriod": {
                        "title": "Clips period (clips mode)",
                        "enum": [
                            "LAST_DAY",
                            "LAST_WEEK",
                            "LAST_MONTH",
                            "ALL_TIME"
                        ],
                        "type": "string",
                        "description": "Time window for clips collection.",
                        "default": "LAST_WEEK"
                    },
                    "gameSlug": {
                        "title": "Game slug",
                        "type": "string",
                        "description": "URL slug for the game or category. Find it in the address bar on twitch.tv/directory/category/SLUG. Examples: valorant, league-of-legends, just-chatting."
                    },
                    "streamSort": {
                        "title": "Stream sort",
                        "enum": [
                            "VIEWER_COUNT",
                            "RECENT",
                            "RELEVANCE"
                        ],
                        "type": "string",
                        "description": "Sort order for the live stream list.",
                        "default": "VIEWER_COUNT"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text keyword."
                    },
                    "videoIds": {
                        "title": "Video IDs",
                        "type": "array",
                        "description": "Numeric video IDs (the trailing segment of a twitch.tv/videos/ID URL), one per line. Example: 2767213751.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urls": {
                        "title": "URLs",
                        "type": "array",
                        "description": "Paste any twitch.tv URLs. One per line. Mixing kinds is fine.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeMediaUrls": {
                        "title": "Include playable media URLs",
                        "type": "boolean",
                        "description": "When true, each live stream record carries an HLS m3u8 URL and each VOD carries an HLS playlist. Adds ~1 extra request per live-stream record (other modes incur negligible extra cost). Clip MP4 URLs are always included at no extra charge.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "0 = unlimited (still capped by maxPages).",
                        "default": 30
                    },
                    "maxPages": {
                        "title": "Max pages",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Pages to walk for paginated modes (~30 items per page). 0 = unlimited (walk until the source is exhausted or maxResults is hit).",
                        "default": 1
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Apify Residential US is recommended. Free-tier collapses to Apify Datacenter, which works for most modes but may rate-limit on long walks.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
