# Threads Account Threads Scraper (`xtracto/threads-account-threads-scraper`) Actor

Scrape a Threads user's own posts.

- **URL**: https://apify.com/xtracto/threads-account-threads-scraper.md
- **Developed by:** [Farhan Febrian Nauval](https://apify.com/xtracto) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.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.
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 Account Posts Scraper

Extract every public post from any Threads account in bulk — full caption text, images, video, like counts, repost / quote info, timestamps, and the author profile — as clean structured JSON.

### Why use this actor

- **No account / no login required** — just give it a Threads username or profile URL.
- **No API key needed** — Threads has no public API; this actor returns the same posts the web app shows on a user's profile.
- **Full post content** — caption text, image / video URLs, link-preview cards, carousel media, like count, repost count, reply count, and parent-thread context for multi-post threads.
- **Bulk input** — pass a list of usernames or URLs in one run; one dataset row per published thread.
- **Posts only (not replies)** — the actor mirrors the "Threads" tab of a profile, so you get the user's own posts plus their reposts of others. Replies live in a separate sister actor (see below).
- **Stable JSON output** suitable for pipelines, spreadsheets, and databases — every row carries `_input`, `_source`, `_scrapedAt` envelope fields so you can join results back to your input list.

### How it works

1. You provide a list of Threads usernames (e.g. `zuck`) or full profile URLs.
2. The actor resolves each handle to its internal user ID, then walks the user's posts feed page by page using a paging cursor.
3. For each thread it returns the root post plus any follow-up posts in the same thread chain, along with the author profile and engagement counters.
4. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.

### Input

```json
{
  "usernames": [
    "zuck",
    "https://www.threads.com/@mosseri"
  ],
  "maxPosts": 30,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["DATACENTER"]
  }
}
````

| Field | Type | Description |
|---|---|---|
| `usernames` | array | List of Threads usernames or profile URLs. Both `zuck` and `https://www.threads.com/@zuck` are accepted. |
| `maxPosts` | integer | Maximum number of threads returned per user. Use `0` to fetch everything. Default: `30`. |
| `proxyConfiguration` | object | Apify Proxy settings. Datacenter proxy works for most cases. |

### Output

Input: `zuck`, `maxPosts: 3`

Each row in the dataset is one **thread** — a list of posts (`thread_items`) chained by the same author, top-level post first.

```json
{
  "_input": "zuck",
  "_source": "S1-primary",
  "_scrapedAt": "2026-05-18T10:59:13.348602+00:00",
  "id": "3896177221392711419",
  "thread_items": [
    {
      "post": {
        "pk": "3896177221392711419",
        "id": "3896177221392711419_63055343223",
        "code": "DYSAIo_FL77",
        "taken_at": 1778680540,
        "like_count": 2198,
        "caption": {
          "text": "Today we're starting to roll out Incognito Chat with Meta AI on WhatsApp and the Meta AI app -- a completely private way to interact with AI, similar to how end-to-end encryption means no one can read your conversations, even Meta or WhatsApp..."
        },
        "user": {
          "pk": "63055343223",
          "id": "63055343223",
          "username": "zuck",
          "is_verified": true,
          "profile_pic_url": "https://instagram.fcgk12-1.fna.fbcdn.net/v/t51.82787-19/550174606_..."
        },
        "image_versions2": {
          "candidates": [
            { "width": 1920, "height": 1400, "url": "https://instagram.fcgk12-2.fna.fbcdn.net/v/t51.82787-15/671768087_..." }
          ]
        },
        "original_width": 1920,
        "original_height": 1400,
        "video_versions": null,
        "carousel_media": null,
        "carousel_media_count": null,
        "has_audio": null,
        "text_post_app_info": {
          "link_preview_attachment": null,
          "reply_to_author": null,
          "is_post_unavailable": false,
          "share_info": { "quoted_post": null, "reposted_post": null }
        }
      },
      "line_type": "none",
      "should_show_replies_cta": true,
      "reply_facepile_users": [],
      "view_replies_cta_string": "Show replies"
    },
    {
      "post": {
        "pk": "3896177217181602913",
        "id": "3896177217181602913_63055343223",
        "code": "DYSAIlEFFRh",
        "taken_at": 1778680539,
        "like_count": 570,
        "caption": {
          "text": "Incognito Chat handles all AI inference in a Trusted Execution Environment that ensures your messages are not accessible to us. The conversations on your phone also disappear when you exit the session..."
        },
        "user": {
          "pk": "63055343223",
          "username": "zuck",
          "is_verified": true
        },
        "text_post_app_info": {
          "reply_to_author": { "username": "zuck", "id": "63055343223" },
          "share_info": { "quoted_post": null, "reposted_post": null }
        }
      },
      "line_type": "none",
      "should_show_replies_cta": true
    }
    // ... 1 more follow-up post in this thread
  ]
}
```

A second thread with a link-preview attachment:

```json
{
  "_input": "zuck",
  "_source": "S1-primary",
  "_scrapedAt": "2026-05-18T10:59:13.348602+00:00",
  "id": "3886015488044874110",
  "thread_items": [
    {
      "post": {
        "pk": "3886015488044874110",
        "code": "DXt5n9UlLl-",
        "taken_at": 1777469167,
        "like_count": 1498,
        "caption": {
          "text": "As part of our philanthropic work to help cure all diseases, our team @biohub is announcing the Virtual Biology Initiative -- a new effort to build the imaging tools, molecular tools, and open data infrastructure needed to build AI models that can reason about cells."
        }
      }
    },
    {
      "post": {
        "pk": "3886015488875339430",
        "code": "DXt5n-GFJ6m",
        "taken_at": 1777469167,
        "like_count": 727,
        "caption": { "text": "This has the potential to unlock developing models that understand biology..." },
        "text_post_app_info": {
          "link_preview_attachment": {
            "display_url": "biohub.org",
            "title": "Biohub launches the Virtual Biology Initiative",
            "url": "https://l.threads.com/?u=https%3A%2F%2Fbiohub.org%2Fnews%2Fvirtual-biology-initiative",
            "image_url": "https://external.fcgk12-2.fna.fbcdn.net/emg1/v/t13/17965211273658538491?...",
            "favicon_url": "https://external.fcgk12-2.fna.fbcdn.net/emg1/v/t13/16140870347078187614?..."
          }
        }
      }
    }
  ]
}
```

#### Field reference

| Field | Type | Description |
|---|---|---|
| `_input` | string | The username or URL exactly as you supplied it. Use this to join results back to your input list. |
| `_source` | string | Internal tag for the path used to fetch the record. `S1-primary` is the fastest, richest path; `S2-fallback` indicates a fallback was used. |
| `_scrapedAt` | string | ISO-8601 UTC timestamp when the thread was scraped. |
| `id` | string | Thread ID — equal to the root post's `pk`. Use this to deduplicate across runs. |
| `thread_items` | array | One entry per post in the thread chain. `thread_items[0]` is always the root post; following entries are the author's own follow-up posts. |
| `thread_items[].post.pk` | string | Numeric post ID. |
| `thread_items[].post.id` | string | Full post identifier in the form `<post_pk>_<user_pk>`. |
| `thread_items[].post.code` | string | Short slug used in the public post URL: `https://www.threads.com/@<username>/post/<code>`. |
| `thread_items[].post.taken_at` | integer | Unix timestamp (seconds) of when the post was published. |
| `thread_items[].post.like_count` | integer | Number of likes. |
| `thread_items[].post.caption.text` | string | Full post caption / text body. `null` when the post is image-only. |
| `thread_items[].post.user` | object | Author profile snapshot (`pk`, `username`, `is_verified`, `profile_pic_url`). |
| `thread_items[].post.image_versions2.candidates` | array | All image sizes available for the post (width, height, URL). Empty when the post has no image. |
| `thread_items[].post.video_versions` | array | Video renditions when the post is a video, otherwise `null`. |
| `thread_items[].post.carousel_media` | array | Slides when the post is a multi-image carousel, otherwise `null`. |
| `thread_items[].post.carousel_media_count` | integer | Number of slides in the carousel, otherwise `null`. |
| `thread_items[].post.original_width` / `original_height` | integer | Dimensions of the primary media in pixels. |
| `thread_items[].post.has_audio` | boolean | `true` if the video has audio, `null` for non-video posts. |
| `thread_items[].post.text_post_app_info.link_preview_attachment` | object | Embedded link card with `url`, `display_url`, `title`, `image_url`, `favicon_url`. `null` when no link is attached. |
| `thread_items[].post.text_post_app_info.reply_to_author` | object | The user this post replies to. For the root post in a chain this is `null`; for follow-ups it points back to the same author. |
| `thread_items[].post.text_post_app_info.share_info.quoted_post` | object | The post being quoted, if this is a quote-thread. |
| `thread_items[].post.text_post_app_info.share_info.reposted_post` | object | The post being reposted, if this row is a repost from another user. |
| `thread_items[].post.text_post_app_info.is_post_unavailable` | boolean | `true` if the post has been removed or hidden. |
| `thread_items[].line_type` | string | Visual connector flag used by the web app (`"none"`, `"line"`). Usually safe to ignore. |
| `thread_items[].should_show_replies_cta` | boolean | `true` if the post has replies a viewer can expand. |
| `thread_items[].reply_facepile_users` | array | Up to 3 small avatars of users who replied (used for the "Replied by" stack in the UI). |

#### Error envelope

Usernames that can't be resolved or fail to fetch return a structured error instead of crashing the run:

```json
{
  "_input": "this-handle-does-not-exist-xyz",
  "_error": "user_resolve_failed",
  "_source": "S1-primary",
  "_scrapedAt": "2026-05-18T10:24:10.012345+00:00"
}
```

Possible `_error` values: `user_resolve_failed` (handle not found / private / banned), `fetch_failed` (transient network or rate-limit error — accompanied by `_errorDetail`). Filter on `_error` to triage failed rows.

### Pricing

This actor is billed per result: **$6.00 per 1,000 threads** (Tier 4). Each successful thread = 1 result. Errors are not billed.

### Other Sosmed Actors

| Platform | Actor | Best for |
|---|---|---|
| Threads | [Threads Account Replies Scraper](https://apify.com/xtracto/threads-account-replies-scraper) | Replies the user posted on other people's threads |
| Threads | [Threads Post Detail Scraper](https://apify.com/xtracto/threads-post-detail-scraper) | Full reply tree + engagement for a single thread URL |
| Instagram | [Instagram Account Posts Scraper](https://apify.com/xtracto/instagram-account-posts-scraper) | Same author's Instagram feed |
| Twitter / X | [X Account Tweets Scraper](https://apify.com/xtracto/x-account-tweets-scraper) | Tweets timeline for any handle |
| Bluesky | [Bluesky Account Posts Scraper](https://apify.com/xtracto/bluesky-account-posts-scraper) | Posts feed for any Bluesky handle |
| Mastodon | [Mastodon Account Scraper](https://apify.com/xtracto/mastodon-account-scraper) | Posts feed for any fediverse handle |

Browse the full catalog at [apify.com/xtracto](https://apify.com/xtracto).

### Notes

- **Posts only, not replies.** The output mirrors the "Threads" tab of a profile. Replies the user wrote on other people's posts are not included — use the [Threads Account Replies Scraper](https://apify.com/xtracto/threads-account-replies-scraper) for those.
- **Reposted threads are flagged.** When the user reposted someone else's thread, `text_post_app_info.share_info.reposted_post` is populated with the original post. Filter it out if you only want original content.
- **Quote-threads** are flagged via `text_post_app_info.share_info.quoted_post` and still count as the user's own posts.
- **Pagination is cursor-based** — the actor walks the feed until it hits `maxPosts` or runs out of threads. Older posts cost the same as newer ones; set `maxPosts: 0` if you want the full archive.
- **Private / banned / never-existed accounts** return `{"_error": "user_resolve_failed", "_input": "..."}` and consume no result credit.
- **Counters** (`like_count`) are eventually-consistent and may lag the live network by a few minutes.
- **The internal `user.pk`** is the most reliable identifier — usernames can change but `pk` does not.
  </content>

</invoke>

# Actor input Schema

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

List of Threads usernames or profile URLs to scrape. Both `zuck` and `https://www.threads.com/@zuck` are accepted.

## `maxPosts` (type: `integer`):

Maximum number of threads to return per user. Use 0 to fetch everything available. Default: 30.

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

Apify Proxy settings. Datacenter proxy works for most cases; switch to residential if you hit rate limits on very large jobs.

## Actor input object example

```json
{
  "usernames": [
    "zuck",
    "mosseri"
  ],
  "maxPosts": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "usernames": [
        "zuck",
        "mosseri"
    ],
    "maxPosts": 30,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/threads-account-threads-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 = {
    "usernames": [
        "zuck",
        "mosseri",
    ],
    "maxPosts": 30,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/threads-account-threads-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 '{
  "usernames": [
    "zuck",
    "mosseri"
  ],
  "maxPosts": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call xtracto/threads-account-threads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Account Threads Scraper",
        "description": "Scrape a Threads user's own posts.",
        "version": "1.0",
        "x-build-id": "RBkzd6XfjtQzG3aJD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~threads-account-threads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-threads-account-threads-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/xtracto~threads-account-threads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-threads-account-threads-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/xtracto~threads-account-threads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-threads-account-threads-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": [
                    "usernames"
                ],
                "properties": {
                    "usernames": {
                        "title": "Threads usernames or profile URLs",
                        "type": "array",
                        "description": "List of Threads usernames or profile URLs to scrape. Both `zuck` and `https://www.threads.com/@zuck` are accepted.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPosts": {
                        "title": "Max posts per user",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of threads to return per user. Use 0 to fetch everything available. Default: 30.",
                        "default": 30
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Datacenter proxy works for most cases; switch to residential if you hit rate limits on very large jobs.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
