# Lianjia Scraper: Resale Listings, Price, Community (`getascraper/lianjia-real-estate-scraper`) Actor

Scrape Lianjia (链家) resale listings across 12 major Chinese cities. Get total price, price per sqm, community, area, and layout. Perfect for Excel, Google Sheets, or any BI tool. Skip manual copy-pasting or expensive broker fees. $2.50 per 1,000 results.

- **URL**: https://apify.com/getascraper/lianjia-real-estate-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 property listings

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

## Lianjia Scraper: Resale Listings, Price, Community

Get live Beijing and Shanghai resale housing data: total price, price per square meter, community, area, and floor. Ready for your spreadsheet in under 60 seconds.

Lianjia (链家) is the dominant real estate platform in China, run by KE Holdings (parent of Beike 贝壳找房). This Actor pulls public resale listings (二手房) into clean datasets for 12 major Chinese cities. No login. No API key. No headless browser overhead.

### What does Lianjia Real Estate Scraper do?

The Actor extracts structured property data from the public Lianjia desktop search and detail pages and saves it to the Apify dataset. You get the same 30-row pages a regular browser would render, parsed and normalized for analysis.

Two operations, one actor:

- **Resale Housing List**: walk paginated listing cards by city. 30 rows per page, up to 100 pages per run (3,000 rows max).
- **Resale Housing Detail**: fetch one full property record by `houseCode` (the numeric listing ID, e.g. `101137699747`).

Each row carries a public `m.ke.com` mobile URL you can open in any browser to verify the listing in one click.

### Who is this for

- **I am a China property market analyst** building city-level and neighborhood-level price maps across Beijing, Shanghai, Shenzhen, and 9 other metros. I need clean per-㎡ prices, area, and bedroom counts delivered to my dashboard on schedule.
- **I am a cross-border real estate investor** comparing China resale housing against my US and UK datasets. I need the same schema across all my property pipelines and a pay-per-result cost model that fits my research budget.
- **I am a real estate lead generation operator** pulling agent names and property context for brokerage, mortgage, or relocation outreach. I need fresh listings every morning and a public mobile URL I can hand to my sales team.
- **I am a proptech builder** training an automated valuation model. I need average unit price per community plus on-sale inventory counts to feed my comps engine.
- **I am a developer integrating China real estate data** into a Notion dashboard or Airtable base. I need clean JSON with stable field names and a simple Node.js or Python client to call.

### How to use

1. **Pick an operation (or use Start URLs).** You can either use the dropdown options or provide custom **Start URLs** representing a pre-filtered search (e.g. `https://bj.ke.com/ershoufang/chaoyang/p3/`) copied straight from your browser.
2. **Set the city (if not using Start URLs).** Pick from the 12-city dropdown or type any Beike city ID.
3. **Set the page range.** `maxPages` from 0 to 100. 30 rows per page. Default 5 pages (150 rows).
4. **Run.** The Actor crawls the pages, parses each card with Cheerio, and pushes rows to the dataset.
5. **Export.** Download JSON, CSV, or Excel from the Apify dataset tab.

For the Detail operation, you can either paste a detail page URL as a Start URL (e.g. `https://bj.ke.com/ershoufang/101137699747.html`) or use the dropdown with a numeric `houseCode`.

### Input

| Field | Type | Required | Description |
|---|---|---|---|
| startUrls | array | No | Optional. List of custom pre-filtered search list or detail URLs, e.g. `https://bj.ke.com/ershoufang/chaoyang/p3/`. Supports all 670+ Chinese subdomains. |
| operation | string | Yes | `resaleHousingList` or `resaleHousingDetail` (ignored if `startUrls` is provided). |
| cityId | string | No | Beike city ID (e.g. `110000` for Beijing). Ignored if `startUrls` is provided. |
| houseCode | string | For Detail | Numeric listing ID, e.g. `101137699747`. Ignored if `startUrls` is provided. |
| maxPages | integer | No | Max pages for list operation. 30 rows per page. Default 5, range 0 to 100. |
| proxyConfiguration | object | No | Apify Residential proxy is required for stability at scale. Default: `RESIDENTIAL` group. |

**Example: custom pre-filtered list search**

