# Threads Scraper — Posts, Profiles, Hashtag & Keyword Search (`claude_code_reviewer/threads-scraper`) Actor

Five Threads scraping modes in one actor: user profiles, hashtag topics, keyword search, single posts with replies, and custom feeds. Bulk-paste up to 100 usernames or keywords, relative-date filters, engagement metrics, ISO timestamps. No login. $0.005/result.

- **URL**: https://apify.com/claude\_code\_reviewer/threads-scraper.md
- **Developed by:** [Reggie](https://apify.com/claude_code_reviewer) (community)
- **Categories:** Social media, News, Automation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$5.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.

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: The All-in-One Data Engine for Meta Threads

Unlock deep market insights with a unified scraper. No login, no tokens, and no official API restrictions.

---

### 🔥 Why This Scraper?

- Zero Authentication: Skip the OAuth setup and Facebook Developer accounts. No login or API tokens required.
- Unified Actor: 5 modes in one codebase. Simplify your tech stack and reduce integration maintenance.
- Massive Scalability: Bulk-paste up to 100 usernames or keywords. Perfect for tracking large KOL lists.
- Workflow-Ready: Built-in support for relative dates (e.g., "7 days") makes it easy to schedule recurring runs in n8n, Zapier, or Make.
- Clean, Merged Data: Multi-segment thread posts are automatically stitched into a single record (threadParts[]) for better readability.
- Cost-Efficient: Flat $0.005 per result with no start fees and smart auto-stop to prevent wasted credits.

---

### What this scraper extracts

For every post:

- `postId`, `postUrl`, `content`, `publishedAt`, `publishedAtISO`
- `mediaType` (`text` / `photo` / `video` / `carousel`) and `mediaUrls[]`
- Engagement: `likeCount`, `replyCount`, `repostCount`, `shareCount`, `viewCount`, `quoteCount`
- `sourceType` (which mode produced it) and `sourceQuery` (the exact username / keyword / URL)
- `scrapedAt` timestamp
- `threadParts[]` — multi-segment thread posts are merged automatically, each segment preserved

For the author:

- `author` handle

For replies (only in `post` mode):

- `replies[]` — up to 20 top replies with `author`, `content`, `publishedAt`, `likeCount`

Dataset field keys are English across every locale — downstream tooling stays portable.

---

### Five modes, one actor

| Mode | What it does | Input field |
|------|--------------|-------------|
| 👤 **User** | Scrape all posts from a user's profile | `usernames[]` |
| 🏷️ **Hashtag** | Scrape a hashtag / topic page | `keywords[]` |
| 🔎 **Search** | Keyword search with Top / Recent sort | `keywords[]` + `searchSort` |
| 💬 **Post** | Single post with up to 20 top replies | `postUrls[]` |
| 📰 **Feed** | Any Threads custom feed URL | `feedUrls[]` |

Pick one mode per run from the **Mode** dropdown. Competing scrapers split these into 4–5 separate actors — this one keeps them in a single codebase so your integration stays simple.

---

### Inputs

| Field | Type | Required | Default | Description |
|-------|------|:--------:|:-------:|-------------|
| `mode` | enum | recommended | `user` | One of `user`, `hashtag`, `search`, `post`, `feed`. If omitted, auto-detected from whichever field you fill. |
| `usernames` | string[] | for `user` mode | — | Plain usernames, no `@`, no URL. Batch up to **100**. |
| `bulkUsernames` | string | optional | — | Textarea — paste one username per line (copy a spreadsheet column straight in). Merged into `usernames`. |
| `keywords` | string[] | for `hashtag` / `search` | — | Keywords or hashtags (leading `#` optional). Batch up to **100**. |
| `bulkKeywords` | string | optional | — | Textarea paste for keywords. Merged into `keywords`. |
| `postUrls` | string[] | for `post` mode | — | Full Threads post URLs — replies are scraped automatically. |
| `feedUrls` | string[] | for `feed` mode | — | Threads custom feed URLs. |
| `searchSort` | enum | optional | `top` | `top` or `recent`. Only applies to `search` mode. |
| `dateFrom` | string | optional | — | `YYYY-MM-DD` **or** relative: `7 days`, `1 month`, `2 weeks`, `1 year`. |
| `dateTo` | string | optional | — | Same format as `dateFrom`. |
| `maxPosts` | integer | optional | `50` | Max posts per source, 1–500. Scrolling is auto-managed — no knob to tune. |

---

### Usage examples

**👤 Scrape three user profiles**

```json
{
  "mode": "user",
  "usernames": ["zuck", "mosseri", "finkd"],
  "maxPosts": 50
}
````

**🏷️ Scrape a hashtag across the last month**

```json
{
  "mode": "hashtag",
  "keywords": ["#AINews"],
  "dateFrom": "1 month",
  "maxPosts": 200
}
```

**🔎 Keyword search, most recent posts from the last 7 days**

```json
{
  "mode": "search",
  "keywords": ["LLM agents", "vibe coding"],
  "searchSort": "recent",
  "dateFrom": "7 days",
  "maxPosts": 100
}
```

**💬 Single post + top replies**

```json
{
  "mode": "post",
  "postUrls": ["https://www.threads.com/@zuck/post/ABC123"]
}
```

**📋 Bulk paste — 80 KOL accounts from a spreadsheet**

Copy a column straight from Google Sheets / Excel and paste into `bulkUsernames` — no clicking "Add" 80 times.

**Console form format: one username per line, press Enter between each — no quotes, no commas.** Like this:

```
zuck
mosseri
finkd
threadsapp
taylornikolai
```

If you're calling the API instead of using the Console, `bulkUsernames` is a single string with `\n` as the line separator:

```json
{
  "mode": "user",
  "bulkUsernames": "zuck\nmosseri\nfinkd\nthreadsapp\ntaylornikolai",
  "maxPosts": 20
}
```

***

### Notes and caveats

- **`maxPosts` is a ceiling, not a guarantee.** Inactive profiles or niche hashtags may return fewer posts. The scraper stops early after 5 consecutive stale scrolls instead of burning time.
- **Relative dates are evaluated at run time.** `"7 days"` today and tomorrow produce different absolute dates — useful for scheduled runs that always fetch "the past week".
- **Engagement counts can be approximations.** Threads abbreviates large numbers (e.g. `12.5K`) — the actor normalizes these to integers, so `12500` is the converted value, not an exact count.
- **Replies are only scraped in `post` mode**, limited to the first ~20 top-level replies per post.
- **No login = public data only.** Private accounts and follower-only content are not accessible.
- **Thread chains are merged automatically.** Multi-segment posts (`1/`, `2/`, `3/`) are combined into a single record via `threadParts[]` instead of being stored as separate rows.

***

### FAQ

**Q: How do I pass usernames? With `@` or without, full URL or plain?**
Plain is canonical: `zuck`, not `@zuck` or `https://www.threads.com/@zuck`. Leading `@` is stripped automatically, and the legacy `profileUrls` field from v0.3 is auto-migrated — existing API integrations won't break.

**Q: I got a partial result — fewer posts than `maxPosts`. Why?**
Either the profile genuinely has fewer posts, the hashtag is niche, or Threads' feed stopped yielding new items after repeated scrolls. Check `totalItems` in the run log — that's the true count.

**Q: Some fields are `null` or `0`. Bug?**
Threads lazily renders engagement counts. View counts in particular only appear on accounts with sufficient public reach; quote counts depend on post type. Missing fields are data gaps in Threads itself, not silent failures on the actor's side.

**Q: Does `dateFrom` / `dateTo` apply to `user` and `post` modes?**
Date filtering runs on every mode, but it only matters for `search`, `hashtag`, `user`, and `feed` — `post` mode scrapes specific known URLs regardless of date. Relative expressions like `"1 month"` are resolved to absolute `YYYY-MM-DD` before filtering.

**Q: What output formats are supported?**
JSON, CSV, Excel, XML, HTML table — standard Apify dataset exports. Available via the Apify Console, the dataset API, or the Apify client libraries (Python, JavaScript). Also integrates with Zapier, Make, n8n, and Google Sheets.

***

### Alternative: the official Threads API

Meta publishes an [official Threads API](https://developers.facebook.com/docs/threads), but it has hard constraints for public-data use cases:

- Only reads data from accounts you own or that have granted access — no competitor monitoring, no trend research, no hashtag scraping
- Requires OAuth setup, app review for publishing tools, and a Facebook Developer account
- Rate limits and endpoint coverage are narrower than what's visible to a logged-out browser

For market research, social listening, trend analysis, and competitive intelligence on public Threads data, this actor is a simpler path. For posting, managing your own account, or building automation on authorized accounts, use Meta's official API.

***

### Disclaimer

This scraper only collects publicly visible Threads data. It does not access private accounts, bypass authentication, or extract personal information beyond what a logged-out visitor can see. Users are responsible for ensuring their use case complies with applicable law (GDPR, CCPA, local data protection regulations) and Meta's Terms of Service. Use the tool for legitimate research, monitoring, and analytics — not for spam, harassment, or unauthorized data resale.

***

*Threads scraper · Meta Threads API alternative · Threads posts · Threads hashtag scraper · Threads keyword search · Threads user profile scraper · Threads replies · Threads custom feed · social listening · brand monitoring · competitive intelligence · KOL tracking · influencer analytics · marketing data*

# Actor input Schema

## `mode` (type: `string`):

What do you want to scrape? Pick a mode and fill in the matching section below.

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

Plain Threads usernames (no @, no URL). Example: zuck, mosseri. Used when Mode = User.

## `bulkUsernames` (type: `string`):

**One username per line**, press Enter between each. **No quotes, no commas.** Example:

```
zuck
mosseri
finkd
```

You can copy a column straight from Google Sheets or Excel. Merged into the Usernames list at runtime.

## `keywords` (type: `array`):

Keywords for Search mode, or hashtags for Hashtag mode (leading # optional). Example: AI news, #寵物友善.

## `bulkKeywords` (type: `string`):

**One keyword or hashtag per line**, press Enter between each. **No quotes, no commas.** Example:

```
LLM agents
vibe coding
#AI
```

Merged into the Keywords list at runtime.

## `searchSort` (type: `string`):

Sort order for keyword search results. Only applies to Mode = Search.

## `dateFrom` (type: `string`):

Earliest post date. Accepts YYYY-MM-DD or a relative expression like "7 days", "1 month".

## `dateTo` (type: `string`):

Latest post date. Accepts YYYY-MM-DD or a relative expression.

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

Full Threads post URLs. Used when Mode = Post. Example: https://www.threads.com/@user/post/ABC123.

## `feedUrls` (type: `array`):

Threads custom feed URLs. Used when Mode = Feed. Example: https://www.threads.com/custom\_feed/18113589370710265.

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

Maximum posts to scrape per source. Higher = more billable results ($0.005 each). Scrolling is auto-managed.

## Actor input object example

```json
{
  "mode": "user",
  "usernames": [
    "zuck"
  ],
  "searchSort": "top",
  "maxPosts": 50
}
```

# Actor output Schema

## `dataset` (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 = {
    "mode": "user",
    "usernames": [
        "zuck"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("claude_code_reviewer/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 = {
    "mode": "user",
    "usernames": ["zuck"],
}

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

```

## MCP server setup

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

```

## OpenAPI specification

````json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Scraper — Posts, Profiles, Hashtag & Keyword Search",
        "description": "Five Threads scraping modes in one actor: user profiles, hashtag topics, keyword search, single posts with replies, and custom feeds. Bulk-paste up to 100 usernames or keywords, relative-date filters, engagement metrics, ISO timestamps. No login. $0.005/result.",
        "version": "1.0",
        "x-build-id": "MKcDfIqhaD6k9oxOf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/claude_code_reviewer~threads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-claude_code_reviewer-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/claude_code_reviewer~threads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-claude_code_reviewer-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/claude_code_reviewer~threads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-claude_code_reviewer-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",
                "properties": {
                    "mode": {
                        "title": "🎯 Mode",
                        "enum": [
                            "user",
                            "hashtag",
                            "search",
                            "post",
                            "feed"
                        ],
                        "type": "string",
                        "description": "What do you want to scrape? Pick a mode and fill in the matching section below.",
                        "default": "user"
                    },
                    "usernames": {
                        "title": "👤 Usernames",
                        "maxItems": 100,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Plain Threads usernames (no @, no URL). Example: zuck, mosseri. Used when Mode = User.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "bulkUsernames": {
                        "title": "📋 Bulk Usernames (paste)",
                        "type": "string",
                        "description": "**One username per line**, press Enter between each. **No quotes, no commas.** Example:\n\n```\nzuck\nmosseri\nfinkd\n```\n\nYou can copy a column straight from Google Sheets or Excel. Merged into the Usernames list at runtime."
                    },
                    "keywords": {
                        "title": "🏷️ Keywords / Tags",
                        "maxItems": 100,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keywords for Search mode, or hashtags for Hashtag mode (leading # optional). Example: AI news, #寵物友善.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "bulkKeywords": {
                        "title": "📋 Bulk Keywords (paste)",
                        "type": "string",
                        "description": "**One keyword or hashtag per line**, press Enter between each. **No quotes, no commas.** Example:\n\n```\nLLM agents\nvibe coding\n#AI\n```\n\nMerged into the Keywords list at runtime."
                    },
                    "searchSort": {
                        "title": "🔀 Search Sort",
                        "enum": [
                            "top",
                            "recent"
                        ],
                        "type": "string",
                        "description": "Sort order for keyword search results. Only applies to Mode = Search.",
                        "default": "top"
                    },
                    "dateFrom": {
                        "title": "📅 Date From",
                        "type": "string",
                        "description": "Earliest post date. Accepts YYYY-MM-DD or a relative expression like \"7 days\", \"1 month\"."
                    },
                    "dateTo": {
                        "title": "📅 Date To",
                        "type": "string",
                        "description": "Latest post date. Accepts YYYY-MM-DD or a relative expression."
                    },
                    "postUrls": {
                        "title": "💬 Post URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Full Threads post URLs. Used when Mode = Post. Example: https://www.threads.com/@user/post/ABC123.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "feedUrls": {
                        "title": "📰 Feed URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Threads custom feed URLs. Used when Mode = Feed. Example: https://www.threads.com/custom_feed/18113589370710265.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPosts": {
                        "title": "📊 Max Posts",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum posts to scrape per source. Higher = more billable results ($0.005 each). Scrolling is auto-managed.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
````
