# WeChat Channels Comment Sentiment & Consumer Insights (`scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights`) Actor

Analyze WeChat Channels comments and replies for sentiment, recurring questions, objections, purchase intent, supplied brand and competitor mentions, evidence quotes, and content opportunities.

- **URL**: https://apify.com/scrupulous\_buckler/wechat-channels-comment-sentiment-consumer-insights.md
- **Developed by:** [Peng Lyu](https://apify.com/scrupulous_buckler) (community)
- **Categories:** Social media, Videos, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.69 / up to 100 comments and full insights report

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

## WeChat Channels Comment Sentiment & Consumer Insights

Turn WeChat Channels (视频号) comments and reply threads into evidence-linked
consumer questions, needs, objections, purchase signals, supplied brand and
competitor mentions, video-level differences, and content opportunities.

**Unofficial tool. This Actor is not affiliated with, sponsored by, or endorsed
by Tencent, WeChat, Weixin, SocialDataX, or any source platform.**

### Start with a ready-made use case

- [Analyze product objections in WeChat Channels comments](https://apify.com/scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights/examples/analyze-product-objections-in-wechat-channels-comments)
- [Find purchase intent in WeChat Channels comments](https://apify.com/scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights/examples/find-purchase-intent-in-wechat-channels-comments)
- [Analyze health-product concerns in WeChat video comments](https://apify.com/scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights/examples/analyze-health-product-concerns-in-wechat-video-comments)

Each public Task contains a complete example input. Review the sample, then
replace it with your own video links, uploaded comments, or Apify Dataset.

### Real output preview

![WeChat Channels comment sentiment and consumer-insight output](https://api.apify.com/v2/key-value-stores/xaMYG7E9wxIcBzVkW/records/wechat-channels-comments.jpg)

The screenshot is from a successful run and shows comment-level source evidence,
sentiment, intent labels, discussion dimensions, supplied entity mentions,
matched keywords, and video links.

### Best for — and not for

Best for WeChat Channels comment analysis, 视频号 audience research, product
objections, purchase intent, competitor evidence, video-by-video comparison,
and evidence-backed content planning.

Not for downloading videos, private chats or groups, subscriber identities,
automatically discovering every brand, or guaranteeing real-time and complete
comment coverage.

### This is not another video scraper

Existing WeChat Channels Actors already search videos, resolve download URLs,
and return raw comments. This Actor is the analysis and decision layer:

- one normalized row per comment or reply
- transparent sentiment and intent labels
- recurring questions, needs and objections
- exact supplied brand, product and competitor mentions
- comparison and purchase-intent evidence
- differences across the selected videos
- ranked, evidence-linked content opportunities
- explicit sample and coverage warnings

The analysis is deterministic and evidence linked. It does not claim to use AI,
does not invent missing brands, and keeps source comments available for audit.

### Price

One successful live, Dataset, or uploaded-data report costs **$1.99** and
analyzes up to **100 comments and replies**. The built-in static preview does
not trigger the custom report event; Apify may still show the small Actor-start
or platform usage charge.

Live collection invokes the separate public
`socialdatax/socialdatax-wechat-data-api` Actor. Its event, result and platform
usage charges are billed separately by Apify and are not included in the $1.99
analysis price.

If no usable comments are collected or matched, this Actor does not create or
charge the report event.

### Four input modes

#### 1. Static example preview

The default example uses eight clearly labeled synthetic comments across three
sample videos. It demonstrates the complete output without triggering the
$1.99 custom report event.

#### 2. Live comments from video links

Paste one to five public WeChat Channels share links. The Actor calls
SocialDataX with `get_video_comments` and, when enabled and supported by the
returned IDs, calls `get_video_comment_replies` for a limited number of threads.

No WeChat Cookie or SocialDataX API key is requested from the customer.

```json
{
  "mode": "liveVideoComments",
  "videoUrls": [
    {"url": "https://weixin.qq.com/sph/EXAMPLE"}
  ],
  "topic": "Outdoor sunscreen campaign",
  "commentKeywords": ["价格", "敏感肌", "哪里买"],
  "knownEntities": ["品牌甲", "产品甲"],
  "competitorNames": ["品牌乙"],
  "includeReplies": true,
  "maxReplyThreads": 5,
  "maxTotalComments": 100,
  "upstreamMaxChargeUsd": 1
}
````

#### 3. Existing Apify Datasets

Supply a Dataset produced by the SocialDataX WeChat Channels API or another
compatible comment export.

```json
{
  "mode": "datasetComments",
  "datasetId": "YOUR_DATASET_ID",
  "topic": "Product launch audience response",
  "knownEntities": ["Brand A"],
  "competitorNames": ["Brand B"],
  "maxTotalComments": 100
}
```

#### 4. Uploaded comments

Paste strings or JSON objects without calling another Actor.

```json
{
  "mode": "uploadedComments",
  "topic": "Travel product audience questions",
  "uploadedComments": [
    {
      "comment_id": "c1",
      "video_id": "v1",
      "video_title": "Product demo",
      "content": "出差方便带吗？价格是多少？",
      "author_name": "Viewer A",
      "like_count": 20
    },
    {
      "reply_id": "r1",
      "parent_comment_id": "c1",
      "video_id": "v1",
      "content": "我也想看和品牌乙的对比。",
      "is_reply": true
    }
  ]
}
```

### Recognized comment fields

Common SocialDataX, English and camelCase aliases are recognized, including:

- comment: `content`, `text`, `comment`, `comment_text`
- IDs: `comment_id`, `commentId`, `reply_id`, `query_comment_id`
- video: `video_id`, `object_id`, `query_object_id`, `video_url`,
  `query_url`, `video_title`, `video_description`
- author: `author_name`, `author_user_id`, `nickname`, nested `author` or `user`
- engagement: `like_count`, `likes`, `reply_count`
- timing: `create_time`, `created_at`
- reply status: `operation=get_video_comment_replies`, `parent_comment_id`,
  `isReply`

Rows previously generated by this Actor are ignored when a Dataset is reused.

### Row-level output

Each normalized comment or reply includes:

- source video ID, URL, title and creator when available
- comment ID, author, text, likes and reply status
- matched buyer-supplied keywords
- sentiment: positive, negative, mixed, question or neutral
- intent labels such as purchase intent, recommendation request, objection,
  comparison decision or usage help
- discussion dimensions and needs
- exact supplied entity and competitor mentions
- regulated claim terms when detected
- deterministic classification method

### Report output

The fixed-price report includes:

- comments, videos and replies represented
- sentiment counts and shares
- intent summary
- top consumer questions
- recurring needs and concerns
- supplied brand and competitor mention shares
- competitor comparison evidence
- usage scenarios
- per-video comment, question and negative-signal breakdown
- ranked content opportunities with evidence quotes
- source coverage and data-quality warnings
- health and regulated-claim screening when requested

### Important limits

- Results describe the collected or uploaded sample, not every WeChat Channels
  viewer or comment.
- Live coverage depends on the separate upstream Actor and can be incomplete,
  delayed, unavailable or affected by source-platform changes.
- Reply collection requires valid video, nonce and parent-comment IDs from the
  upstream result. Some reply threads can be missing.
- The Actor only measures exact names supplied in `knownEntities` and
  `competitorNames`; it does not automatically discover every brand.
- Sentiment and themes use transparent lexical cues. Review evidence quotes
  before making material business, medical, legal or reputational decisions.
- The Actor does not access private chats, WeChat groups, subscriber identities,
  private analytics, personal accounts, Cookies or local WeChat databases.
- It does not guarantee real-time or complete coverage.

### Privacy

The Actor does not request a WeChat Cookie or password. Uploaded records and
customer Dataset IDs are processed within the customer's Apify run and are not
copied into public examples. Avoid uploading private, confidential or
unconsented personal conversations.

### Billing behavior

The main event is:

`channels-comment-insights-report` — **$1.99**

It is triggered once only when the complete report row is written. The separate
upstream Actor can charge its own events or dataset-item prices during live
collection. Use `upstreamMaxChargeUsd` to bound each upstream run.

### Related WeChat research Actors

- [WeChat Brand Mention & Share-of-Voice Monitor](https://apify.com/scrupulous_buckler/wechat-brand-mention-share-of-voice-monitor) — monitor supplied brands and competitors across public WeChat article discovery.
- [WeChat Channels Competitor Content Analytics](https://apify.com/scrupulous_buckler/wechat-channels-competitor-content-analytics) — compare competitor videos, topics, hooks, and engagement.
- [WeChat Official Account Comment Sentiment & Consumer Insights](https://apify.com/scrupulous_buckler/wechat-official-account-comment-sentiment-consumer-insights) — analyze 公众号 article comments.
- [WeChat Article Repost & Original Source Tracker](https://apify.com/scrupulous_buckler/wechat-article-repost-original-source-tracker) — trace article reposts and likely original sources.

# Actor input Schema

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

Preview a static example without the report fee, collect public comments from video links, analyze Apify Datasets, or analyze uploaded comments.

## `videoUrls` (type: `array`):

One to five public WeChat Channels video share links. Used only in live mode.

## `datasetId` (type: `string`):

Dataset from SocialDataX WeChat Channels API or another compatible comments export.

## `sourceDatasetIds` (type: `array`):

Optional additional Apify Datasets. Report rows and previously analyzed report rows are ignored.

## `uploadedComments` (type: `array`):

Paste strings or JSON comment records. Common comment, reply, author, likes, video and parent-comment fields are recognized.

## `topic` (type: `string`):

Short report topic, product, campaign, category or customer question.

## `commentKeywords` (type: `array`):

Examples: price, side effects, where to buy, product names, campaign phrases or usage scenarios.

## `requireKeywordMatch` (type: `boolean`):

Off by default so surrounding conversation context is preserved.

## `knownEntities` (type: `array`):

Exact names to measure. The Actor does not automatically identify every possible brand.

## `competitorNames` (type: `array`):

Exact competitor brand or product names to identify and compare.

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

After collecting top-level comments, request replies for a limited number of comment threads when upstream IDs are available. Each upstream run can incur separate charges.

## `maxReplyThreads` (type: `integer`):

Limits extra upstream calls used for comment replies.

## `maxTotalComments` (type: `integer`):

One $1.99 report analyzes at most 100 normalized comments and replies in total.

## `maxCommentsPerVideo` (type: `integer`):

Live-mode limit before reply collection.

## `maxEvidence` (type: `integer`):

Limits the number of auditable source-comment excerpts returned in each report section.

## `maxOpportunities` (type: `integer`):

Limits the number of evidence-linked content opportunities returned in the report.

## `regulatedTopic` (type: `boolean`):

Adds risky-claim evidence and safer framing. This is a screening aid, not legal or medical approval.

## `includeSourceComments` (type: `boolean`):

Useful for audit and export; turn off for a smaller report row.

## `upstreamMaxChargeUsd` (type: `number`):

Maximum total charge allowed for each SocialDataX upstream Actor run. This is separate from the $1.99 report fee.

## Actor input object example

```json
{
  "mode": "demo",
  "videoUrls": [],
  "datasetId": "",
  "sourceDatasetIds": [],
  "uploadedComments": [],
  "topic": "WeChat Channels audience discussion",
  "commentKeywords": [],
  "requireKeywordMatch": false,
  "knownEntities": [],
  "competitorNames": [],
  "includeReplies": true,
  "maxReplyThreads": 5,
  "maxTotalComments": 100,
  "maxCommentsPerVideo": 50,
  "maxEvidence": 20,
  "maxOpportunities": 10,
  "regulatedTopic": false,
  "includeSourceComments": true,
  "upstreamMaxChargeUsd": 1
}
```

# Actor output Schema

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

No description

## `report` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights").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 '{}' |
apify call scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrupulous_buckler/wechat-channels-comment-sentiment-consumer-insights",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "WeChat Channels Comment Sentiment & Consumer Insights",
        "description": "Analyze WeChat Channels comments and replies for sentiment, recurring questions, objections, purchase intent, supplied brand and competitor mentions, evidence quotes, and content opportunities.",
        "version": "0.1",
        "x-build-id": "IFl2BfDNGpdD8HBJg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrupulous_buckler~wechat-channels-comment-sentiment-consumer-insights/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrupulous_buckler-wechat-channels-comment-sentiment-consumer-insights",
                "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/scrupulous_buckler~wechat-channels-comment-sentiment-consumer-insights/runs": {
            "post": {
                "operationId": "runs-sync-scrupulous_buckler-wechat-channels-comment-sentiment-consumer-insights",
                "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/scrupulous_buckler~wechat-channels-comment-sentiment-consumer-insights/run-sync": {
            "post": {
                "operationId": "run-sync-scrupulous_buckler-wechat-channels-comment-sentiment-consumer-insights",
                "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": "Data source",
                        "enum": [
                            "demo",
                            "liveVideoComments",
                            "datasetComments",
                            "uploadedComments"
                        ],
                        "type": "string",
                        "description": "Preview a static example without the report fee, collect public comments from video links, analyze Apify Datasets, or analyze uploaded comments.",
                        "default": "demo"
                    },
                    "videoUrls": {
                        "title": "WeChat Channels video links",
                        "type": "array",
                        "description": "One to five public WeChat Channels video share links. Used only in live mode.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "datasetId": {
                        "title": "Primary comments Dataset ID",
                        "type": "string",
                        "description": "Dataset from SocialDataX WeChat Channels API or another compatible comments export.",
                        "default": ""
                    },
                    "sourceDatasetIds": {
                        "title": "Additional comments Dataset IDs",
                        "type": "array",
                        "description": "Optional additional Apify Datasets. Report rows and previously analyzed report rows are ignored.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "uploadedComments": {
                        "title": "Uploaded comments",
                        "type": "array",
                        "description": "Paste strings or JSON comment records. Common comment, reply, author, likes, video and parent-comment fields are recognized.",
                        "default": []
                    },
                    "topic": {
                        "title": "Research topic",
                        "type": "string",
                        "description": "Short report topic, product, campaign, category or customer question.",
                        "default": "WeChat Channels audience discussion"
                    },
                    "commentKeywords": {
                        "title": "Keywords to measure inside comments",
                        "type": "array",
                        "description": "Examples: price, side effects, where to buy, product names, campaign phrases or usage scenarios.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "requireKeywordMatch": {
                        "title": "Analyze only comments matching a supplied keyword",
                        "type": "boolean",
                        "description": "Off by default so surrounding conversation context is preserved.",
                        "default": false
                    },
                    "knownEntities": {
                        "title": "Brands, products and other entities",
                        "type": "array",
                        "description": "Exact names to measure. The Actor does not automatically identify every possible brand.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "competitorNames": {
                        "title": "Competitor names",
                        "type": "array",
                        "description": "Exact competitor brand or product names to identify and compare.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeReplies": {
                        "title": "Collect reply threads in live mode",
                        "type": "boolean",
                        "description": "After collecting top-level comments, request replies for a limited number of comment threads when upstream IDs are available. Each upstream run can incur separate charges.",
                        "default": true
                    },
                    "maxReplyThreads": {
                        "title": "Maximum reply threads to collect",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Limits extra upstream calls used for comment replies.",
                        "default": 5
                    },
                    "maxTotalComments": {
                        "title": "Comments and replies to analyze (maximum 100)",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "One $1.99 report analyzes at most 100 normalized comments and replies in total.",
                        "default": 100
                    },
                    "maxCommentsPerVideo": {
                        "title": "Maximum top-level comments per video",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Live-mode limit before reply collection.",
                        "default": 50
                    },
                    "maxEvidence": {
                        "title": "Maximum evidence excerpts per report section",
                        "minimum": 5,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Limits the number of auditable source-comment excerpts returned in each report section.",
                        "default": 20
                    },
                    "maxOpportunities": {
                        "title": "Maximum content opportunities",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "Limits the number of evidence-linked content opportunities returned in the report.",
                        "default": 10
                    },
                    "regulatedTopic": {
                        "title": "Health or other regulated topic",
                        "type": "boolean",
                        "description": "Adds risky-claim evidence and safer framing. This is a screening aid, not legal or medical approval.",
                        "default": false
                    },
                    "includeSourceComments": {
                        "title": "Keep normalized source comments inside the report",
                        "type": "boolean",
                        "description": "Useful for audit and export; turn off for a smaller report row.",
                        "default": true
                    },
                    "upstreamMaxChargeUsd": {
                        "title": "Maximum separate upstream charge",
                        "minimum": 0.01,
                        "maximum": 10,
                        "type": "number",
                        "description": "Maximum total charge allowed for each SocialDataX upstream Actor run. This is separate from the $1.99 report fee.",
                        "default": 1
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
