# Threads Related Posts Scraper (`automation-lab/threads-related-posts-scraper`) Actor

🧵 Map the Related threads recommendations below public Threads posts. Export source-to-related edges, authors, text, links, domains, timestamps, and engagement.

- **URL**: https://apify.com/automation-lab/threads-related-posts-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Threads Related Posts Scraper

Turn the **Related threads** section below public Threads posts into a structured recommendation graph.

Provide one or more public post URLs and receive the related post URL, author, timestamp, text, outbound link, visible engagement, and the exact source→related edge.

No Threads login is required for publicly visible recommendations.

### What does Threads Related Posts Scraper do?

Threads Related Posts Scraper opens public post pages and waits for the separately labeled **Related threads** section.

It extracts only those recommendation cards.

It does not mix ordinary replies, profile posts, or search results into the dataset.

Each row preserves the source post that caused the recommendation to appear.

That provenance makes changes measurable across scheduled runs.

### Why scrape Related threads recommendations?

A recommendation is different from a keyword match.

It shows which conversations Threads places next to a specific source post for an anonymous session.

Use the data to:

- map adjacent conversations;
- discover creators and publishers;
- monitor recommendation changes;
- audit outbound domains;
- seed content research;
- build bounded recommendation graphs.

### Who is it for?

#### Social-listening teams

Track conversations that Threads recommends beside important posts.

#### Creator and influencer researchers

Discover accounts appearing in recommendation cards without manually browsing every seed.

#### Recommendation-system auditors

Store directed edges and compare snapshots over time.

#### Content discovery pipelines

Feed related post text, authors, and domains into tagging, enrichment, or review workflows.

#### Publishers and brand analysts

See which articles and domains surface near a public conversation.

### What data can you extract?

| Field | Description |
|---|---|
| `sourcePostUrl` | Public post where the recommendation appeared |
| `relatedPostUrl` | Resolved recommended Threads post URL |
| `edgeKey` | Deterministic source→related edge |
| `sourceDepth` | Depth of the source in a recursive crawl |
| `authorUsername` | Related post author username |
| `authorProfileUrl` | Public Threads profile URL |
| `publishedAt` | Machine-readable rendered timestamp when available |
| `relativeTime` | Visible time such as `4h` |
| `text` | Related post text or snippet |
| `outboundUrl` | Decoded external link when present |
| `outboundDomain` | External hostname for grouping |
| `likeCount` | Visible likes when rendered |
| `replyCount` | Visible replies when rendered |
| `repostCount` | Visible reposts when rendered |
| `scrapedAt` | UTC extraction timestamp |

Engagement values are nullable because Threads may hide an individual count.

### How to scrape Related threads posts

1. Open a public Threads post in your browser.
2. Copy its `/@username/post/code` URL.
3. Add one or more URLs to **Public Threads post URLs**.
4. Keep **Recommendation depth** at `0` for a direct snapshot.
5. Choose a global result limit.
6. Start the Actor.
7. Export the dataset as JSON, CSV, Excel, or another Apify format.

### Input

