# RedNote Profile Scraper (`maximedupre/rednote-profile-scraper`) Actor

Scrape public RedNote/Xiaohongshu profiles without user cookies. Export Red ID, nickname, bio, location, avatars, follower metrics, likes, tags, and scrape time.

- **URL**: https://apify.com/maximedupre/rednote-profile-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$4.45 / 1,000 profile scrapeds

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

### 🔎 RedNote profile scraper for Xiaohongshu data

RedNote Profile Scraper exports public profile data from [RedNote / Xiaohongshu](https://www.xiaohongshu.com/). Paste profile URLs, `xhslink.com` short links, or raw profile IDs, then get one clean dataset row per public profile with Red ID, nickname, bio, IP location, avatar URLs, follower metrics, likes and collections, profile tags, verification signal, source URL, and scrape time.

Use this Actor for influencer research, KOL vetting, creator lists, brand monitoring, social media reporting, and China market research where you need RedNote profile data in a structured export instead of copying profile pages by hand.

For a small first run, keep the prefilled profile URL and `Profile limit` at `100`. The Actor saves only successful public profile rows, so invalid, unavailable, blocked, or private targets are skipped with a clear log message instead of creating placeholder data.

### ✅ What this Actor does

- Scrapes public RedNote / Xiaohongshu profile pages.
- Accepts full profile URLs, `xhslink.com` short links, and raw profile IDs.
- Saves one dataset item per successfully scraped public profile.
- Extracts profile identity fields such as profile ID, Red ID, nickname, bio, gender code, IP location, and verification signal.
- Extracts profile images, including avatar and thumbnail URLs when RedNote exposes them.
- Extracts visible follower, following, likes, and collection metrics.
- Preserves source count text and adds parsed numeric fields with lower-bound flags for rounded values such as `1万+`, `10K+`, or `10+`.
- Adds tags, source input, normalized profile URL, resolved URL, input row number, and scrape timestamp for traceability.
- Runs without user-provided RedNote cookies, login, or API keys.

The Actor is focused on profile-level data. It does not scrape posts, comments, search results, followers, following lists, private content, emails, phone numbers, or logged-in-only data.

### 📦 Data you can export

Each output item represents one public RedNote profile. Core fields include:

- `sourceInput` and `inputIndex` - the submitted target and its row number.
- `profileUrl`, `resolvedUrl`, and `profileId` - source links and stable profile identifier.
- `redId`, `nickname`, `bio`, `genderCode`, `genderLabel`, and `ipLocation`.
- `avatarUrl` and `avatarThumbnailUrl`.
- `followingCount`, `followersCount`, and `likesAndCollectionsCount`.
- `followingCountText`, `followersCountText`, and `likesAndCollectionsCountText` for the exact source text.
- `followingCountIsLowerBound`, `followersCountIsLowerBound`, and `likesAndCollectionsCountIsLowerBound` for rounded source values.
- `isVerified`, `tags`, `rawCounts`, `rawProfileData`, `sourceUrl`, and `scrapedAt`.

You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it through the Apify API, schedule repeat runs, or send results to webhooks and integrations.

### 🚀 How to run it

1. Open the Input tab.
2. Add one RedNote profile target per line in `Profile targets`.
3. Use full profile URLs when you have them, or paste `xhslink.com` short links or raw profile IDs.
4. Keep `Profile limit` small for the first run, then raise it when the output shape matches your workflow.
5. Run the Actor and open the dataset, or pull the same rows through the Apify API.

### ✍️ Input example

```json
{
	"profileTargets": [
		"https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a"
	],
	"maxProfiles": 100
}
````

#### 🎯 Profile targets

Add RedNote / Xiaohongshu profile URLs, `xhslink.com` short links, or raw profile IDs. The Actor normalizes profile IDs into profile URLs internally.

#### 🔢 Profile limit

Set the maximum number of submitted targets to scrape in one run. The default is `100`, and the maximum is `1000`.

### 📊 Output example

```json
{
	"status": "ok",
	"sourceInput": "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
	"inputIndex": 0,
	"profileUrl": "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
	"resolvedUrl": "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
	"profileId": "64aad79a000000002a03690a",
	"redId": "8934276718",
	"nickname": "JORDANN",
	"bio": "加拿大音乐人 制作人",
	"genderCode": 2,
	"genderLabel": "female",
	"ipLocation": "美国",
	"avatarUrl": "https://sns-avatar-qc.xhscdn.com/avatar/example.jpg",
	"avatarThumbnailUrl": "https://sns-avatar-qc.xhscdn.com/avatar/example.jpg",
	"followingCount": 10,
	"followingCountText": "10+",
	"followingCountIsLowerBound": true,
	"followersCount": 10000,
	"followersCountText": "1万+",
	"followersCountIsLowerBound": true,
	"likesAndCollectionsCount": 10000,
	"likesAndCollectionsCountText": "1万+",
	"likesAndCollectionsCountIsLowerBound": true,
	"isVerified": true,
	"tags": [
		{
			"name": "CanadaQuebec",
			"tagType": "location"
		}
	],
	"scrapedAt": "2026-06-01T00:00:00.000Z"
}
```

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each public RedNote profile found and saved. Runs that skip invalid, unavailable, private, or blocked targets do not charge for those skipped targets.

### ⚠️ Limits and caveats

- The Actor extracts public profile data visible on RedNote / Xiaohongshu profile pages.
- It does not scrape posts, comments, search results, follower lists, following lists, private data, emails, phone numbers, or logged-in-only data.
- RedNote sometimes displays rounded counts. The Actor keeps the original source text and adds lower-bound flags when exact numbers are not visible.
- Some fields can be `null` when RedNote does not show them on a profile.
- Source-hosted avatar URLs may expire or change.

### ❓ FAQ

#### 🔐 Does this RedNote profile scraper need my RedNote login?

No. The Actor is built for public profile pages and does not ask for RedNote cookies, a RedNote login, or a RedNote API key.

#### 🪪 Can I use Xiaohongshu profile IDs instead of URLs?

Yes. You can paste full profile URLs, `xhslink.com` short links, or raw profile IDs. Raw IDs are normalized into profile URLs before scraping.

#### 🔢 Why do some counts have lower-bound flags?

RedNote can show rounded counts such as `1万+` or `10K+`. The Actor keeps the original text and also provides a parsed number with a lower-bound flag so spreadsheets and dashboards can still sort or filter the data.

#### 🧾 Does the Actor save failed targets?

No. Dataset rows are reserved for successfully scraped public profiles. Invalid, unavailable, private, or temporarily blocked targets are reported in logs and skipped.

### 📝 Changelog

- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~rednote-profile-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [Social Media Stats Checker ↗](https://apify.com/maximedupre/social-media-stats-checker) - compare public profile stats across major social platforms.
- [Douyin Analytics Scraper ↗](https://apify.com/maximedupre/douyin-analytics-scraper) - export Douyin hot search trend data for China social research.
- [TikTok Story Viewer ↗](https://apify.com/maximedupre/tiktok-story-viewer) - collect active public TikTok stories from profile targets.
- [TikTok Place Posts Scraper ↗](https://apify.com/maximedupre/tiktok-place-posts-scraper) - export public TikTok posts from location pages.
- [YouTube Channel Scraper ↗](https://apify.com/maximedupre/youtube-channel-scraper) - collect public YouTube channel profiles and recent video rows.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `profileTargets` (type: `array`):

Add one RedNote/Xiaohongshu profile per line. Full profile URLs, xhslink.com short links, and raw profile IDs are supported.

## `maxProfiles` (type: `integer`):

Maximum number of submitted profiles to scrape in this run. Keep it low for a quick test, then raise it for larger lists.

## Actor input object example

```json
{
  "profileTargets": [
    "https://www.xiaohongshu.com/user/profile/573b093750c4b4437b50974c",
    "https://www.xiaohongshu.com/user/profile/584a718c82ec393ca40fd80a",
    "https://www.xiaohongshu.com/user/profile/5a1d50bce8ac2b78c29aa1ce",
    "https://www.xiaohongshu.com/user/profile/5aeae33b11be100686f47837",
    "https://www.xiaohongshu.com/user/profile/5b4272f2e8ac2b4a665480d9",
    "https://www.xiaohongshu.com/user/profile/5b4814c411be10539b86f9b5",
    "https://www.xiaohongshu.com/user/profile/5b766c205b95340001ba5c8d",
    "https://www.xiaohongshu.com/user/profile/5bc5c3df907bea00014fd08b",
    "https://www.xiaohongshu.com/user/profile/5d7439b40000000001009f54",
    "https://www.xiaohongshu.com/user/profile/5d8029d90000000001008763",
    "https://www.xiaohongshu.com/user/profile/5f5f81f6000000000100980b",
    "https://www.xiaohongshu.com/user/profile/5f94dfd20000000001003907",
    "https://www.xiaohongshu.com/user/profile/605176df0000000001003633",
    "https://www.xiaohongshu.com/user/profile/60bcec1d000000000100ab9e",
    "https://www.xiaohongshu.com/user/profile/611a308e000000000100a023",
    "https://www.xiaohongshu.com/user/profile/62b9a82e000000001b0278bc",
    "https://www.xiaohongshu.com/user/profile/63b908260000000027029d05",
    "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
    "https://www.xiaohongshu.com/user/profile/6784ba7f00000000080191fb"
  ],
  "maxProfiles": 100
}
```

# Actor output Schema

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

Open the dataset with RedNote profile identity, bio, location, avatar URLs, follower metrics, tags, source URLs, and scrape timestamps.

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "profileTargets": [
        "https://www.xiaohongshu.com/user/profile/573b093750c4b4437b50974c",
        "https://www.xiaohongshu.com/user/profile/584a718c82ec393ca40fd80a",
        "https://www.xiaohongshu.com/user/profile/5a1d50bce8ac2b78c29aa1ce",
        "https://www.xiaohongshu.com/user/profile/5aeae33b11be100686f47837",
        "https://www.xiaohongshu.com/user/profile/5b4272f2e8ac2b4a665480d9",
        "https://www.xiaohongshu.com/user/profile/5b4814c411be10539b86f9b5",
        "https://www.xiaohongshu.com/user/profile/5b766c205b95340001ba5c8d",
        "https://www.xiaohongshu.com/user/profile/5bc5c3df907bea00014fd08b",
        "https://www.xiaohongshu.com/user/profile/5d7439b40000000001009f54",
        "https://www.xiaohongshu.com/user/profile/5d8029d90000000001008763",
        "https://www.xiaohongshu.com/user/profile/5f5f81f6000000000100980b",
        "https://www.xiaohongshu.com/user/profile/5f94dfd20000000001003907",
        "https://www.xiaohongshu.com/user/profile/605176df0000000001003633",
        "https://www.xiaohongshu.com/user/profile/60bcec1d000000000100ab9e",
        "https://www.xiaohongshu.com/user/profile/611a308e000000000100a023",
        "https://www.xiaohongshu.com/user/profile/62b9a82e000000001b0278bc",
        "https://www.xiaohongshu.com/user/profile/63b908260000000027029d05",
        "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
        "https://www.xiaohongshu.com/user/profile/6784ba7f00000000080191fb"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/rednote-profile-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 = { "profileTargets": [
        "https://www.xiaohongshu.com/user/profile/573b093750c4b4437b50974c",
        "https://www.xiaohongshu.com/user/profile/584a718c82ec393ca40fd80a",
        "https://www.xiaohongshu.com/user/profile/5a1d50bce8ac2b78c29aa1ce",
        "https://www.xiaohongshu.com/user/profile/5aeae33b11be100686f47837",
        "https://www.xiaohongshu.com/user/profile/5b4272f2e8ac2b4a665480d9",
        "https://www.xiaohongshu.com/user/profile/5b4814c411be10539b86f9b5",
        "https://www.xiaohongshu.com/user/profile/5b766c205b95340001ba5c8d",
        "https://www.xiaohongshu.com/user/profile/5bc5c3df907bea00014fd08b",
        "https://www.xiaohongshu.com/user/profile/5d7439b40000000001009f54",
        "https://www.xiaohongshu.com/user/profile/5d8029d90000000001008763",
        "https://www.xiaohongshu.com/user/profile/5f5f81f6000000000100980b",
        "https://www.xiaohongshu.com/user/profile/5f94dfd20000000001003907",
        "https://www.xiaohongshu.com/user/profile/605176df0000000001003633",
        "https://www.xiaohongshu.com/user/profile/60bcec1d000000000100ab9e",
        "https://www.xiaohongshu.com/user/profile/611a308e000000000100a023",
        "https://www.xiaohongshu.com/user/profile/62b9a82e000000001b0278bc",
        "https://www.xiaohongshu.com/user/profile/63b908260000000027029d05",
        "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
        "https://www.xiaohongshu.com/user/profile/6784ba7f00000000080191fb",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/rednote-profile-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 '{
  "profileTargets": [
    "https://www.xiaohongshu.com/user/profile/573b093750c4b4437b50974c",
    "https://www.xiaohongshu.com/user/profile/584a718c82ec393ca40fd80a",
    "https://www.xiaohongshu.com/user/profile/5a1d50bce8ac2b78c29aa1ce",
    "https://www.xiaohongshu.com/user/profile/5aeae33b11be100686f47837",
    "https://www.xiaohongshu.com/user/profile/5b4272f2e8ac2b4a665480d9",
    "https://www.xiaohongshu.com/user/profile/5b4814c411be10539b86f9b5",
    "https://www.xiaohongshu.com/user/profile/5b766c205b95340001ba5c8d",
    "https://www.xiaohongshu.com/user/profile/5bc5c3df907bea00014fd08b",
    "https://www.xiaohongshu.com/user/profile/5d7439b40000000001009f54",
    "https://www.xiaohongshu.com/user/profile/5d8029d90000000001008763",
    "https://www.xiaohongshu.com/user/profile/5f5f81f6000000000100980b",
    "https://www.xiaohongshu.com/user/profile/5f94dfd20000000001003907",
    "https://www.xiaohongshu.com/user/profile/605176df0000000001003633",
    "https://www.xiaohongshu.com/user/profile/60bcec1d000000000100ab9e",
    "https://www.xiaohongshu.com/user/profile/611a308e000000000100a023",
    "https://www.xiaohongshu.com/user/profile/62b9a82e000000001b0278bc",
    "https://www.xiaohongshu.com/user/profile/63b908260000000027029d05",
    "https://www.xiaohongshu.com/user/profile/64aad79a000000002a03690a",
    "https://www.xiaohongshu.com/user/profile/6784ba7f00000000080191fb"
  ]
}' |
apify call maximedupre/rednote-profile-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RedNote Profile Scraper",
        "description": "Scrape public RedNote/Xiaohongshu profiles without user cookies. Export Red ID, nickname, bio, location, avatars, follower metrics, likes, tags, and scrape time.",
        "version": "0.1",
        "x-build-id": "OJAHc17OxyDVuybdv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~rednote-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-rednote-profile-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/maximedupre~rednote-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-rednote-profile-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/maximedupre~rednote-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-rednote-profile-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": [
                    "profileTargets"
                ],
                "properties": {
                    "profileTargets": {
                        "title": "RedNote profiles",
                        "type": "array",
                        "description": "Add one RedNote/Xiaohongshu profile per line. Full profile URLs, xhslink.com short links, and raw profile IDs are supported.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "maxProfiles": {
                        "title": "Profile limit",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of submitted profiles to scrape in this run. Keep it low for a quick test, then raise it for larger lists.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
