# Threads Scraper - Posts, Profiles & Replies (`pro100chok/threads-scraper-usage`) Actor

All-in-one Threads.net scraper: search posts by keyword, extract user profiles with followers, and collect reply threads. Full engagement data, contact extraction, media URLs. 20 parallel workers, auto-retry, proxy rotation.

- **URL**: https://apify.com/pro100chok/threads-scraper-usage.md
- **Developed by:** [Raven](https://apify.com/pro100chok) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 131 total users, 62 monthly users, 99.4% runs succeeded, 5 bookmarks
- **User rating**: 4.90 out of 5 stars

## Pricing

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

## Threads Scraper — Extract Posts, Profiles, and Search Results from Threads.net

Scrape Threads.net posts, user profiles, and search results at scale. Collect post text, engagement metrics (likes, replies, reposts, shares), profile data with follower counts, media URLs, and contact information. Process up to 20 requests in parallel with automatic retries and proxy rotation.

### Pricing

| Plan | Price | Best For | Link |
|------|-------|----------|------|
| **Pay per result** | $2 / 1,000 results | One-time scraping, small batches | [Threads Scraper Usage](https://apify.com/pro100chok/threads-scraper-usage) |
| **Monthly subscription** | $20 / month | Regular monitoring, unlimited usage | [Threads Scraper Monthly](https://apify.com/pro100chok/threads-scraper-monthly) |

Both plans have identical functionality — choose the one that fits your workflow.

### Key Features

- **Search posts by keyword** — find Threads posts matching any search query, with full engagement data
- **Scrape user profiles** — extract bio, follower count, verification status, profile links, and contact info
- **Scrape user posts individually** — get each user's post as a separate dataset result with full pagination support
- **Extract post with replies** — get a specific post with its first page of replies
- **Scrape all post replies** — paginate through all replies on a post, each reply as a separate result
- **Parallel processing** — up to 20 concurrent requests for maximum throughput
- **Auto-retry with proxy rotation** — 5 retry attempts per request, each with a fresh proxy IP
- **Contact extraction** — automatically finds emails and URLs in post text and user bios
- **Multiple media types** — handles text posts, photos, videos, and carousels with full media URLs
- **Flexible input formats** — accepts usernames, @usernames, or full profile/post URLs

### What Data You Get

#### Search and post data

| Field | Description |
|-------|-------------|
| `post_id` | Unique post identifier |
| `text` | Full post text |
| `taken_at` | Unix timestamp |
| `like_count` | Number of likes |
| `reply_count` | Number of replies |
| `repost_count` | Number of reposts |
| `quote_count` | Number of quotes |
| `reshare_count` | Number of shares |
| `username` | Author username |
| `full_name` | Author display name |
| `is_verified` | Verified account flag |
| `media_type` | Content type: text (19), photo (1), video (2), carousel (8) |
| `images` | Array of image URLs with dimensions |
| `video_versions` | Video URLs (if video post) |
| `carousel_media` | Carousel items (if carousel post) |
| `post_url` | Direct link to the post |
| `emails_in_text` | Emails found in post text |
| `urls_in_text` | URLs found in post text |
| `reply_control` | Who can reply: `everyone`, `accounts_you_follow`, `mentioned_only` |
| `is_reply` | Whether this is a reply to another post |

#### Profile data

| Field | Description |
|-------|-------------|
| `user_id` | Numeric user ID |
| `username` | Username |
| `full_name` | Display name |
| `biography` | Bio text |
| `bio_fragments` | Structured bio (mentions, hashtags, links) |
| `bio_links` | Links from bio |
| `profile_pic_url` | Avatar URL |
| `hd_profile_pics` | HD avatar versions |
| `follower_count` | Number of followers |
| `is_verified` | Verified account flag |
| `is_private` | Private account flag |
| `emails_in_bio` | Emails found in bio |
| `urls_in_bio` | URLs found in bio |

#### Post detail fields (additional)

| Field | Description |
|-------|-------------|
| `replies` | Array of replies to this post (same data structure) |
| `quoted_post` | Quoted post data |
| `reposted_post` | Reposted post data |
| `link_preview` | Link preview attachment |
| `text_fragments` | Structured text with mentions, hashtags, and links |
| `is_paid_partnership` | Paid partnership flag |
| `is_pinned_to_profile` | Pinned to profile flag |

### Use Cases

- **Social media monitoring** — track brand mentions, trending topics, and audience sentiment on Threads in real time
- **Influencer research** — find and evaluate Threads creators by follower count, engagement rate, and posting frequency for partnership decisions
- **Content analysis** — analyze post performance, identify top-performing content formats, and track engagement patterns across keywords
- **Lead generation** — extract contact information (emails, URLs) from Threads profiles and posts for outreach campaigns
- **Market research** — monitor competitor activity, product discussions, and industry trends on Meta's text-based platform

### How It Works

1. **Choose an action** — `search` (find posts by keyword), `profile` (scrape user data), `post` (get specific posts with first page of replies), `user_posts` (get posts from user profiles as individual results), or `post_replies` (get all replies to a post as individual results)
2. **Provide inputs** — keywords for search, usernames for profiles, or post URLs
3. **Actor processes in parallel** — up to 20 concurrent requests with residential proxy rotation
4. **Download results** — structured JSON, CSV, or Excel from the Apify dataset

### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | String | Yes | `search`, `profile`, `post`, `user_posts`, or `post_replies` |
| `queries` | String[] | For `search` | List of search keywords |
| `usernames` | String[] | For `profile`/`user_posts` | Usernames, `@username`, or full profile URLs |
| `posts` | String[] | For `post`/`post_replies` | Full post URLs |
| `serp_type` | String | No | `default` (posts) or `accounts` (search for accounts) |
| `threadsCookies` | String | No | JSON cookies from EditThisCookie extension (enables pagination) |
| `maxItems` | Integer | No | Max results per query/username/post (default: 100, 0 = unlimited). For `user_posts` — max posts per user. For `post_replies` — max replies per post. |
| `proxy` | Object | No | Proxy configuration (default: Residential US) |

#### Authentication (optional)

Providing cookies from a logged-in Threads.net session enables **pagination for user posts** (`user_posts`) and **post replies** (`post_replies`), and may return more detailed data. Without cookies, only the first page of results is returned.

**How to get cookies:**

1. Install the [EditThisCookie v3](https://chromewebstore.google.com/detail/editthiscookie-v3/ojfebgpkimhlhcblbalbfjblapadhbol) Chrome extension.
2. Log into [threads.net](https://www.threads.net) in your browser.
3. Click the EditThisCookie icon and export cookies (the 5th button at the top of the cookie editor).
4. Paste the exported JSON into the `threadsCookies` input field of this Actor.

**Cookie expiry note:** Threads cookies typically expire after a few days to weeks. If the scraper reports invalid authentication after a previous successful run, simply re-export fresh cookies from your browser.

#### Input examples

**Search posts:**
```json
{
    "action": "search",
    "queries": ["python programming", "javascript", "AI tools"]
}
````

**Scrape profiles:**

```json
{
    "action": "profile",
    "usernames": ["zuck", "@mosseri", "https://www.threads.net/@instagram"]
}
```

**Get posts from user profiles (each post = separate result):**

```json
{
    "action": "user_posts",
    "usernames": ["zuck", "@mosseri"],
    "maxItems": 50,
    "threadsCookies": "[your cookies JSON here]"
}
```

**Scrape specific posts (with first page of replies):**

```json
{
    "action": "post",
    "posts": [
        "https://www.threads.net/@zuck/post/DVrwsE5EdSz"
    ]
}
```

**Get all replies to a post (each reply = separate result):**

```json
{
    "action": "post_replies",
    "posts": [
        "https://www.threads.net/@zuck/post/DVrwsE5EdSz"
    ],
    "maxItems": 200,
    "threadsCookies": "[your cookies JSON here]"
}
```

### Output Example

#### Search result

```json
{
    "post_id": "3578921456789012345",
    "code": "DVp9LrHAjHq",
    "text": "Just launched our new Python library for data processing...",
    "taken_at": 1710000000,
    "media_type": 19,
    "like_count": 245,
    "reply_count": 32,
    "repost_count": 18,
    "quote_count": 5,
    "reshare_count": 12,
    "username": "techdev",
    "full_name": "Tech Developer",
    "is_verified": true,
    "is_reply": false,
    "images": [],
    "post_url": "https://www.threads.net/@techdev/post/DVp9LrHAjHq",
    "emails_in_text": ["hello@techdev.com"],
    "urls_in_text": ["https://github.com/techdev/library"]
}
```

#### Profile result

```json
{
    "user_id": 12345678901,
    "username": "zuck",
    "full_name": "Mark Zuckerberg",
    "biography": "Building the future of connection.",
    "profile_pic_url": "https://...",
    "follower_count": 12500000,
    "is_verified": true,
    "is_private": false,
    "bio_links": [{ "url": "https://meta.com" }],
    "emails_in_bio": [],
    "urls_in_bio": ["https://meta.com"]
}
```

### Proxy

For best results, use **Residential proxies with US location**. Threads.net may block or rate-limit requests from datacenter IPs. The default configuration uses Apify Residential proxies (US) — no additional setup needed.

### FAQ

**What data can I extract from Threads.net?**
Posts (text, likes, replies, reposts, media), user profiles (bio, followers, verification), and full reply threads. The scraper also extracts emails and URLs found in text and bios.

**How many posts or profiles can I scrape per run?**
There is no hard limit. The Actor processes up to 20 requests concurrently, with 5 retry attempts per request. A typical run can process hundreds of search results or profiles.

**Does the Threads scraper handle private accounts?**
No. Only publicly visible data from public profiles and posts is collected.

**What proxy should I use for Threads scraping?**
Residential US proxies are recommended. The default configuration already uses Apify Residential (US) — it works out of the box.

**Can I search for accounts instead of posts?**
Yes. Set `serp_type` to `accounts` to search for Threads user profiles matching your keywords instead of posts.

**What's the difference between the monthly and pay-per-use plans?**
Identical functionality. Monthly ($20/mo) is better for regular monitoring; pay-per-use ($2/1k results) is better for one-time scraping.

**How do I scrape user posts?**
Use `action: "user_posts"` with a list of usernames. Each post is returned as a separate dataset result. Provide cookies via `threadsCookies` to enable pagination beyond the first page.

**My cookies stopped working**
Re-export cookies from your browser. Threads cookies expire periodically. Just repeat the EditThisCookie export steps above.

**Is my Threads account safe when using cookies?**
The Actor only performs read-only operations (viewing profiles, posts, and search results). It does not post, like, follow, or modify anything on your account. Your cookies are never stored by the Actor.

### Having issues? Help me fix them faster

If you experience any problems, please share your run data with me so I can debug and improve the Actor:

1. Go to [Apify Security Settings](https://console.apify.com/settings/security)
2. Find **"Share run data with developers"**
3. In the **"Manage list of Actors"** section, check this Actor (or **All Actors**)
4. Save

This data is used **only for debugging** and helps me resolve issues much faster. Thank you!

### Support

Questions, bug reports, or feature requests: **afrcanec@gmail.com**

### 🏷️ Tags

Threads Scraper, Threads.net Scraper, Threads Data Extractor, Threads API, Social Media Scraper, Threads Posts Scraper, Threads Profile Scraper, Threads Search Scraper, Meta Threads, Instagram Threads Data, Engagement Metrics Extractor, Follower Count Tracker, Social Media Monitoring, Brand Mentions Tracker, Influencer Research Tool, Content Analysis Threads, Threads Reply Scraper, Social Media Lead Generation, Email Extractor Social Media, How to Scrape Threads, Extract Threads Data, Social Media Analytics, Trending Topics Tracker, Audience Analysis, Social Listening Tool, Social Media Data Mining, Competitor Monitoring Social, User Profile Extractor, Threads Engagement Analytics, Threads Media Scraper

# Actor input Schema

## `action` (type: `string`):

What to scrape: search posts by keyword, get user profiles, or get specific posts.

## `queries` (type: `array`):

List of search keywords (for action=search). Example: \["python", "javascript", "AI"]

## `usernames` (type: `array`):

List of usernames or profile URLs (for action=profile or action=user\_posts). Example: \["zuck", "@mosseri", "https://www.threads.net/@instagram"]

## `posts` (type: `array`):

List of post URLs (for action=post or action=post\_replies). Example: \["https://www.threads.net/@zencodez/post/DVp9LrHAjHq"]

## `serp_type` (type: `string`):

Search result type (for action=search).

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

Maximum number of results per query/username/post. For user\_posts — max posts per user. For post\_replies — max replies per post. Set 0 for unlimited. Pagination requires cookies.

## `threadsCookies` (type: `string`):

Optional. JSON cookies from EditThisCookie browser extension for a logged-in Threads.net session. Enables pagination for profile posts and may return more data. Format: JSON array of cookie objects.

## `proxy` (type: `object`):

Apify Proxy configuration. Each request uses a fresh proxy.

## Actor input object example

```json
{
  "action": "search",
  "queries": [
    "threads"
  ],
  "serp_type": "default",
  "maxItems": 100,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `results` (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 = {
    "queries": [
        "threads"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("pro100chok/threads-scraper-usage").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 = { "queries": ["threads"] }

# Run the Actor and wait for it to finish
run = client.actor("pro100chok/threads-scraper-usage").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 '{
  "queries": [
    "threads"
  ]
}' |
apify call pro100chok/threads-scraper-usage --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Scraper - Posts, Profiles & Replies",
        "description": "All-in-one Threads.net scraper: search posts by keyword, extract user profiles with followers, and collect reply threads. Full engagement data, contact extraction, media URLs. 20 parallel workers, auto-retry, proxy rotation.",
        "version": "0.1",
        "x-build-id": "sIspPLHQ1SId6TmPW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pro100chok~threads-scraper-usage/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pro100chok-threads-scraper-usage",
                "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/pro100chok~threads-scraper-usage/runs": {
            "post": {
                "operationId": "runs-sync-pro100chok-threads-scraper-usage",
                "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/pro100chok~threads-scraper-usage/run-sync": {
            "post": {
                "operationId": "run-sync-pro100chok-threads-scraper-usage",
                "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": [
                    "action"
                ],
                "properties": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "search",
                            "profile",
                            "post",
                            "user_posts",
                            "post_replies"
                        ],
                        "type": "string",
                        "description": "What to scrape: search posts by keyword, get user profiles, or get specific posts.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "List of search keywords (for action=search). Example: [\"python\", \"javascript\", \"AI\"]",
                        "items": {
                            "type": "string"
                        }
                    },
                    "usernames": {
                        "title": "Usernames",
                        "type": "array",
                        "description": "List of usernames or profile URLs (for action=profile or action=user_posts). Example: [\"zuck\", \"@mosseri\", \"https://www.threads.net/@instagram\"]",
                        "items": {
                            "type": "string"
                        }
                    },
                    "posts": {
                        "title": "Posts to scrape",
                        "type": "array",
                        "description": "List of post URLs (for action=post or action=post_replies). Example: [\"https://www.threads.net/@zencodez/post/DVp9LrHAjHq\"]",
                        "items": {
                            "type": "string"
                        }
                    },
                    "serp_type": {
                        "title": "Search type",
                        "enum": [
                            "default",
                            "accounts"
                        ],
                        "type": "string",
                        "description": "Search result type (for action=search).",
                        "default": "default"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of results per query/username/post. For user_posts — max posts per user. For post_replies — max replies per post. Set 0 for unlimited. Pagination requires cookies.",
                        "default": 100
                    },
                    "threadsCookies": {
                        "title": "Threads Cookies (JSON format)",
                        "type": "string",
                        "description": "Optional. JSON cookies from EditThisCookie browser extension for a logged-in Threads.net session. Enables pagination for profile posts and may return more data. Format: JSON array of cookie objects."
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Each request uses a fresh proxy.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