```json
{
    "startUrls": [
        { "url": "https://bj.ke.com/ershoufang/chaoyang/p3/" }
    ],
    "maxPages": 5
}
````

**Example: Beijing 5 pages of resale listings**

```json
{
    "operation": "resaleHousingList",
    "cityId": "110000",
    "maxPages": 5
}
```

**Example: one Shanghai property by houseCode**

```json
{
    "operation": "resaleHousingDetail",
    "cityId": "310000",
    "houseCode": "101137699747"
}
```

### Output

Every row includes the public mobile URL pointing to the live `m.ke.com` listing, so you can verify the data in one click.

**Resale Housing List row**

```json
{
    "_operation": "resaleHousingList",
    "houseCode": "101133627586",
    "listingTitle": "此房是南北通透三居室，满五唯一",
    "communityName": "加州水郡四期",
    "priceTotal": 179,
    "priceTotalDisplay": "179 万",
    "unitPrice": 19551,
    "unitPriceDisplay": "19,551元/平",
    "area": 91.56,
    "bedroomNum": 3,
    "hallNum": 1,
    "orientation": "南",
    "yearBuilt": "2011年",
    "decoration": "",
    "followInfo": "225人关注 / 8月前发布",
    "agentName": "",
    "cityId": "110000",
    "cityName": "北京",
    "subdomain": "bj",
    "listingUrl": "https://m.ke.com/bj/ershoufang/101133627586.html",
    "scrapedAt": "2026-06-12T04:34:18.741Z"
}
```

**Resale Housing Detail row** adds `floorState`, `buildingType`, `elevator`, `ownership`, `publishTime`, and `tags[]`.

You can download the dataset in JSON, HTML, CSV, or Excel from the Apify dataset tab.

### Data table

| Field | Type | Description |
|---|---|---|
| `_operation` | string | Which operation produced this row |
| `houseCode` | string | Beike listing ID, e.g. `101133627586` |
| `listingTitle` | string | Public listing title (Chinese, e.g. "此房是南北通透三居室，满五唯一") |
| `communityName` | string | Community / neighborhood name (小区) |
| `priceTotal` | number | Total price in 万 (10,000 RMB), e.g. `179` = ¥1,790,000 |
| `priceTotalDisplay` | string | Formatted total price string, e.g. `179 万` |
| `unitPrice` | number | Price per square meter in RMB, e.g. `19551` |
| `unitPriceDisplay` | string | Formatted unit price string, e.g. `19,551元/平` |
| `area` | number | Floor area in ㎡, e.g. `91.56` |
| `bedroomNum` | number | Number of bedrooms |
| `hallNum` | number | Number of halls / living rooms |
| `orientation` | string | Building orientation, e.g. `南` / `西南` |
| `yearBuilt` | string | Year built, e.g. `2011年` |
| `decoration` | string | Decoration level, e.g. `毛坯` / `简装` / `精装` |
| `followInfo` | string | Raw followInfo field from Lianjia (engagement + post date) |
| `agentName` | string | Public listing agent name when displayed |
| `cityId` | string | Beike city ID (e.g. `110000`) |
| `cityName` | string | City name in Chinese, e.g. `北京` |
| `subdomain` | string | Lianjia subdomain, e.g. `bj`, `sh` |
| `listingUrl` | string | Public mobile URL on `m.ke.com` |
| `scrapedAt` | string | ISO 8601 timestamp of the scrape run |
| `floorState` | string | (Detail only) e.g. `中楼层/共23层` |
| `buildingType` | string | (Detail only) e.g. `板楼` / `塔楼` |
| `elevator` | string | (Detail only) `有电梯` / `无电梯` |
| `ownership` | string | (Detail only) Property ownership type |
| `publishTime` | string | (Detail only) Listing publish timestamp |
| `tags` | string\[] | (Detail only) Highlight tags from the listing |

### API quickstart

**Curl**

```bash
curl --request POST \
  --url "https://api.apify.com/v2/acts/getascraper~lianjia-real-estate-scraper/runs?token=YOUR_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
    "operation": "resaleHousingList",
    "cityId": "110000",
    "maxPages": 5
  }'
