# Xueqiu Scraper — Chinese Stock Discussion & Cashtag Sentiment (`zhorex/xueqiu-scraper`) Actor

Extract Chinese stock sentiment from Xueqiu (Snowball) — Sina's Stocktwits with 20M+ users. A-share, HK, and US-listed-Chinese tickers. Per-post cashtag extraction, KOL metrics. Built for equity research, quant alt-data, AI training corpora. No login required.

- **URL**: https://apify.com/zhorex/xueqiu-scraper.md
- **Developed by:** [Sami](https://apify.com/zhorex) (community)
- **Categories:** AI, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 post extracteds

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

## Xueqiu Scraper — Chinese Stock Discussion & Cashtag Sentiment

Chinese stock-discussion sentiment from **Xueqiu (Snowball)** — Sina's Stocktwits-equivalent with 20M+ registered users. Per-ticker **cashtag indexing**, follower-weighted signal, KOL identification. Covers **A-share (SH/SZ), Hong Kong, and US-listed-Chinese** tickers. No login required, no API key, no browser.

---

### Why Xueqiu matters for Chinese equity

Most Chinese-data scrapers focus on Weibo for broad public sentiment, but Weibo is general-purpose chatter — only a small fraction is finance-grade signal. **Xueqiu is purpose-built for stock discussion**, which means:

- **Cashtag-indexed posts** — every post is tied to a stock symbol the same way Stocktwits tags `$TSLA`. You can pull every Xueqiu post that mentions `SH600519` (Kweichow Moutai) in the last 24 hours and get a clean signal stream.
- **A-share + HK + US-listed-Chinese coverage** — the only Chinese platform that natively unifies all three markets in one schema.
- **KOLs are institutional analysts** — many top accounts are verified sell-side analysts, hedge fund PMs, and financial-media editors. Follower-weighted sentiment is meaningful here in a way it isn't on Weibo.
- **Tighter signal-to-noise** for finance use cases than any cross-platform alternative.

---

### 6 modes overview

| Mode | What it returns | Anonymous | With `cookieString` |
|---|---|---|---|
| `ticker_posts` | Posts mentioning specific tickers | ✓ Trending-stream filtered by cashtag | ✓ Full per-symbol chronology |
| `ticker_quote` | Current price, change %, market cap, currency | ✓ Full (SH/SZ/HK/US) | ✓ Full |
| `user_posts` | All recent posts from specific user IDs | – (requires cookies) | ✓ Full |
| `user_profile` | Follower count, bio, verification, post count | – (requires cookies) | ✓ Full |
| `trending` | Currently trending recommended posts | ✓ Full | ✓ Full |
| `post_search` | Free-text search across posts | – (requires cookies) | ✓ Full |

The anonymous tier covers the headline use cases: ticker quotes (all four markets), trending discovery, and ticker-filtered posts pulled from the trending stream. For deep per-ticker chronology, KOL tracking, and free-text search, paste a Xueqiu session cookie into `cookieString` — instructions are in the input schema. Cookies stay private to your run.

Example input for `ticker_posts`:

```json
{
    "mode": "ticker_posts",
    "tickers": ["TSLA", "00700.HK", "SH600519"],
    "postsPerTicker": 50,
    "sort": "latest"
}
````

***

### Output schema

#### Post items (`ticker_posts`, `user_posts`, `trending`, `post_search`)

```json
{
    "mode": "ticker_posts",
    "postId": "287634591",
    "tickerExtracted": "SH600519",
    "tickerSource": "$贵州茅台(SH600519)$",
    "tickersInPost": ["SH600519", "SZ000858"],
    "postText": "$贵州茅台(SH600519)$ Q3 earnings beat — margins expanding.",
    "postTextEn": null,
    "publishedAt": "2026-05-14T09:23:11+00:00",
    "source": "iPhone",
    "author": {
        "userId": "1234567890",
        "screenName": "价值投资者",
        "followerCount": 41200,
        "isVerified": true,
        "verificationLabel": "知名投资人"
    },
    "metrics": {
        "likeCount": 142,
        "commentCount": 23,
        "retweetCount": 8,
        "viewCount": null
    },
    "postUrl": "https://xueqiu.com/1234567890/287634591",
    "scrapedAt": "2026-05-14T10:00:00+00:00"
}
```

#### Ticker quote items (`ticker_quote`)

```json
{
    "mode": "ticker_quote",
    "tickerCanonical": "SH600519",
    "tickerInput": "600519",
    "stockName": "贵州茅台",
    "stockNameEn": "Kweichow Moutai",
    "market": "SH",
    "currentPrice": 1612.50,
    "changePct": 0.84,
    "marketCap": 2025000000000.0,
    "marketCapUsd": 280000000000.0,
    "volume": 3142000,
    "currency": "CNY",
    "scrapedAt": "2026-05-14T10:00:00+00:00"
}
```

#### User profile items (`user_profile`)

```json
{
    "mode": "user_profile",
    "userId": "1234567890",
    "screenName": "价值投资者",
    "bio": "10年A股研究，专注消费&医药。",
    "followerCount": 41200,
    "followingCount": 312,
    "postCount": 8420,
    "isVerified": true,
    "verificationLabel": "知名投资人",
    "profileUrl": "https://xueqiu.com/u/1234567890",
    "scrapedAt": "2026-05-14T10:00:00+00:00"
}
```

***

### Ticker normalization — the differentiator

The scraper accepts tickers in **any common format** and converts to a canonical form internally, so you don't have to clean your input list:

| Input form | Canonical output |
|---|---|
| `TSLA`, `$TSLA` | `TSLA` |
| `00700`, `00700.HK`, `HK00700`, `0700.HK` | `HK00700` |
| `600519`, `SH600519`, `600519.SH`, `$600519` | `SH600519` |
| `000001`, `SZ000001`, `000001.SZ` | `SZ000001` |
| `BABA`, `$BABA` | `BABA` |

**Cashtag parser** handles Xueqiu's native format `$贵州茅台(SH600519)$` and extracts both the ticker and display name — including multiple cashtags per post. Every post in the output ships with `tickerExtracted` (primary) and `tickersInPost` (all mentioned).

***

### Pricing examples

**Pay-Per-Event (PPE)**: $0.005/post, $0.002/ticker-quote, $0.005/user-profile.

| Workflow | Volume | Cost |
|---|---|---|
| Daily monitoring, 20 tickers × 50 posts | 1,000 posts/day | $5/day → **$150/mo** |
| AI training corpus | 10,000 posts (one-time) | **$50** |
| Single-analyst, 5 tickers × 100 posts weekly | ~2,000 posts/mo | **~$10/mo** |
| Daily KOL tracking, 30 users × 30 posts | 900 posts/day | $4.50/day → **$135/mo** |
| Ticker resolution only | 1,000 tickers | **$2** |

***

### Use cases

1. **Quant alt-data** — Cashtag sentiment as a feature for A-share / HK alpha. Filter by author follower count for signal weighting.
2. **AI training** — Chinese-finance NLP corpus. Every post is implicitly tagged with the ticker(s) it discusses — high-quality labeled data for sentiment models.
3. **KOL tracking** — Identify and continuously monitor named institutional accounts. `user_profile` ranks them by reach; `user_posts` streams their daily output.
4. **Cross-platform sentiment** — Combine with the [Weibo Scraper](https://apify.com/zhorex/weibo-scraper) for full Chinese-investor signal coverage: Weibo for broad mood, Xueqiu for finance-specific dialogue.
5. **Equity research** — Track community reaction to earnings, regulatory news, and sector rotations across SH/SZ/HK simultaneously.

***

### Free-tier conversion test

Before subscribing, **prove the data quality with $0 spent**:

> Run `ticker_posts` with `tickers: ["$TSLA", "$00700.HK", "$600519"]` and `postsPerTicker: 67`. Manually spot-check the `tickerExtracted` field against the post body. Every output row's `tickerExtracted` must match a cashtag visible in `postText`. If accuracy is >95%, you have a real product.
>
> The bundled benchmark already validates **100% accuracy (201/201)** on synthetic cashtag input — run `python -m tests.test_ticker_normalizer` from the Actor source to reproduce.

The ticker-extraction logic is the moat — if it ever drops below 95% on real data, that's a P0 bug. Open an issue on the Actor page.

***

### Compliance posture

- Only **public Xueqiu data** — same data any anonymous browser visitor sees.
- **No login bypass** — the scraper does not attempt to extract authenticated-only premium content or paywalled posts.
- **No personal data harvesting** — only public author metadata that Xueqiu itself displays on every post.
- **No private message access**, no private follower lists, no email/phone enrichment.

Output respects the platform's robots-equivalent norms. Buyers using this for commercial workflows are responsible for downstream compliance with their own jurisdiction's data laws.

***

### Part of the Chinese Digital Intelligence Suite

This Actor is one of zhorex's Chinese-platform scrapers:

- [Weibo Scraper](https://apify.com/zhorex/weibo-scraper) — broad public sentiment, hot search, KOL posts
- [Bilibili Scraper](https://apify.com/zhorex/bilibili-scraper) — video platform comments and creator data
- [RedNote (Xiaohongshu) Scraper](https://apify.com/zhorex/rednote-scraper) — lifestyle / consumer brand reviews
- [RedNote Shop Scraper](https://apify.com/zhorex/rednote-shop-scraper) — e-commerce listings on RedNote's marketplace
- [Douban Scraper](https://apify.com/zhorex/douban-scraper) — film/book/music reviews and ratings

Use them together for full Chinese-internet coverage.

***

### Enterprise

For teams running >50K items/month:

- **Schema-stability SLA** — output fields are versioned. No surprise breaks.
- **Dedicated proxy pool** option.
- **Volume pricing** below list rate.
- Direct DM-the-dev support, 48h SLA on bug fixes.

Reach out via the Actor's contact link.

***

### Changelog

See [`CHANGELOG.md`](./CHANGELOG.md).

***

### Support & feedback

Found a bug? Edge case in ticker extraction? Open an issue on the Actor page — typical turnaround 48 hours.

If this Actor saves you time, **a 30-second review is the single biggest thing that helps**: it brings the tool to other buyers and pays for continued maintenance.

# Actor input Schema

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

What to scrape from Xueqiu. Each mode targets a different data slice — see README for details.

## `tickers` (type: `array`):

Stock tickers in ANY format: TSLA, $TSLA, 00700, 00700.HK, 600519, SH600519. Used in ticker\_posts and ticker\_quote modes.

## `userIds` (type: `array`):

Xueqiu user IDs or profile URLs. Find in profile URL: xueqiu.com/u/{userId}. Used in user\_posts and user\_profile modes.

## `searchQuery` (type: `string`):

Free-text search query in Chinese or English. Used in post\_search mode.

## `postsPerTicker` (type: `integer`):

Max posts to fetch per ticker in ticker\_posts mode.

## `postsPerUser` (type: `integer`):

Max posts to fetch per user in user\_posts mode.

## `sort` (type: `string`):

Sort order for ticker\_posts and post\_search. 'latest' = newest first, 'popular' = re-ranked by engagement.

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

ISO date (YYYY-MM-DD) — filter posts published on or after this date.

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

ISO date (YYYY-MM-DD) — filter posts published on or before this date.

## `includeRetweets` (type: `boolean`):

Include retweets in output. Default false for cleaner signal.

## `maxResults` (type: `integer`):

Hard cap on total items across all tickers / users / pages.

## `cookieString` (type: `string`):

Optional cookies for higher rate limits. Open xueqiu.com in your browser, DevTools → Application → Cookies, paste the full Cookie header here. Not required — the scraper works without login.

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

Proxy configuration. RESIDENTIAL proxies are recommended for high-volume runs.

## Actor input object example

```json
{
  "mode": "ticker_posts",
  "tickers": [
    "TSLA",
    "00700.HK",
    "SH600519"
  ],
  "postsPerTicker": 50,
  "postsPerUser": 50,
  "sort": "latest",
  "includeRetweets": false,
  "maxResults": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "ticker_posts",
    "tickers": [
        "TSLA",
        "00700.HK",
        "SH600519"
    ],
    "postsPerTicker": 50,
    "postsPerUser": 50,
    "sort": "latest",
    "maxResults": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("zhorex/xueqiu-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "ticker_posts",
    "tickers": [
        "TSLA",
        "00700.HK",
        "SH600519",
    ],
    "postsPerTicker": 50,
    "postsPerUser": 50,
    "sort": "latest",
    "maxResults": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("zhorex/xueqiu-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "ticker_posts",
  "tickers": [
    "TSLA",
    "00700.HK",
    "SH600519"
  ],
  "postsPerTicker": 50,
  "postsPerUser": 50,
  "sort": "latest",
  "maxResults": 1000
}' |
apify call zhorex/xueqiu-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Xueqiu Scraper — Chinese Stock Discussion & Cashtag Sentiment",
        "description": "Extract Chinese stock sentiment from Xueqiu (Snowball) — Sina's Stocktwits with 20M+ users. A-share, HK, and US-listed-Chinese tickers. Per-post cashtag extraction, KOL metrics. Built for equity research, quant alt-data, AI training corpora. No login required.",
        "version": "0.1",
        "x-build-id": "jw51VEhuuBNDY549O"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zhorex~xueqiu-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zhorex-xueqiu-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/zhorex~xueqiu-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zhorex-xueqiu-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/zhorex~xueqiu-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zhorex-xueqiu-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "ticker_posts",
                            "ticker_quote",
                            "user_posts",
                            "user_profile",
                            "trending",
                            "post_search"
                        ],
                        "type": "string",
                        "description": "What to scrape from Xueqiu. Each mode targets a different data slice — see README for details.",
                        "default": "ticker_posts"
                    },
                    "tickers": {
                        "title": "Tickers",
                        "type": "array",
                        "description": "Stock tickers in ANY format: TSLA, $TSLA, 00700, 00700.HK, 600519, SH600519. Used in ticker_posts and ticker_quote modes.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "userIds": {
                        "title": "Xueqiu user IDs",
                        "type": "array",
                        "description": "Xueqiu user IDs or profile URLs. Find in profile URL: xueqiu.com/u/{userId}. Used in user_posts and user_profile modes.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text search query in Chinese or English. Used in post_search mode."
                    },
                    "postsPerTicker": {
                        "title": "Posts per ticker",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Max posts to fetch per ticker in ticker_posts mode.",
                        "default": 50
                    },
                    "postsPerUser": {
                        "title": "Posts per user",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Max posts to fetch per user in user_posts mode.",
                        "default": 50
                    },
                    "sort": {
                        "title": "Sort order",
                        "enum": [
                            "latest",
                            "popular"
                        ],
                        "type": "string",
                        "description": "Sort order for ticker_posts and post_search. 'latest' = newest first, 'popular' = re-ranked by engagement.",
                        "default": "latest"
                    },
                    "dateFrom": {
                        "title": "Date from (optional)",
                        "type": "string",
                        "description": "ISO date (YYYY-MM-DD) — filter posts published on or after this date."
                    },
                    "dateTo": {
                        "title": "Date to (optional)",
                        "type": "string",
                        "description": "ISO date (YYYY-MM-DD) — filter posts published on or before this date."
                    },
                    "includeRetweets": {
                        "title": "Include retweets",
                        "type": "boolean",
                        "description": "Include retweets in output. Default false for cleaner signal.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max results (cap)",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Hard cap on total items across all tickers / users / pages.",
                        "default": 1000
                    },
                    "cookieString": {
                        "title": "Cookie string (optional)",
                        "type": "string",
                        "description": "Optional cookies for higher rate limits. Open xueqiu.com in your browser, DevTools → Application → Cookies, paste the full Cookie header here. Not required — the scraper works without login."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy configuration. RESIDENTIAL proxies are recommended for high-volume runs.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
