# TikTok Video Scraper - Video Details & Profile Feeds (`khadinakbar/tiktok-video-scraper`) Actor

Scrape TikTok video details, captions, metrics, direct video URLs, transcripts, music, hashtags, and creator profile videos. Provider-backed, no cookies required, perfect for SEO and AI agents, MCP optimized.

- **URL**: https://apify.com/khadinakbar/tiktok-video-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 scraped tiktok videos

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## TikTok Video Scraper

Scrape TikTok video details and creator profile video feeds with normalized, AI-agent-ready output. This actor extracts captions, engagement metrics, author data, music metadata, hashtags, transcript text when available, direct signed video URLs, no-watermark URLs when TikTok returns them, and optional permanent provider-hosted media URLs.

It is built for SEO workflows, social listening, creator research, competitive analysis, content repurposing, and agentic data collection. The actor uses public-data provider APIs with ScrapeCreators as the recommended primary provider and SociaVault as fallback. It does not ask users for TikTok cookies.

### What This Actor Does

The actor supports two high-intent TikTok video workflows:

1. Direct video URL scraping: pass one or more TikTok video URLs and get one normalized row per video.
2. Creator profile feed scraping: pass creator handles or profile URLs and get recent or popular videos from those accounts.

For direct video URLs, the actor can also request transcripts with `getTranscript`. When a transcript is available, it is returned in the `transcript` field, usually as WEBVTT. For normal media work, the dataset includes direct signed TikTok play, download, and no-watermark URLs when providers and TikTok return them. These TikTok CDN URLs can expire, so download them promptly.

For permanent provider-hosted media URLs, enable `downloadMedia`. This is disabled by default because it is a higher-cost provider path. When permanent media is returned, the actor emits a separate `media-downloaded` PPE event so users and agents can predict the extra cost.

### When To Use It

Use this actor when you need structured TikTok video records from known video URLs or from a known creator's public feed. It is a good fit for:

- SEO teams researching short-form video topics and captions
- AI agents collecting evidence from specific TikTok videos
- Social media teams tracking creator performance
- Content teams repurposing captions, transcripts, and video metadata
- Growth teams comparing engagement across creator posts
- Data teams building TikTok analytics pipelines

Do not use this actor for keyword search, hashtag search, or user search. Use the TikTok Search Scraper for those workflows. Do not use it for comments. Use a TikTok video comments scraper for comment threads.

### Input

The most common input is:

```json
{
  "videoUrls": ["https://www.tiktok.com/@stoolpresidente/video/7324105620095765765"],
  "profileHandles": ["stoolpresidente"],
  "maxVideosPerProfile": 5,
  "maxPagesPerProfile": 1,
  "sortBy": "latest",
  "region": "US",
  "getTranscript": true,
  "downloadMedia": false,
  "providerOrder": "scrapecreators-first"
}
````

#### Important Inputs

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `videoUrls` | array | `[]` | Full TikTok video URLs to scrape directly. |
| `profileHandles` | array | `[]` | TikTok handles, @handles, or profile URLs to scrape for videos. |
| `maxVideosPerProfile` | integer | `50` | Maximum videos saved from each creator profile. |
| `maxPagesPerProfile` | integer | `10` | Provider pagination safety cap for each creator profile. |
| `maxTotalVideos` | integer | `10000` | Whole-run cap across direct URLs and profile feeds. |
| `sortBy` | string | `latest` | Sort profile feed videos by `latest` or `popular`. |
| `region` | string | `US` | Alpha-2 region code for provider requests. |
| `getTranscript` | boolean | `false` | Request transcripts for direct video URLs when available. |
| `downloadMedia` | boolean | `false` | Request permanent provider-hosted media URLs. Higher cost. |
| `providerOrder` | string | `scrapecreators-first` | Provider fallback order. |
| `includeRawData` | boolean | `false` | Attach raw provider payloads for debugging. |

### Output

Each dataset item is one TikTok video record. The output is intentionally flat so AI agents and spreadsheet tools can consume it easily.

| Field | Description |
| --- | --- |
| `videoId` | TikTok video ID. |
| `videoUrl` | Canonical TikTok video page URL. |
| `caption` | Video caption text. |
| `createdAt` | ISO timestamp when available. |
| `authorUsername` | Creator handle. |
| `authorNickname` | Creator display name. |
| `authorVerified` | Whether the creator is verified. |
| `authorFollowerCount` | Creator follower count when returned. |
| `playCount` | Views or play count. |
| `likeCount` | Likes. |
| `commentCount` | Comments. |
| `shareCount` | Shares. |
| `collectCount` | Saves or collects. |
| `engagementRate` | Approximate engagement rate. |
| `coverUrl` | Static cover image URL. |
| `playUrl` | Direct signed TikTok play URL. |
| `downloadUrl` | Direct signed TikTok download URL. |
| `noWatermarkUrl` | No-watermark URL when TikTok returns one. |
| `downloadedMediaUrls` | Permanent provider-hosted media URLs when enabled and returned. |
| `transcript` | Transcript text, usually WEBVTT, when requested and available. |
| `hashtags` | Hashtags attached to the video. |
| `musicTitle` | TikTok sound or song title. |
| `musicAuthor` | Music artist or sound owner. |

The actor also writes `OUTPUT` and `RUN_SUMMARY` to the key-value store. These contain run totals, provider status codes, provider errors, estimated PPE cost, providers used, and the final stop reason.

### Pricing

This actor uses pay per event:

| Event | Price | When charged |
| --- | ---: | --- |
| `apify-actor-start` | `$0.00005` | Once per run, scaled by memory. |
| `video-scraped` | `$0.005` | Each normalized TikTok video row saved. |
| `media-downloaded` | `$0.05` | Each row with permanent provider-hosted media URLs. |

Default runs do not request permanent provider media downloads. A typical 20-video run costs about `$0.10005` before any Apify platform usage costs. A 20-video run with permanent media returned for every row costs about `$1.10005`.

### Provider Strategy

The actor is provider-backed because TikTok's public web surface is heavily protected and browser scraping is more brittle. The default provider order is:

1. ScrapeCreators
2. SociaVault

You can force a provider with `scrapecreators-only` or `sociavault-only` for debugging or controlled testing. Missing provider keys cause a clean diagnostic exit instead of a crash.

### Notes And Limits

- Direct TikTok CDN URLs can expire. Download important videos promptly.
- Transcripts are only returned when TikTok and the provider expose them.
- No-watermark URLs are returned only when TikTok provides them to the provider.
- Permanent media download is intentionally optional because it costs more provider credits.
- The actor only scrapes public TikTok data available through the configured providers.
- Results can vary by region and provider freshness.

### Legal

This actor is intended for scraping publicly available TikTok data. You are responsible for using the output in compliance with applicable laws, platform terms, privacy obligations, and content rights. Do not use this actor to collect private data, bypass access controls, or republish copyrighted media without permission.

# Actor input Schema

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

Use this when you already have one or more TikTok video URLs to inspect. Accepts full URLs such as https://www.tiktok.com/@stoolpresidente/video/7324105620095765765. Defaults to an empty list. Not for TikTok profile URLs; put creator handles in Profile Handles.

## `profileHandles` (type: `array`):

Use this when you want recent or popular videos from TikTok creators. Accepts handles like stoolpresidente, @stoolpresidente, or profile URLs. Defaults to an empty list. Not for keyword search; use the TikTok Search Scraper for search queries.

## `providerOrder` (type: `string`):

Use this to choose which public-data provider is tried first. ScrapeCreators is the recommended primary and SociaVault is the fallback. Defaults to ScrapeCreators first. Not a browser scraping mode and does not use TikTok cookies.

## `maxVideosPerProfile` (type: `integer`):

Use this to cap how many videos are saved from each creator profile. Accepts integers from 1 to 10000. Defaults to 50. Does not limit direct Video URLs, which are processed one by one.

## `maxPagesPerProfile` (type: `integer`):

Use this as a safety cap for provider pagination on creator feeds. Accepts integers from 1 to 500. Defaults to 10. Not used for direct Video URLs.

## `maxTotalVideos` (type: `integer`):

Use this to cap the whole run across direct URLs and profile feeds. Accepts integers from 1 to 50000. Defaults to 10000. This is a billing and safety guard, not a request for more provider pages by itself.

## `sortBy` (type: `string`):

Use this to sort creator profile videos when the provider supports it. Accepted values are latest and popular. Defaults to latest. Not used for direct Video URLs.

## `region` (type: `string`):

Use this to localize provider requests with an alpha-2 country code. Example: US, GB, FR, or PH. Defaults to US. This is not a language filter and does not translate captions.

## `getTranscript` (type: `boolean`):

Use this when direct video URL rows should include TikTok transcript text where available. The transcript is usually WEBVTT. Defaults to false to keep runs cheaper and faster. Not applied to profile-feed pagination.

## `downloadMedia` (type: `boolean`):

Use this only when you need provider-hosted permanent media URLs from direct video URL requests. ScrapeCreators may charge extra provider credits for this path and this actor charges a media-downloaded event when media is returned. Defaults to false. Not needed for normal direct signed TikTok play URLs.

## `trim` (type: `boolean`):

Use this to request smaller provider payloads when supported. The normalized dataset fields stay the same. Defaults to true for speed and lower memory use. Turn off only when debugging with Include Raw Provider Data.

## `includeRawData` (type: `boolean`):

Use this when you need the original provider response attached to each dataset row. It is useful for debugging field drift or custom parsing. Defaults to false. Not recommended for AI-agent runs because raw payloads are large.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.tiktok.com/@stoolpresidente/video/7324105620095765765"
  ],
  "profileHandles": [
    "stoolpresidente"
  ],
  "providerOrder": "scrapecreators-first",
  "maxVideosPerProfile": 5,
  "maxPagesPerProfile": 1,
  "maxTotalVideos": 100,
  "sortBy": "latest",
  "region": "US",
  "getTranscript": false,
  "downloadMedia": false,
  "trim": true,
  "includeRawData": false
}
```