```json
{
  "startUrls": [
    { "url": "https://www.threads.com/@zuck/post/CuP48CiS5sx" }
  ],
  "maxItems": 10,
  "maxDepth": 0
}
````

#### `startUrls`

Required list of public Threads post URLs.

Legacy `threads.net` links are normalized to `threads.com`.

Profile, search, tag, and non-Threads URLs are outside this Actor's scope.

#### `maxItems`

Global maximum number of recommendation-edge rows.

The default is 25 and the maximum is 1,000.

The limit applies across every seed and recursion level.

#### `maxDepth`

Use `0` for recommendations directly below supplied seeds.

Use `1` to also visit related posts and extract their recommendations.

Use `2` only for a broader, still-bounded graph.

#### `proxyConfiguration`

Optional Apify Proxy or custom proxy settings.

Try a proxy when Threads repeatedly returns a transient error shell from your run location.

### Output example

```json
{
  "sourcePostUrl": "https://www.threads.com/@zuck/post/CuP48CiS5sx",
  "relatedPostUrl": "https://www.threads.com/@thisisanfield/post/DbGlnp4mjdC",
  "edgeKey": "https://www.threads.com/@zuck/post/CuP48CiS5sx->https://www.threads.com/@thisisanfield/post/DbGlnp4mjdC",
  "sourceDepth": 0,
  "authorUsername": "thisisanfield",
  "authorProfileUrl": "https://www.threads.com/@thisisanfield",
  "publishedAt": "2026-07-22T17:00:00.000Z",
  "relativeTime": "12h",
  "text": "NEW: Andoni Iraola is right to sound the alarm over Liverpool’s squad depth",
  "outboundUrl": "https://lfc.thisisanfield.com/example",
  "outboundDomain": "lfc.thisisanfield.com",
  "likeCount": null,
  "replyCount": null,
  "repostCount": null,
  "scrapedAt": "2026-07-23T05:00:00.000Z"
}
```

Values change because recommendations and engagement are live.

### Direct snapshots versus recursive maps

A depth-0 run answers: “What does Threads recommend beside these seeds now?”

A depth-1 run answers: “What appears beside the seeds and beside their first-hop recommendations?”

The Actor deduplicates queued related URLs.

It also deduplicates identical directed edges.

`maxItems` remains the hard global stop.

### Scheduling a recommendation monitor

Create an Apify schedule with stable seed URLs.

Send each run to a named dataset or downstream integration.

Compare `edgeKey` values between snapshots.

New edges indicate newly observed recommendations.

Missing edges can indicate recommendations that no longer rendered for that session.

Do not assume a single anonymous session represents every user or geography.

### How much does it cost to extract Related threads posts?

This Actor uses pay-per-event pricing.

A run has a small `$0.005` start charge plus a tiered charge for each saved related-post row.

The BRONZE price is `$0.0030846` per related post.

Higher Apify plans receive lower per-record tier prices, down to `$0.00086368` per related post on DIAMOND.

Only typed recommendation records saved to the dataset trigger the item event.

Failed pages and skipped invalid URLs do not create item charges.

### Tips for reliable runs

- Start with one known public post.
- Keep depth at `0` until the seed is verified.
- Use modest result limits for scheduled monitoring.
- Enable Apify Proxy if direct sessions repeatedly show a transient error.
- Avoid private, deleted, age-restricted, or login-only posts.
- Expect recommendations to vary across time and sessions.

### Integrations

#### Google Sheets

Send each recommendation snapshot to a sheet for editorial review.

#### Slack or email alerts

Trigger an alert when a new `edgeKey` appears for a monitored source.

#### Webhooks

Deliver the completed dataset to your data pipeline after every scheduled run.

#### Make and Zapier

Route related authors or outbound domains into no-code enrichment workflows.

#### AI analysis

Summarize themes, classify domains, or cluster related post text after extraction.

### JavaScript API example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/threads-related-posts-scraper').call({
  startUrls: [{ url: 'https://www.threads.com/@zuck/post/CuP48CiS5sx' }],
  maxItems: 10,
  maxDepth: 0,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Python API example

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/threads-related-posts-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.threads.com/@zuck/post/CuP48CiS5sx'}],
    'maxItems': 10,
    'maxDepth': 0,
})

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

### cURL API example

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~threads-related-posts-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [{"url":"https://www.threads.com/@zuck/post/CuP48CiS5sx"}],
    "maxItems": 10,
    "maxDepth": 0
  }'
```

### Use with Apify MCP

Connect AI tools through `https://mcp.apify.com?tools=automation-lab/threads-related-posts-scraper`.

#### Claude Code

```bash
claude mcp add --transport http apify \
  "https://mcp.apify.com?tools=automation-lab/threads-related-posts-scraper"
```

