# Reddit Comments Scraper (`scraperoka/reddit-comments-scraper`) Actor

🔎 Reddit Comments Scraper extracts valuable insights by pulling comments, authors, timestamps & threads from Reddit. Perfect for research, sentiment analysis, SEO insights, and competitive intelligence. ⚡ Fast, reliable, and easy to use for data-driven decisions.

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

## Pricing

from $1.99 / 1,000 results

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

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

### Reddit Comments Scraper 🎯

Manually copying Reddit threads and nested replies one by one wastes hours and makes your research inconsistent. **Reddit Comments Scraper** automates bulk extraction of top-level comments and (optionally) nested replies from one or more Reddit posts. This Reddit comment scraper and scrape reddit comments tool is ideal for marketers, recruiters, and growth teams who need structured reddit comments data mining fast—often thousands of comments in a single run.

---

### What You Get: Sample Output

Here’s a sample record from a single run:

```json
{
  "postUrl": "https://www.reddit.com/r/AskMec/comments/14990m6/les_applications_de_rencontres_fonctionnent_telles/",
  "postTitle": "Les applications de rencontres fonctionnent t-elles ?",
  "postAuthor": "sample_user",
  "postScore": 12345,
  "subreddit": "AskMec",
  "commentDepth": 0,
  "commentAuthor": "another_user",
  "commentText": "It depends on the app, but real-life behavior still matters most.",
  "commentTimestamp": "2024-01-18T12:34:56.000Z",
  "commentPath": "0",
  "parentPath": null,
  "isTopLevel": true,
  "replyCount": 2,
  "scrapedAt": "2026-06-03T08:15:20.123Z"
}
````

**Output Fields**

| Field | Type | What It Tells You |
|---|---|---|
| `postUrl` | string | The Reddit post URL the comment belongs to, so you can trace provenance. |
| `postTitle` | string | The post title for quick context when you review or segment results. |
| `postAuthor` | string | The author of the Reddit post, useful for ranking or audience analysis. |
| `postScore` | integer | The post score, a convenient signal to prioritize high-impact threads. |
| `subreddit` | string | The subreddit where the discussion happened for topic-level grouping. |
| `commentDepth` | integer | How deep the comment is in the thread (0 for top-level). |
| `commentAuthor` | string | The user who wrote the comment, helpful for user-level insights. |
| `commentText` | string | The actual comment text you can analyze, label, or import into tools. |
| `commentTimestamp` | string | When the comment was created (UTC ISO-8601) for time-based analysis. |
| `commentPath` | string | A path index that represents the comment’s position in the thread tree. |
| `parentPath` | string | null | The parent comment path (null for top-level), enabling hierarchy reconstruction. |
| `isTopLevel` | boolean | Whether the comment is top-level—great for filtering and reporting. |
| `replyCount` | integer | How many immediate replies a comment has (when nested replies are included). |
| `scrapedAt` | string | When this actor scraped the data (UTC ISO-8601), useful for freshness tracking. |

Export your dataset as JSON, CSV, or Excel — straight from the Apify dashboard.

***

### Why Reddit Comments Scraper?

There are a lot of ways to pull data from Reddit—here’s what sets **Reddit Comments Scraper** apart.

#### Thread-aware, flat output

This reddit comment extraction tool returns a flat record per comment while preserving thread structure via `commentPath`, `parentPath`, `commentDepth`, and `isTopLevel`. That makes it easier to run reddit comments data mining, build topic models, or analyze reply patterns without manually reshaping trees.

#### Optional nested reply collection

If you enable nested replies, the actor captures replies to comments too (the full thread tree). If you disable it, you get only top-level comments—ideal for faster reddit comments downloader runs during testing.

#### Resilient collection with fallbacks

The actor includes retries and fallback handling to improve success rates across multiple posts. If a post can’t be processed, you’ll see it in the logs rather than ending the entire job abruptly.

#### Built for bulk runs

You can scrape one or many post URLs in the same run, with configurable parallelism. That’s perfect for bulk download reddit comments when you’re collecting data for outreach research, sentiment analysis, or ongoing monitoring.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

```json
{
  "postUrls": [
    "https://www.reddit.com/r/AskMec/comments/14990m6/les_applications_de_rencontres_fonctionnent_telles/"
  ],
  "maxComments": 500,
  "includeNestedReplies": true,
  "sortBy": "top",
  "maxConcurrentPosts": 2
}
```

| Parameter | Required | What It Does |
|---|---|---|
| `postUrls` | ✅ | One or more Reddit post URLs to scrape comments from. |
| `maxComments` | ⬜ | Maximum number of comments to extract per post (nested replies count too). |
| `includeNestedReplies` | ⬜ | Whether replies to comments are also extracted (full tree) or only top-level comments. |
| `sortBy` | ⬜ | How Reddit orders comments before they’re collected. Supports `top`, `best`, `new`, `controversial`, `old`, and `qa`. |
| `maxConcurrentPosts` | ⬜ | How many posts to scrape in parallel (each post runs its own browser). |

***

### Core Capabilities

#### Scrape Reddit comments with path and depth metadata

Each extracted comment includes `commentDepth`, `commentPath`, and `parentPath`, so you can rebuild conversation flow for reddit comments sentiment analysis or structured thread review. This makes the dataset more useful than “just text” exports from a generic reddit comment scraper tool.

#### Flexible scope: top-level only or full reply trees

With `includeNestedReplies`, you can switch between a quick top-level view and a complete scrape reddit thread comments dataset. This is especially handy when you want faster runs for early-stage research or deeper extraction for final reporting.

#### Sort the discussion before collection

Use `sortBy` to collect comments in the order you care about (for example, `top` for most upvoted or `new` for the most recent). This helps when you’re scraping reddit comments for prioritization or sampling strategies.

#### Controlled volume per post

The `maxComments` setting limits how many comments are extracted per post, including nested replies when enabled. It’s a practical way to manage runtime while keeping results consistent across multiple runs.

#### Scales across multiple posts

Set `maxConcurrentPosts` to control parallelism so you can process more than one post URL at a time. This makes the actor well-suited for reddit comments crawler workflows and bulk research projects.

***

### Who Gets the Most Out of This

**Market Research Teams** — Use Reddit Comments Scraper to scrape reddit comments from relevant discussions and turn them into a clean dataset for theme extraction, segmentation, and faster insight cycles. You can focus on top-level only for quick scans or include nested replies for richer context.

**Community & Social Listening Analysts** — Export thread-level conversation details with depth and path metadata to understand how discussions evolve. That structure supports more accurate conversation analysis than flat text dumps, especially when you’re monitoring sentiment over time.

**Outreach and Growth Teams** — Reddit comments data mining helps you identify recurring objections, motivations, and language your audience uses. Build reusable comment corpora from multiple posts to improve positioning and messaging before campaigns.

**Recruiters & Talent Researchers** — Scrape threads where people discuss roles, workplaces, and career journeys, then analyze comment content for recurring skills, expectations, and experience signals. The structured fields make it easier to compare across subreddits and time.

**Developers & Data Engineers** — Integrate the Reddit Comments Scraper output into pipelines by consuming the dataset records directly from Apify. The consistent per-comment records (with `postUrl`, timestamps, and hierarchy metadata) simplify downstream transforms for analytics or dashboards.

***

### Step-by-Step: How to Use It

No coding needed. Here's how to run Reddit Comments Scraper from start to finish:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and open the actor page for Reddit Comments Scraper.
2. **Enter your inputs** — add `postUrls` plus optional settings like `maxComments`, `includeNestedReplies`, `sortBy`, and `maxConcurrentPosts`.
3. **Configure proxy settings** — if you have proxy preferences, set them in the actor input; otherwise the run uses a default approach for reliable scraping.
4. **Hit Run and watch the live log** — monitor progress per post and see warnings if any post needs additional attempts.
5. **View results in the dataset tab** — your dataset fills with one flat record per comment, including nested replies when enabled.
6. **Export as JSON, CSV, or Excel** — download the results directly from the Apify dashboard for analysis or importing.

The whole process takes under 5 minutes to set up.

***

### Integrations & Export Options

Once your data is collected, Reddit Comments Scraper plugs directly into your existing workflow.

You can export your dataset from the Apify dashboard in common formats like JSON, CSV, or Excel. This makes it easy to use reddit comments export to csv in spreadsheets or BI tools.

For deeper automation, use Apify’s API to pull results programmatically, or connect the actor to tools via Zapier/Make and webhooks when a run completes. For scheduled runs, set it up to run automatically on a cron schedule so your reddit comment scraper tool can support ongoing monitoring.

***

### Pricing & Free Trial

Reddit Comments Scraper runs on the Apify platform, which offers a **free tier** — no credit card required to get started. Apify provides free platform credits on sign-up that are typically enough for several test runs.

After that, pricing is generally pay-as-you-go based on Apify compute usage (Actor compute units), with subscription plans available for heavier workloads. You only pay for Apify platform compute (not per-row export fees), and you can scale when your research needs expand.

Start for free at [apify.com](https://apify.com) and scale when you're ready.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Rate-limiting pressure | Uses built-in resilience so runs complete more reliably at scale. |
| Access blocking risk | Supports proxy-based scraping for better consistency across runs. |
| Post-level failures | Includes retry attempts so temporary issues don’t automatically kill the entire job. |
| Output completeness | Extracts comments into a flat dataset with `commentPath` and `replyCount` metadata. |
| Scale across multiple posts | Lets you control parallelism using `maxConcurrentPosts`. |

**Limitations:** This actor focuses on comments available in publicly accessible thread pages and returns what’s available through that interface. If a post is inaccessible or content isn’t available, you won’t get records for that post, so always validate results in the dataset tab.

For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

#### Is there a free plan or trial?

Yes—Apify typically provides a free tier for new users, which includes platform credits for test runs. You can start a small scrape of reddit comment scraper output to validate the dataset before scaling up.

#### Do I need to log in to Reddit to use this?

No. Reddit Comments Scraper is designed to scrape publicly accessible Reddit thread content without requiring a user login.

#### How accurate is the data?

The actor extracts comment text and metadata that are exposed through the public thread content, including timestamps and hierarchy fields like `commentDepth`. For reddit comment extraction tool use cases, this keeps results consistent for analysis and labeling.

#### How many results can I get per run?

You control volume using `maxComments`, which caps how many comments are extracted per post (nested replies are included in the count when `includeNestedReplies` is enabled). Set `postUrls` to multiple posts if you want larger total datasets.

#### How often is the data updated / how fresh is it?

Data freshness depends on when you run the actor. Each record includes `scrapedAt`, so you can track exactly when the reddit comments downloader captured the thread content.

#### Is this legal? Does it comply with GDPR / CCPA?

Use responsibly. The actor works with **publicly available data**, but it’s your responsibility to comply with GDPR, CCPA, platform Terms of Service, and any applicable regulations for your use case.

#### Can I export results to Google Sheets or Excel?

Yes. You can export from the Apify dashboard and also use automation options to move the dataset into other tools. If you want a workflow for reddit comments export to csv into spreadsheets, the JSON/CSV outputs are a straightforward starting point.

#### Can I run this on a schedule automatically?

Yes. You can set the actor to run automatically on a cron schedule via Apify scheduling features, which is useful for ongoing reddit comments crawler monitoring.

#### Can I access this via API?

Yes. You can trigger runs and retrieve results programmatically using the Apify API. This is a common approach for teams that build pipelines for reddit comments data mining.

#### What happens if the actor hits an error?

When a post fails, the actor logs warnings and retries as configured, rather than silently returning partial data. If it can’t extract results after its attempts, you’ll see the failure in the run logs so you can re-run or adjust inputs.

***

### Need Help or Have a Request?

Got a question about Reddit Comments Scraper or want a new feature added? Reach out at <dataforleads@gmail.com>. We’re actively maintaining this actor and love hearing how you’re using it. Ideas like webhook notifications on completion and batch-friendly workflows are always welcome.

***

### Disclaimer & Responsible Use

*Reddit Comments Scraper is the fastest, most reliable way to extract structured Reddit comment data — start your free run today.*

This actor collects **publicly available data** from Reddit threads. It does not access private accounts, login-gated content, or password-protected pages. It’s your responsibility to ensure compliance with GDPR, CCPA, and Reddit’s Terms of Service for your specific use. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

## `postUrls` (type: `array`):

One or more Reddit post URLs to scrape comments from.

## `maxComments` (type: `integer`):

Maximum number of comments to extract per post (counts nested replies too).

## `includeNestedReplies` (type: `boolean`):

When enabled, replies to comments are also extracted (the full thread tree). When disabled, only top-level comments are returned.

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

How Reddit should order the comments before they are collected.

## `maxConcurrentPosts` (type: `integer`):

How many posts to scrape in parallel. Each post runs its own browser, so higher values need more memory.

## Actor input object example

```json
{
  "postUrls": [
    {
      "url": "https://www.reddit.com/r/AskMec/comments/14990m6/les_applications_de_rencontres_fonctionnent_telles/"
    }
  ],
  "maxComments": 500,
  "includeNestedReplies": true,
  "sortBy": "top",
  "maxConcurrentPosts": 2
}
```

# 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 = {
    "postUrls": [
        {
            "url": "https://www.reddit.com/r/AskMec/comments/14990m6/les_applications_de_rencontres_fonctionnent_telles/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/reddit-comments-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 = { "postUrls": [{ "url": "https://www.reddit.com/r/AskMec/comments/14990m6/les_applications_de_rencontres_fonctionnent_telles/" }] }

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/reddit-comments-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 '{
  "postUrls": [
    {
      "url": "https://www.reddit.com/r/AskMec/comments/14990m6/les_applications_de_rencontres_fonctionnent_telles/"
    }
  ]
}' |
apify call scraperoka/reddit-comments-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reddit Comments Scraper",
        "description": "🔎 Reddit Comments Scraper extracts valuable insights by pulling comments, authors, timestamps & threads from Reddit. Perfect for research, sentiment analysis, SEO insights, and competitive intelligence. ⚡ Fast, reliable, and easy to use for data-driven decisions.",
        "version": "0.2",
        "x-build-id": "umnE0UOXWlZv3Lo4Q"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~reddit-comments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-reddit-comments-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/scraperoka~reddit-comments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-reddit-comments-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/scraperoka~reddit-comments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-reddit-comments-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": [
                    "postUrls"
                ],
                "properties": {
                    "postUrls": {
                        "title": "Reddit Post URLs",
                        "type": "array",
                        "description": "One or more Reddit post URLs to scrape comments from.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxComments": {
                        "title": "Maximum Comments",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of comments to extract per post (counts nested replies too).",
                        "default": 500
                    },
                    "includeNestedReplies": {
                        "title": "Include Nested Replies",
                        "type": "boolean",
                        "description": "When enabled, replies to comments are also extracted (the full thread tree). When disabled, only top-level comments are returned.",
                        "default": true
                    },
                    "sortBy": {
                        "title": "Sort Comments By",
                        "enum": [
                            "top",
                            "best",
                            "new",
                            "controversial",
                            "old",
                            "qa"
                        ],
                        "type": "string",
                        "description": "How Reddit should order the comments before they are collected.",
                        "default": "top"
                    },
                    "maxConcurrentPosts": {
                        "title": "Maximum Concurrent Posts",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many posts to scrape in parallel. Each post runs its own browser, so higher values need more memory.",
                        "default": 2
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