```

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('getascraper/lianjia-real-estate-scraper').call(
    run_input={
        'operation': 'resaleHousingList',
        'cityId': '110000',
        'maxPages': 5,
    }
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

**Node.js**

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client
    .actor('getascraper/lianjia-real-estate-scraper')
    .call({
        operation: 'resaleHousingList',
        cityId: '110000',
        maxPages: 5,
    });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Pricing

Pay-per-result and billed per row successfully saved to your dataset. Empty runs and captcha-blocked requests cost exactly $0.00.

- **Rate:** $2.50 per 1,000 results ($0.0025 per result)
- **100 listings** typically cost **$0.25**
- **1,000 listings** cost exactly **$2.50**
- **3,000 listings** (the max single run) cost exactly **$7.50**
- No fixed monthly subscriptions or hidden maintenance fees

Your Apify subscription tier applies an automatic volume discount on top of the per-result rate.

### FAQ

##### Does it get blocked?

The public Lianjia search returns HTTP 302 to a captcha challenge after the first request from any single IP. The default input schema routes every request through the Apify Residential proxy group, which rotates IPs per call and keeps the scraper stable across full pagination runs.

##### How fresh is the data?

Every row reflects a live scrape. Lianjia updates inventory throughout the day, and this Actor hits the live search and detail pages. There is no cached data layer between you and the source. Each row carries a `scrapedAt` ISO 8601 timestamp so you know exactly when it was pulled.

##### Which cities are supported?

Twelve major Chinese metros are in the dropdown: Beijing (110000), Shanghai (310000), Guangzhou (440100), Shenzhen (440300), Hangzhou (330100), Chengdu (510100), Nanjing (320100), Wuhan (420100), Xi'an (610100), Tianjin (120000), Chongqing (500000), and Shenyang (210100). You can also type any Beike city ID to scrape additional cities.

##### Does it extract agent phone numbers?

No. Phone reveal on Lianjia requires an authenticated app session and is out of scope. The Actor exposes only what is publicly visible on the public listing page, including the agent's display name when shown.

### Tips and advanced options

- **Schedule daily runs** for the same cityId and operation to track price movement and inventory depth over time.
- **Narrow by houseCode** instead of paginating when you already have a short list. The Detail operation costs one row per call.
- **Dedupe by `houseCode`** when stitching results across multiple runs. Listings can be delisted, so fresh houseCodes are guaranteed unique.
- **Cross-reference** with our other China real estate Actors in the actorstack portfolio to combine Lianjia resale data with adjacent platforms.

### Legal compliance

This Actor only extracts data that is publicly visible on the public Lianjia search and detail pages. Users must comply with Lianjia's terms of service, Chinese PIPL, GDPR, and CCPA where applicable. Beike and Lianjia are trademarks of KE Holdings Inc; this is an independent scraping tool and is not affiliated with, endorsed by, or sponsored by KE Holdings.

### Support

Open an issue on the Issues tab for bugs, feature requests, or city additions. We respond within 48 hours.

# Actor input Schema

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

Optional. List of custom Lianjia / Beike search result or property detail URLs, e.g. https://bj.ke.com/ershoufang/chaoyang/ or https://sh.ke.com/ershoufang/101137699747.html. If provided, the Actor will crawl these custom pages directly, supporting any custom filters (districts, price bands, keywords) or any of the 670+ Chinese cities.

## `operation` (type: `string`):

Which Lianjia data to scrape. 'Resale Housing List' pulls search results by city, 'Resale Housing Detail' pulls one full property by its unique house code. Ignored if custom Start URLs are provided.

## `cityId` (type: `string`):

City to scrape if no custom Start URLs are provided. Pick from the 12 major Chinese cities below or type any Lianjia/Beike city ID (e.g. 110000 = Beijing, 310000 = Shanghai).

## `houseCode` (type: `string`):

Required for 'Resale Housing Detail' operation. The numeric house code from a prior search result row.

## `maxPages` (type: `integer`):

Maximum pages to walk for resale housing list. Lianjia returns 30 rows per page. Set 0 for one page only, up to 100 for deep crawl.

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

Optional proxy settings. Leaving this disabled is recommended for optimal performance unless scraping more than 1,000 listings.

## Actor input object example

```json
{
  "startUrls": [],
  "operation": "resaleHousingList",
  "cityId": "110000",
  "maxPages": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "startUrls": [],
    "operation": "resaleHousingList",
    "cityId": "110000",
    "maxPages": 5,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

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

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "operation": "resaleHousingList",
    "cityId": "110000",
    "maxPages": 5,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/lianjia-real-estate-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "operation": "resaleHousingList",
  "cityId": "110000",
  "maxPages": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call getascraper/lianjia-real-estate-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Lianjia Scraper: Resale Listings, Price, Community",
        "description": "Scrape Lianjia (链家) resale listings across 12 major Chinese cities. Get total price, price per sqm, community, area, and layout. Perfect for Excel, Google Sheets, or any BI tool. Skip manual copy-pasting or expensive broker fees. $2.50 per 1,000 results.",
        "version": "0.0",
        "x-build-id": "zwSLrAeaPktzeVexy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~lianjia-real-estate-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-lianjia-real-estate-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/getascraper~lianjia-real-estate-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-lianjia-real-estate-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/getascraper~lianjia-real-estate-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-lianjia-real-estate-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": [
                    "operation"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional. List of custom Lianjia / Beike search result or property detail URLs, e.g. https://bj.ke.com/ershoufang/chaoyang/ or https://sh.ke.com/ershoufang/101137699747.html. If provided, the Actor will crawl these custom pages directly, supporting any custom filters (districts, price bands, keywords) or any of the 670+ Chinese cities.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "resaleHousingList",
                            "resaleHousingDetail"
                        ],
                        "type": "string",
                        "description": "Which Lianjia data to scrape. 'Resale Housing List' pulls search results by city, 'Resale Housing Detail' pulls one full property by its unique house code. Ignored if custom Start URLs are provided.",
                        "default": "resaleHousingList"
                    },
                    "cityId": {
                        "title": "City",
                        "enum": [
                            "110000",
                            "310000",
                            "440100",
                            "440300",
                            "330100",
                            "510100",
                            "320100",
                            "420100",
                            "610100",
                            "120000",
                            "500000",
                            "210100"
                        ],
                        "type": "string",
                        "description": "City to scrape if no custom Start URLs are provided. Pick from the 12 major Chinese cities below or type any Lianjia/Beike city ID (e.g. 110000 = Beijing, 310000 = Shanghai).",
                        "default": "110000"
                    },
                    "houseCode": {
                        "title": "Listing House Code",
                        "type": "string",
                        "description": "Required for 'Resale Housing Detail' operation. The numeric house code from a prior search result row."
                    },
                    "maxPages": {
                        "title": "Max Pages",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum pages to walk for resale housing list. Lianjia returns 30 rows per page. Set 0 for one page only, up to 100 for deep crawl.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy settings. Leaving this disabled is recommended for optimal performance unless scraping more than 1,000 listings.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