#### Claude Desktop

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=automation-lab/threads-related-posts-scraper"
    }
  }
}
```

#### Cursor

Add the same HTTP MCP URL in **Cursor Settings → Tools & MCP → Add custom MCP**.

#### VS Code

Add the HTTP MCP server URL through the MCP configuration used by your VS Code AI extension.

Example prompts:

- “Map the recommendations below these three Threads posts.”
- “Return authors and external domains from this Related threads section.”
- “Build a one-hop recommendation graph with at most 50 edges.”

### Data quality and deduplication

The Actor canonicalizes public post URLs.

A row is uniquely identified by its source and related URL.

The same related post may correctly appear more than once when different sources recommend it.

That is not a duplicate: it represents distinct directed edges.

Visible counts are parsed only when the rendered card exposes an accessible metric.

### Limitations

Threads is a dynamic Meta surface and markup can change.

The Related threads section may not render for every public post.

Recommendations may vary by session, time, geography, or experiments.

This Actor does not log in and cannot access private content.

It does not claim exhaustive or personalized recommendation coverage.

Browser retries are bounded so a transient target does not create an endless run.

### Is it legal to scrape public Threads recommendations?

This Actor extracts information shown on public pages without authentication.

You are responsible for your use case, source terms, and applicable privacy, copyright, and data-protection law.

Collect only what you need.

Avoid using results for harassment, discrimination, or invasive profiling.

Consult qualified counsel for regulated or high-risk uses.

### Troubleshooting

#### The run says no Related threads section was rendered

Try another public post and confirm that the section is visible in an anonymous browser.

Recommendations can be absent or session-dependent.

Enable Apify Proxy if the log shows repeated transient Threads error pages.

#### Some engagement counts are null

Threads does not expose every count on every card.

Null means the metric was not reliably visible, not zero.

#### My URL was skipped

Use the full public `/@username/post/code` URL.

Profile, search, and redirect-only URLs are intentionally rejected.

#### Recursive runs stop early

`maxItems` is a global cap.

Increase it carefully or lower `maxDepth` to prioritize direct edges.

### Related Threads scrapers

- [Threads Scraper](https://apify.com/automation-lab/threads-scraper) for profiles, posts, and search.
- [Threads Replies Scraper](https://apify.com/automation-lab/threads-replies-scraper) for comments and reply relationships.
- [Threads Followers Scraper](https://apify.com/automation-lab/threads-followers-scraper) for follower-focused workflows where public access permits.

Choose this Actor when the **recommendation edge** itself is the product.

### FAQ

#### Does it require a Threads or Instagram account?

No. Version 1 targets recommendations rendered on anonymous public post pages.

#### Does it scrape replies?

No. Replies are excluded from this Actor's product boundary.

#### Can I process several seeds?

Yes. Add several URLs and set one global `maxItems` limit.

#### What does depth 0 mean?

Only recommendations directly below your supplied seeds are extracted.

#### Why can results change between runs?

Threads controls the live recommendation surface and may personalize or experiment with it.

#### Can I export CSV or Excel?

Yes. Use the standard Apify dataset export controls or API formats.

#### Are external redirect URLs decoded?

Yes. When Threads uses `l.threads.com`, the Actor returns the decoded destination and hostname.

### Start mapping Related threads

Paste a public Threads post URL, keep depth at `0`, and start with ten records.

Review the source→related edges, then schedule the input or expand to one-hop discovery when the seed produces useful recommendations.

# Actor input Schema

## `startUrls` (type: `array`):

One or more public https://www.threads.com/@username/post/code URLs to use as recommendation seeds.

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

Maximum source-to-related recommendation records saved across all seeds and recursion levels.

## `maxDepth` (type: `integer`):

0 extracts only seed recommendations; 1 or 2 also visits discovered related posts. Recursion is deduplicated and bounded by maxItems.

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

Optional Apify Proxy settings. Enable a proxy if Threads returns transient error pages from your run location.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.threads.com/@zuck/post/CuP48CiS5sx"
    }
  ],
  "maxItems": 10,
  "maxDepth": 0
}
```

# Actor output Schema

## `overview` (type: `string`):

Open the default dataset view containing source URLs, related post URLs, authors, text, links, visible engagement, depth, and timestamps.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.threads.com/@zuck/post/CuP48CiS5sx"
        }
    ],
    "maxItems": 10,
    "maxDepth": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/threads-related-posts-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 = {
    "startUrls": [{ "url": "https://www.threads.com/@zuck/post/CuP48CiS5sx" }],
    "maxItems": 10,
    "maxDepth": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/threads-related-posts-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 '{
  "startUrls": [
    {
      "url": "https://www.threads.com/@zuck/post/CuP48CiS5sx"
    }
  ],
  "maxItems": 10,
  "maxDepth": 0
}' |
apify call automation-lab/threads-related-posts-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Related Posts Scraper",
        "description": "🧵 Map the Related threads recommendations below public Threads posts. Export source-to-related edges, authors, text, links, domains, timestamps, and engagement.",
        "version": "0.1",
        "x-build-id": "OJE23YclhskTaOdaL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~threads-related-posts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-threads-related-posts-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/automation-lab~threads-related-posts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-threads-related-posts-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/automation-lab~threads-related-posts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-threads-related-posts-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🧵 Public Threads post URLs",
                        "type": "array",
                        "description": "One or more public https://www.threads.com/@username/post/code URLs to use as recommendation seeds.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum related posts",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum source-to-related recommendation records saved across all seeds and recursion levels.",
                        "default": 25
                    },
                    "maxDepth": {
                        "title": "Recommendation depth",
                        "minimum": 0,
                        "maximum": 2,
                        "type": "integer",
                        "description": "0 extracts only seed recommendations; 1 or 2 also visits discovered related posts. Recursion is deduplicated and bounded by maxItems.",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify Proxy settings. Enable a proxy if Threads returns transient error pages from your run location."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
