# 🧵 Threads User Following Scraper (`scrapier/threads-user-following-scraper`) Actor

🧵Threads User Following Scraper pulls the full list of accounts a Threads user follows, including usernames, profile links, bios, verification, and counts. ⚡ Export CSV/JSON. 📊 Ideal for influencer discovery, competitor benchmarking, and social audience insights.

- **URL**: https://apify.com/scrapier/threads-user-following-scraper.md
- **Developed by:** [Scrapier](https://apify.com/scrapier) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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 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 User Following Scraper

The 🧵 Threads User Following Scraper is a focused Apify actor that extracts a Threads profile’s following list via native GraphQL — turning usernames or profile URLs into a structured table of accounts they follow. It solves the tedious and error-prone task of collecting followings by automating token extraction (app id, CSRF, user id, doc id from JS bundles) and paginated requests to Threads’ BarcelonaFriendshipsFollowingTabRefetchableQuery. Built for marketers, developers, data analysts, and researchers, this Threads user following scraper scales from quick samples to full lists with CSV/JSON exports for downstream analysis and reporting.

### What data / output can you get?

Below are real output fields the actor saves to the Apify dataset (one item per followed account). You can export to CSV or JSON from the dataset.

| Data type | Description | Example value |
| --- | --- | --- |
| source | Static marker for the record source | "threads_following" |
| id | Unique Threads/Instagram entity ID | "1234567890123456789" |
| pk | Profile key (string form of user ID) | "9876543210" |
| username | Handle of the followed account | "exampleuser" |
| full_name | Display name | "Example User" |
| profile_pic_url | Avatar URL | "https://static.cdninstagram.com/.../avatar.jpg" |
| is_verified | Verification badge flag | true |
| text_post_app_is_private | Account privacy flag for Threads | false |
| has_onboarded_to_text_post_app | Threads onboarding flag | true |
| follower_count | Follower count of the followed account | 24567 |
| following_index | 1-based index in the collected list | 1 |
| __typename | GraphQL typename | "User" |

Note: Two additional metadata fields are also included in each item:
- friendship_status (object; provided as-is from the API)
- profile_context_facepile_users (array; provided as-is from the API)

Exports: Download your results from the Apify dataset as CSV or JSON for analysis, sharing, or to import into tools like Google Sheets.

### Key features

- ⚙️ Native Threads GraphQL flow
  Uses the BarcelonaFriendshipsFollowingTabRefetchableQuery with proper tokens (app id, CSRF, user id, doc id) extracted from the profile HTML and JS bundles for robust, accurate results.

- 🌐 Smart connection escalation
  Starts direct, escalates to Apify datacenter proxy on blocks (401/403/429 or bad/empty payloads), then to residential proxy if still blocked. On residential, each GraphQL batch retries up to 3 times with a fresh proxy URL.

- 📥 Structured following list extractor
  Collects usernames, names, avatars, verification flags, follower counts, and more — ideal as a Threads following list extractor with clean, structured output.

- 📦 Bulk-ready input
  Paste a list of Threads profile URLs or plain usernames. The actor parses both formats, enabling batch runs for multi-profile workflows.

- 🎚️ Flexible limits per profile
  Control depth with maxFollowing to gather quick samples or full lists — perfect for fast iteration and scaled runs.

- 🚀 Streaming results to dataset
  Items are pushed as they’re collected, so you can monitor progress live and export anytime as CSV or JSON.

- 🧩 Developer-friendly
  Runs on the Apify platform with programmatic access via the Apify API and SDK. Ideal for building a Threads followings scraper pipeline or integrating into existing data flows.

- 🛡️ Production-minded reliability
  Async HTTP with tuned timeouts, paginated fetching, and intelligent retries help maintain stability during large or noisy runs.

### How to use 🧵 Threads User Following Scraper - step by step

1. Sign in to Apify
   Create or log in to your Apify account to run the actor in the cloud.

2. Open the actor
   Find “🧵 Threads User Following Scraper” in your dashboard or Apify Store.

3. Add input profiles
   In the urls field, paste Threads profile URLs like https://www.threads.com/@username or plain usernames (one per line or as a list).

4. Provide your session cookie
   Paste your Threads/Instagram sessionid into sessionId. Runs are tied to your logged-in session so only accounts you’re allowed to see are collected.

5. Set limits
   Adjust maxFollowing to control how many followings to collect per profile.

6. (Optional) Configure proxy
   Leave proxyConfiguration off for normal runs; enable it if you already use Apify Proxy and want extra flexibility.

7. Start the run
   Click Start. The actor extracts tokens, queries the following list via GraphQL, and streams results to the dataset. If the platform is picky, it will escalate the connection automatically.

8. Export your data
   Go to the dataset in the run’s Output tab and export as CSV or JSON. You can import the CSV into Google Sheets for quick analysis.

Pro Tip: Use the Apify API to pull the dataset into your data pipeline or CRM, or schedule runs for recurring updates.

### Use cases

| Use case name | Description |
| --- | --- |
| Influencer discovery & vetting | Map who a creator follows to understand niche focus, collab networks, and verification/follower signals. Export to CSV for fast filtering. |
| Competitor benchmarking | Compare followings of peer brands to reveal partnerships, interests, and category trends. Track over time to spot shifts. |
| Social audience insights | Analyze followings to define audience affinities and segments, informing content and partnership strategy. |
| Campaign research | Compile followings lists for potential outreach, then sort by follower_count or verification for prioritization. |
| Data enrichment for CRM | Append structured followings data to profiles in your CRM with a repeatable export/import workflow. |
| Academic & social graph research | Build datasets of who-follows-whom for network analysis, using JSON exports for reproducible studies. |
| Developer API pipeline | Orchestrate bulk collection via the Apify API and stream results into analytics or BI stacks. |

### Why choose 🧵 Threads User Following Scraper?

A precision-built Threads following list scraper that blends accuracy, scale, and resilience for production workflows.

- 🎯 Accurate, token-aware extraction
  Pulls app id, CSRF, user id, and doc id from live HTML/JS bundles for reliable GraphQL requests.

- 🔄 Robust anti-block strategy
  Direct → datacenter → residential proxy escalation with retries helps maintain continuity under rate limits or transient blocks.

- 📊 Structured, analysis-ready fields
  Captures usernames, names, avatars, follower counts, and verification flags for immediate segmentation.

- 🧪 Built for batch workflows
  Paste many usernames or profile URLs and cap depth per profile with maxFollowing.

- 🧑‍💻 Developer access
  Retrieve results programmatically from the Apify dataset API to power automations and data products.

- 🛡️ Stable alternative to extensions
  Avoid brittle browser extensions and manual copy-paste with a cloud-native, scriptable actor.

- 💾 Flexible exports
  Export CSV/JSON from the dataset for BI tools, spreadsheets, and pipelines.

### Is it legal / ethical to use 🧵 Threads User Following Scraper?

Yes—when used responsibly. This actor relies on your own session and collects data you’re permitted to access, in line with platform terms and applicable laws.

Guidelines:
- Only collect data you’re authorized to view with your account.
- Comply with Meta/Threads terms of service and local data regulations (e.g., GDPR, CCPA).
- Handle your session cookie securely; do not share it publicly.
- Use the data responsibly for research, analysis, and insights, not for abuse.

You are responsible for ensuring your use case complies with Threads policies and your local regulations.

### Input parameters & output format

Example JSON input
```json
{
  "urls": [
    "zuck",
    "https://www.threads.com/@exampleuser"
  ],
  "sessionId": "YOUR_SESSIONID_COOKIE_VALUE",
  "maxFollowing": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Parameter reference

- urls (array)
  - Description: Paste Threads profile links or usernames — one per line or add many at once. Examples: https://www.threads.com/@username or simply username. Bulk-friendly for big lists!
  - Required: Yes
  - Default: —
- sessionId (string)
  - Description: Paste your sessionid from the browser where you’re logged into Threads/Instagram. This keeps the run tied to your account — it isn’t stored or shared beyond this run. Don’t share this value publicly.
  - Required: Yes
  - Default: ""
- maxFollowing (integer)
  - Description: Cap how many following rows to collect per profile — great for quick samples or full lists. Lower = faster & lighter; higher = more complete picture.
  - Required: No
  - Default: 50 (min 1, max 10000)
- proxyConfiguration (object)
  - Description: Totally optional. Leave off for a normal run from Apify’s cloud. Turn on if you already use Apify Proxy and want extra flexibility — helpful when routes get noisy.
  - Required: No
  - Default: { "useApifyProxy": false }

Example JSON output

```json
[
  {
    "source": "threads_following",
    "id": "1234567890123456789",
    "pk": "9876543210",
    "username": "exampleuser",
    "full_name": "Example User",
    "profile_pic_url": "https://static.cdninstagram.com/images/avatars/example.jpg",
    "is_verified": true,
    "text_post_app_is_private": false,
    "has_onboarded_to_text_post_app": true,
    "follower_count": 24567,
    "following_index": 1,
    "friendship_status": null,
    "profile_context_facepile_users": [],
    "__typename": "User"
  },
  {
    "source": "threads_following",
    "id": "223344556677889900",
    "pk": "1122334455",
    "username": "anotheruser",
    "full_name": "Another User",
    "profile_pic_url": "https://static.cdninstagram.com/images/avatars/another.jpg",
    "is_verified": false,
    "text_post_app_is_private": false,
    "has_onboarded_to_text_post_app": true,
    "follower_count": 708,
    "following_index": 2,
    "friendship_status": null,
    "profile_context_facepile_users": [],
    "__typename": "User"
  }
]
```

Notes:

- friendship\_status and profile\_context\_facepile\_users are passed through as provided by the API and may vary by profile.
- Export your dataset as CSV or JSON directly from the run’s Output tab.

### FAQ

#### Do I need to log in or provide cookies?

✅ Yes. You must provide your sessionId (the sessionid cookie from a logged-in Threads/Instagram browser session). The actor ties the run to your account and only collects followings you’re allowed to see.

#### Does this scrape followers or following?

👣 It scrapes who a user follows (their following list). If you’re searching for a Threads followers scraper or a Threads followers scraper API, note this tool focuses on followings.

#### Can I enter usernames or profile URLs?

✅ Both. You can paste https://www.threads.com/@username links or just the bare username. The actor parses either format automatically.

#### How many results can I collect per profile?

📈 Controlled by maxFollowing. Set any value between 1 and 10,000 per profile. Results stream to the dataset as they’re collected.

#### How does it handle blocks or rate limits?

🛡️ The actor starts without a proxy, escalates to Apify datacenter proxy on blocks (401/403/429, empty/challenge HTML, or bad GraphQL), and then to residential proxy if needed. On residential, each GraphQL batch retries up to 3 times with a fresh proxy URL.

#### What fields are included in the output?

📊 Each item includes source, id, pk, username, full\_name, profile\_pic\_url, is\_verified, text\_post\_app\_is\_private, has\_onboarded\_to\_text\_post\_app, follower\_count, following\_index, friendship\_status, profile\_context\_facepile\_users, and \_\_typename.

#### Can I export to CSV or Google Sheets?

✅ Yes. Export the dataset as CSV or JSON. You can import the CSV into Google Sheets for quick sharing and filtering.

#### Is there an API to access the results?

💻 Yes. As with all Apify actors, you can retrieve the run’s dataset via the Apify API to integrate this Threads following list scraper into your pipelines.

#### Does it support bulk scraping?

🚀 Yes. Add multiple usernames or profile URLs in the urls field to run in batch. The tool is designed for bulk-friendly workflows.

#### Any tips for better accuracy?

🔧 Use a valid, fresh sessionId from a browser currently logged into Threads/Instagram, start with smaller maxFollowing for testing, and enable proxyConfiguration if you encounter repeated blocks.

### Closing CTA / Final thoughts

The 🧵 Threads User Following Scraper is built to turn Threads profiles into clean, structured following lists at scale. With native GraphQL extraction, smart connection handling, and CSV/JSON exports, it’s ideal for marketers, developers, data analysts, and researchers who need reliable followings data fast. Use it in batches, export to spreadsheets, or fetch via the Apify API to power automated workflows. Start extracting smarter social insights today.

# Actor input Schema

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

📋 Paste Threads profile links or usernames — one per line or add many at once. ✨ Examples: `https://www.threads.com/@username` or simply `username`. 🚀 Bulk-friendly for big lists!

## `sessionId` (type: `string`):

🍪 Paste your **sessionid** from the browser where you’re logged into Threads/Instagram. 🔒 This keeps the run tied to *your* account — we don’t store or share it beyond this run. ⚠️ Don’t share this value publicly.

## `maxFollowing` (type: `integer`):

🎚️ Cap how many following rows to collect **per profile** — great for quick samples or full lists. 📉 Lower = faster & lighter; 📊 higher = more complete picture.

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

🛡️ **Totally optional.** Leave off for a normal run from Apify’s cloud. ✨ Turn on if you already use Apify Proxy and want extra flexibility — helpful when routes get noisy. 🏠 Defaults to a simple setup; you can tune groups in the proxy picker if you use it.

## Actor input object example

```json
{
  "urls": [
    "zuck"
  ],
  "sessionId": "",
  "maxFollowing": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "urls": [
        "zuck"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapier/threads-user-following-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 = {
    "urls": ["zuck"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapier/threads-user-following-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 '{
  "urls": [
    "zuck"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapier/threads-user-following-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🧵 Threads User Following Scraper",
        "description": "🧵Threads User Following Scraper pulls the full list of accounts a Threads user follows, including usernames, profile links, bios, verification, and counts. ⚡ Export CSV/JSON. 📊 Ideal for influencer discovery, competitor benchmarking, and social audience insights.",
        "version": "0.1",
        "x-build-id": "I3Ho77xmhgkg3q9P8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapier~threads-user-following-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapier-threads-user-following-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/scrapier~threads-user-following-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapier-threads-user-following-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/scrapier~threads-user-following-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapier-threads-user-following-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": [
                    "urls",
                    "sessionId"
                ],
                "properties": {
                    "urls": {
                        "title": "🔗 Profiles to look up",
                        "type": "array",
                        "description": "📋 Paste Threads profile links or usernames — one per line or add many at once. ✨ Examples: `https://www.threads.com/@username` or simply `username`. 🚀 Bulk-friendly for big lists!",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sessionId": {
                        "title": "🔑 Your session cookie",
                        "type": "string",
                        "description": "🍪 Paste your **sessionid** from the browser where you’re logged into Threads/Instagram. 🔒 This keeps the run tied to *your* account — we don’t store or share it beyond this run. ⚠️ Don’t share this value publicly.",
                        "default": ""
                    },
                    "maxFollowing": {
                        "title": "📈 How many people max?",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "🎚️ Cap how many following rows to collect **per profile** — great for quick samples or full lists. 📉 Lower = faster & lighter; 📊 higher = more complete picture.",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Optional connection boost",
                        "type": "object",
                        "description": "🛡️ **Totally optional.** Leave off for a normal run from Apify’s cloud. ✨ Turn on if you already use Apify Proxy and want extra flexibility — helpful when routes get noisy. 🏠 Defaults to a simple setup; you can tune groups in the proxy picker if you use it."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