# Actor output Schema

## `results` (type: `string`):

Normalized TikTok video records with captions, metrics, media URLs, music, author, transcript, and source metadata.

## `runSummary` (type: `string`):

Run-level summary with provider diagnostics, counts, billing counters, and stop reason.

# 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.tiktok.com/@stoolpresidente/video/7324105620095765765"
    ],
    "profileHandles": [
        "stoolpresidente"
    ],
    "maxVideosPerProfile": 5,
    "maxPagesPerProfile": 1,
    "maxTotalVideos": 100,
    "region": "US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/tiktok-video-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 = {
    "videoUrls": ["https://www.tiktok.com/@stoolpresidente/video/7324105620095765765"],
    "profileHandles": ["stoolpresidente"],
    "maxVideosPerProfile": 5,
    "maxPagesPerProfile": 1,
    "maxTotalVideos": 100,
    "region": "US",
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/tiktok-video-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 '{
  "videoUrls": [
    "https://www.tiktok.com/@stoolpresidente/video/7324105620095765765"
  ],
  "profileHandles": [
    "stoolpresidente"
  ],
  "maxVideosPerProfile": 5,
  "maxPagesPerProfile": 1,
  "maxTotalVideos": 100,
  "region": "US"
}' |
apify call khadinakbar/tiktok-video-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Video Scraper - Video Details & Profile Feeds",
        "description": "Scrape TikTok video details, captions, metrics, direct video URLs, transcripts, music, hashtags, and creator profile videos. Provider-backed, no cookies required, perfect for SEO and AI agents, MCP optimized.",
        "version": "0.1",
        "x-build-id": "yUbhgYJ0RWaZuIgOf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~tiktok-video-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-tiktok-video-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/khadinakbar~tiktok-video-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-tiktok-video-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/khadinakbar~tiktok-video-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-tiktok-video-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": {
                    "videoUrls": {
                        "title": "TikTok Video URLs",
                        "type": "array",
                        "description": "Use this when you already have one or more TikTok video URLs to inspect. Accepts full URLs such as https://www.tiktok.com/@stoolpresidente/video/7324105620095765765. Defaults to an empty list. Not for TikTok profile URLs; put creator handles in Profile Handles.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "profileHandles": {
                        "title": "Profile Handles",
                        "type": "array",
                        "description": "Use this when you want recent or popular videos from TikTok creators. Accepts handles like stoolpresidente, @stoolpresidente, or profile URLs. Defaults to an empty list. Not for keyword search; use the TikTok Search Scraper for search queries.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "providerOrder": {
                        "title": "Provider Order",
                        "enum": [
                            "scrapecreators-first",
                            "sociavault-first",
                            "scrapecreators-only",
                            "sociavault-only"
                        ],
                        "type": "string",
                        "description": "Use this to choose which public-data provider is tried first. ScrapeCreators is the recommended primary and SociaVault is the fallback. Defaults to ScrapeCreators first. Not a browser scraping mode and does not use TikTok cookies.",
                        "default": "scrapecreators-first"
                    },
                    "maxVideosPerProfile": {
                        "title": "Max Videos Per Profile",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Use this to cap how many videos are saved from each creator profile. Accepts integers from 1 to 10000. Defaults to 50. Does not limit direct Video URLs, which are processed one by one.",
                        "default": 50
                    },
                    "maxPagesPerProfile": {
                        "title": "Max Pages Per Profile",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Use this as a safety cap for provider pagination on creator feeds. Accepts integers from 1 to 500. Defaults to 10. Not used for direct Video URLs.",
                        "default": 10
                    },
                    "maxTotalVideos": {
                        "title": "Max Total Videos",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Use this to cap the whole run across direct URLs and profile feeds. Accepts integers from 1 to 50000. Defaults to 10000. This is a billing and safety guard, not a request for more provider pages by itself.",
                        "default": 10000
                    },
                    "sortBy": {
                        "title": "Profile Sort Order",
                        "enum": [
                            "latest",
                            "popular"
                        ],
                        "type": "string",
                        "description": "Use this to sort creator profile videos when the provider supports it. Accepted values are latest and popular. Defaults to latest. Not used for direct Video URLs.",
                        "default": "latest"
                    },
                    "region": {
                        "title": "Region",
                        "type": "string",
                        "description": "Use this to localize provider requests with an alpha-2 country code. Example: US, GB, FR, or PH. Defaults to US. This is not a language filter and does not translate captions.",
                        "default": "US"
                    },
                    "getTranscript": {
                        "title": "Get Transcript",
                        "type": "boolean",
                        "description": "Use this when direct video URL rows should include TikTok transcript text where available. The transcript is usually WEBVTT. Defaults to false to keep runs cheaper and faster. Not applied to profile-feed pagination.",
                        "default": false
                    },
                    "downloadMedia": {
                        "title": "Download Media Permanently",
                        "type": "boolean",
                        "description": "Use this only when you need provider-hosted permanent media URLs from direct video URL requests. ScrapeCreators may charge extra provider credits for this path and this actor charges a media-downloaded event when media is returned. Defaults to false. Not needed for normal direct signed TikTok play URLs.",
                        "default": false
                    },
                    "trim": {
                        "title": "Trim Provider Response",
                        "type": "boolean",
                        "description": "Use this to request smaller provider payloads when supported. The normalized dataset fields stay the same. Defaults to true for speed and lower memory use. Turn off only when debugging with Include Raw Provider Data.",
                        "default": true
                    },
                    "includeRawData": {
                        "title": "Include Raw Provider Data",
                        "type": "boolean",
                        "description": "Use this when you need the original provider response attached to each dataset row. It is useful for debugging field drift or custom parsing. Defaults to false. Not recommended for AI-agent runs because raw payloads are large.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
