# Threads Brand Monitor (`digitalnomadph/threads-brand-monitor`) Actor

Monitor Threads for brand mentions, competitor posts, keyword activity, and alerts with scheduled Apify runs.

- **URL**: https://apify.com/digitalnomadph/threads-brand-monitor.md
- **Developed by:** [DigitalNomadPH](https://apify.com/digitalnomadph) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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 Brand Monitor

Track brand mentions, competitor posts, and keyword activity on Threads from scheduled Apify runs — without needing a Threads account or API access.

---

### What does Threads Brand Monitor do?

Threads Brand Monitor fetches recent posts from Threads handles and keyword searches, normalises them into structured records, and emits per-group summaries and alerts. You configure one or more **watchlists** — each watchlist is a named group of handles and/or keywords — and the actor produces:

- **Post records** for every matched Threads post
- **Profile records** with follower counts, bios, and verification status for each monitored handle
- **Summary records** per watchlist group with volume, engagement, sentiment breakdown, and change vs. the previous run
- **Alert records** when thresholds are crossed (risk keyword hit, mention spike, high-engagement post)
- A **run summary** with totals and timing

Run it on a schedule (daily or hourly) to track how a brand, competitor, or campaign evolves on Threads over time.

---

### Why use Threads Brand Monitor?

- **No Threads account required** — works with publicly accessible Threads pages
- **Scheduled monitoring** — pair with Apify's built-in scheduler for daily or hourly reports
- **Delta mode** — on repeat runs, only new posts since the last run are flagged `is_new_since_last_run: true`, avoiding duplicates in downstream tools
- **Multi-group watchlists** — track your brand, competitors, and campaign hashtags in a single run, each with its own summary
- **Alerts included** — get notified when a risk keyword appears, volume spikes, or a post goes viral
- **Structured output** — clean JSON records ready for Google Sheets, BigQuery, Zapier, or any webhook

---

### How to use

1. **Open the actor** on Apify Console and click **Try for free**
2. **Configure your watchlists** — add at least one group with handles or keywords to monitor (see Input section below)
3. **Set your risk keywords** — words that trigger alert records when found in post text (e.g. `outage`, `refund`, `bug`)
4. **Enable Delta Mode** if you plan to run on a schedule — this flags only new posts on each run
5. Click **Start** — the actor runs and saves results to the default dataset
6. **Export or connect** — download as CSV/JSON from the Output tab, or connect via Apify's API or integrations

**For scheduled monitoring:**
- Go to Schedules → Create schedule → select this actor
- Run daily at 08:00 UTC for a morning brand briefing
- Enable Delta Mode so each run only surfaces new activity

---

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `watchlists` | array | — | **Required.** One or more named groups to monitor. Each group has a `name`, `type`, and lists of `handles` and/or `keywords`. |
| `maxPostsPerHandle` | integer | 25 | Max posts to collect per handle per run. Threads embeds ~4–8 posts in the initial page load. |
| `maxPostsPerKeyword` | integer | 50 | Max posts to collect per keyword search. |
| `includeReplies` | boolean | false | Include reply posts from handle timelines. |
| `includeProfileStats` | boolean | true | Emit a profile record per handle with follower count, bio, and verification status. |
| `deltaMode` | boolean | false | Only flag posts newer than the last run as `is_new_since_last_run: true`. Recommended for scheduled runs. |
| `riskKeywords` | array | `["outage","refund","bug",...]` | Posts containing these words trigger `negative_post` alert records. |
| `minEngagement` | integer | 0 | Skip posts with fewer total interactions (likes + replies + reposts). Applies to handle posts only; keyword results always pass through. |
| `alertThresholds` | object | `{mentionSpikeMultiplier: 3, minEngagementForAlert: 100}` | Controls when `mention_spike` and `new_high_engagement_post` alerts fire. |
| `proxyConfiguration` | object | Apify residential | Residential proxies are recommended for keyword search. Threads may block datacenter IPs on search routes. |

#### Example input

```json
{
    "watchlists": [
        {
            "name": "Our Brand",
            "type": "brand",
            "keywords": ["our-product-name", "#ourhashtag"],
            "handles": ["our-threads-handle"]
        },
        {
            "name": "Competitors",
            "type": "competitor",
            "handles": ["competitor-a", "competitor-b"],
            "keywords": []
        },
        {
            "name": "Campaign — Launch Week",
            "type": "campaign",
            "keywords": ["#launchweek", "product launch"],
            "handles": []
        }
    ],
    "maxPostsPerHandle": 25,
    "maxPostsPerKeyword": 50,
    "deltaMode": true,
    "riskKeywords": ["outage", "bug", "refund", "broken", "cancel", "scam"],
    "alertThresholds": {
        "mentionSpikeMultiplier": 3,
        "minEngagementForAlert": 500
    }
}
````

***

### Output

All records land in the actor's default dataset. Each record has a `record_type` field to distinguish them.

#### Record types

| `record_type` | One row per | Key fields |
|---|---|---|
| `post` | Each matched Threads post | `text`, `author_handle`, `published_at`, `like_count`, `reply_count`, `repost_count`, `risk_flags`, `sentiment_direction`, `is_new_since_last_run` |
| `profile` | Each monitored handle | `handle`, `display_name`, `follower_count`, `bio`, `verified_status` |
| `summary` | Each watchlist group | `total_posts_seen`, `new_posts`, `top_post_url`, `risk_post_count`, `volume_change_vs_previous_run` |
| `alert` | Each threshold crossed | `alert_type`, `severity`, `message`, `trigger_value`, `post_url` |
| `run_summary` | Entire run | `total_posts_returned`, `new_posts_returned`, `alerts_generated`, `run_started_at`, `run_finished_at` |

#### Sample post record

```json
{
    "record_type": "post",
    "group_name": "Our Brand",
    "group_type": "brand",
    "match_type": "keyword",
    "query": "our-product-name",
    "platform": "threads",
    "post_id": "3906263078447871896",
    "post_url": "https://www.threads.net/@someuser/post/3906263078447871896",
    "author_handle": "someuser",
    "author_name": "Some User",
    "text": "Just tried our-product-name for the first time and it's great!",
    "published_at": "2026-05-27T11:54:28.000Z",
    "like_count": 42,
    "reply_count": 7,
    "repost_count": 3,
    "risk_flags": [],
    "sentiment_direction": "positive",
    "is_new_since_last_run": true
}
```

#### Sample summary record

```json
{
    "record_type": "summary",
    "group_name": "Our Brand",
    "group_type": "brand",
    "new_posts": 12,
    "total_posts_seen": 12,
    "unique_authors": 9,
    "total_likes": 847,
    "total_replies": 134,
    "top_post_url": "https://www.threads.net/@topuser/post/...",
    "risk_post_count": 1,
    "positive_post_count": 7,
    "negative_post_count": 1,
    "neutral_post_count": 4,
    "volume_change_vs_previous_run": 4,
    "summary_generated_at": "2026-05-27T12:03:11.000Z"
}
```

#### Sample alert record

```json
{
    "record_type": "alert",
    "alert_type": "negative_post",
    "severity": "medium",
    "group_name": "Our Brand",
    "trigger_value": 1,
    "threshold": 1,
    "post_url": "https://www.threads.net/@user/post/...",
    "message": "1 post(s) matched risk keywords for \"Our Brand\"",
    "generated_at": "2026-05-27T12:03:11.000Z"
}
```

***

### Pricing and cost estimation

This actor is billed per dataset item. Results include post, profile, summary, alert, and run\_summary records. The estimates below assume pay-per-result pricing around $1 per 1,000 dataset items and typical runs where most items are post records.

| Scenario | Approx. dataset items per run | Estimated cost |
|---|---|---|
| 1 brand + 2 competitors, 3 keywords, daily | ~50-170 items | ~$0.05-$0.17/run |
| 5 watchlist groups, 10 keywords, hourly | ~300-650 items | ~$0.30-$0.65/run |
| Large campaign with 20 keywords | ~500-1,050 items | ~$0.50-$1.05/run |

Residential proxy usage (recommended for keyword search) adds a small additional cost per run. Enable delta mode on scheduled runs to minimise volume — each run only surfaces new activity.

***

### Tips

**Recommended schedule for brand monitoring:**

- Daily at 08:00 UTC — morning briefing cadence
- Enable `deltaMode: true` to avoid re-processing the same posts
- Set `includeProfileStats: true` to track follower count changes over time

**Keyword search quality:**

- Threads keyword search returns posts by relevance, not recency — results vary between runs
- Common keywords return more spam; use specific brand names or product handles for cleaner signal
- Hashtags (e.g. `#yourhashtag`) work as keywords

**Proxy configuration:**

- Residential proxies are pre-selected and recommended — Threads blocks datacenter IPs on search routes
- Handle-based monitoring works without proxies; keyword search benefits most from residential IPs

**Connecting results to other tools:**

- Use Apify's Google Sheets integration to append each run's posts to a tracking sheet
- Use the webhook trigger to POST alert records to Slack or a CRM when `severity: "high"`
- Filter the dataset by `record_type: "summary"` for a quick daily briefing

***

### FAQ

**Does this require a Threads login?**
No. The actor accesses public Threads pages only. Private accounts and login-gated content are not accessible.

**How many posts does it return per handle?**
Threads embeds 4–8 posts in the initial page load per handle. Setting `maxPostsPerHandle` higher than this will not return more posts — the limit is what Threads serves in the public page, not a parameter we control.

**Why are engagement metrics null for keyword search results?**
Keyword search uses Playwright to render the search results page. Engagement counts (likes, replies) are not reliably extractable from the rendered DOM without brittle class selectors. Handle-based posts include full engagement metrics from Threads' embedded JSON.

**What languages does it support?**
All languages. Threads is a global platform and search results include posts in any language. Sentiment detection uses English keyword matching only — non-English posts will return `sentiment_direction: null`.

**Does delta mode work across platform runs?**
Yes. Delta state is stored in Apify Key-Value Store, which persists between runs of the same actor. Each handle and keyword feed has its own anchor (last seen post ID and timestamp).

**What happens if a handle doesn't exist or is private?**
The actor logs a warning and skips that handle. Other handles and keywords in the same watchlist group continue processing normally.

***

### Support

Found a bug or have a feature request? Use the Issues tab on the actor page, or contact via the Apify Console support chat.

# Actor input Schema

## `watchlists` (type: `array`):

Groups of handles and keywords to monitor. Each group produces separate summary rows.

## `maxPostsPerKeyword` (type: `integer`):

Maximum posts to collect per keyword search query.

## `maxPostsPerHandle` (type: `integer`):

Maximum posts to collect from each monitored handle's timeline.

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

Only include posts published on or after this date. Format: YYYY-MM-DD

## `includeReplies` (type: `boolean`):

If enabled, replies to posts are included in the output. Increases runtime significantly.

## `includeProfileStats` (type: `boolean`):

If enabled, emits a profile record with follower count and bio for each monitored handle.

## `deltaMode` (type: `boolean`):

Only return posts newer than the last run. Ideal for scheduled monitoring runs.

## `riskKeywords` (type: `array`):

Posts matching any of these keywords trigger alert records and are flagged in output.

## `minEngagement` (type: `integer`):

Only include posts with at least this many total interactions (likes + replies + reposts). Set to 0 to include all.

## `alertThresholds` (type: `object`):

Configure when alert records are emitted.

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

Residential proxies are recommended for keyword search. Threads blocks datacenter IPs on some routes.

## Actor input object example

```json
{
  "watchlists": [
    {
      "name": "Our Brand",
      "type": "brand",
      "keywords": [
        "our-product-name"
      ],
      "handles": [
        "our-threads-handle"
      ]
    },
    {
      "name": "Competitors",
      "type": "competitor",
      "handles": [
        "competitor-handle"
      ],
      "keywords": []
    }
  ],
  "maxPostsPerKeyword": 50,
  "maxPostsPerHandle": 25,
  "includeReplies": false,
  "includeProfileStats": true,
  "deltaMode": false,
  "riskKeywords": [
    "outage",
    "refund",
    "bug",
    "broken",
    "support",
    "scam",
    "cancel"
  ],
  "minEngagement": 0,
  "alertThresholds": {
    "mentionSpikeMultiplier": 3,
    "minEngagementForAlert": 100
  },
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All output records, including posts, profiles, summaries, alerts, and run summaries.

# 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 = {
    "watchlists": [
        {
            "name": "Our Brand",
            "type": "brand",
            "keywords": [
                "our-product-name"
            ],
            "handles": [
                "our-threads-handle"
            ]
        },
        {
            "name": "Competitors",
            "type": "competitor",
            "handles": [
                "competitor-handle"
            ],
            "keywords": []
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("digitalnomadph/threads-brand-monitor").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 = {
    "watchlists": [
        {
            "name": "Our Brand",
            "type": "brand",
            "keywords": ["our-product-name"],
            "handles": ["our-threads-handle"],
        },
        {
            "name": "Competitors",
            "type": "competitor",
            "handles": ["competitor-handle"],
            "keywords": [],
        },
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("digitalnomadph/threads-brand-monitor").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 '{
  "watchlists": [
    {
      "name": "Our Brand",
      "type": "brand",
      "keywords": [
        "our-product-name"
      ],
      "handles": [
        "our-threads-handle"
      ]
    },
    {
      "name": "Competitors",
      "type": "competitor",
      "handles": [
        "competitor-handle"
      ],
      "keywords": []
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call digitalnomadph/threads-brand-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Brand Monitor",
        "description": "Monitor Threads for brand mentions, competitor posts, keyword activity, and alerts with scheduled Apify runs.",
        "version": "1.0",
        "x-build-id": "bnEFuaaiZ4XxeXhCO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/digitalnomadph~threads-brand-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-digitalnomadph-threads-brand-monitor",
                "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/digitalnomadph~threads-brand-monitor/runs": {
            "post": {
                "operationId": "runs-sync-digitalnomadph-threads-brand-monitor",
                "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/digitalnomadph~threads-brand-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-digitalnomadph-threads-brand-monitor",
                "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": [
                    "watchlists"
                ],
                "properties": {
                    "watchlists": {
                        "title": "Watchlists",
                        "type": "array",
                        "description": "Groups of handles and keywords to monitor. Each group produces separate summary rows."
                    },
                    "maxPostsPerKeyword": {
                        "title": "Max Posts Per Keyword",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum posts to collect per keyword search query.",
                        "default": 50
                    },
                    "maxPostsPerHandle": {
                        "title": "Max Posts Per Handle",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum posts to collect from each monitored handle's timeline.",
                        "default": 25
                    },
                    "dateFrom": {
                        "title": "Date From",
                        "type": "string",
                        "description": "Only include posts published on or after this date. Format: YYYY-MM-DD"
                    },
                    "includeReplies": {
                        "title": "Include Replies",
                        "type": "boolean",
                        "description": "If enabled, replies to posts are included in the output. Increases runtime significantly.",
                        "default": false
                    },
                    "includeProfileStats": {
                        "title": "Include Profile Stats",
                        "type": "boolean",
                        "description": "If enabled, emits a profile record with follower count and bio for each monitored handle.",
                        "default": true
                    },
                    "deltaMode": {
                        "title": "Delta Mode",
                        "type": "boolean",
                        "description": "Only return posts newer than the last run. Ideal for scheduled monitoring runs.",
                        "default": false
                    },
                    "riskKeywords": {
                        "title": "Risk Keywords",
                        "type": "array",
                        "description": "Posts matching any of these keywords trigger alert records and are flagged in output.",
                        "default": [
                            "outage",
                            "refund",
                            "bug",
                            "broken",
                            "support",
                            "scam",
                            "cancel"
                        ]
                    },
                    "minEngagement": {
                        "title": "Minimum Engagement Filter",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include posts with at least this many total interactions (likes + replies + reposts). Set to 0 to include all.",
                        "default": 0
                    },
                    "alertThresholds": {
                        "title": "Alert Thresholds",
                        "type": "object",
                        "description": "Configure when alert records are emitted.",
                        "default": {
                            "mentionSpikeMultiplier": 3,
                            "minEngagementForAlert": 100
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Residential proxies are recommended for keyword search. Threads blocks datacenter IPs on some routes."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
