# Properstar – Global Property Listings, URLs & Agency Data (`abotapi/properstar-scraper`) Actor

Extract property listings from Properstar across global domains like .com, .co.uk, .ch, and .fr. Use search pages, listing URLs, or agency pages. Returns prices, multilingual descriptions, photos, floor plans, GPS coordinates, and agency details via Properstar’s data service.

- **URL**: https://apify.com/abotapi/properstar-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are 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

## Properstar Scraper

Extract property listings from Properstar across every country domain (.com, .co.uk, .ch, .fr, and more) in one actor. Paste a search results page, a single listing page, or an agency page, and get clean, structured records with prices, full multilingual descriptions, photos, floor plans, GPS coordinates, and agency details. The actor talks to Properstar's own data service, so it is fast, stable, and far cheaper to run than page-by-page scrapers.

### Why this scraper

- 30+ fields per listing, more than comparable tools on the Store.
- Works on any Properstar country domain, auto-detected from the URL you paste.
- Three input shapes in one actor: search pages, single listings, and agency or agent pages.
- Multilingual titles and descriptions captured per language, not just one.
- Full geo data (latitude, longitude, postcode, city, country) on every record.
- Photos, floor plans, property type, rooms, bedrooms, bathrooms, living and land area in both m2 and square feet.
- Optional full detail mode adds amenities, view types, construction year, and floor.
- Cost optimised: the heavy data pull runs over the low-cost connection pool, so a typical run is a fraction of the price of browser-based scrapers.

### Data you get

> Sample shape: values are illustrative placeholders, not from a live listing.

| Field | Example |
|-------|---------|
| id | "100000001" |
| url | "https://www.properstar.co.uk/listing/100000001" |
| transactionType | "Sell" |
| type | "Apartment" |
| subType | "Penthouse" |
| title | "Sample listing title" |
| description | "Full description text appears here." |
| titleByLanguage | { "en": "Sample listing title" } |
| price | 1000000 |
| currency | "GBP" |
| livingAreaSqm | 120 |
| landAreaSqm | 0 |
| livingAreaSqft | 1291 |
| rooms | 4 |
| bedrooms | 3 |
| bathrooms | 2 |
| floor | "3" |
| constructionYear | 2020 |
| address | "Sample Street 1" |
| city | "London" |
| postcode | "SW1" |
| countryISO | "GB" |
| latitude | 51.5000 |
| longitude | -0.1200 |
| pictures | ["https://images.example.com/0001.jpg"] |
| picturesCount | 12 |
| floorPlans | ["https://images.example.com/plan-0001.jpg"] |
| amenities | ["Balcony", "Parking"] |
| views | ["City"] |
| status | "Published" |
| energyRating | "C" |
| co2Rating | "B" |
| agencyId | 1000000 |
| agencyName | "Sample Agency" |
| agencyStatistics | { "numberOfListings": 0 } |
| publicationDate | "2026-01-01T00:00:00Z" |

### How to use

Basic search page:

```json
{
  "startUrls": ["https://www.properstar.co.uk/united-kingdom/london/buy/apartment-house"],
  "maxItems": 50,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
````

Search page with refinement filters:

```json
{
  "startUrls": ["https://www.properstar.com/spain/barcelona/buy/apartment-house"],
  "transactionType": "buy",
  "propertyTypes": ["apartment"],
  "minPrice": 300000,
  "maxPrice": 800000,
  "minBedrooms": 2,
  "maxItems": 200
}
```

Single listing with full detail (amenities, views, year, floor):

```json
{
  "startUrls": ["https://www.properstar.co.uk/listing/100000001"]
}
```

Agency inventory:

```json
{
  "startUrls": ["https://www.properstar.co.uk/agency/sample-agency/1000000"],
  "maxItems": 100
}
```

Multiple URLs in one run:

```json
{
  "startUrls": [
    "https://www.properstar.com/france/paris/rent/apartment",
    "https://www.properstar.ch/switzerland/geneva/buy/house"
  ],
  "maxItems": 300
}
```

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| startUrls | array | required | Properstar search, listing, or agency URLs from any country domain. |
| transactionType | string | "any" | Refine search URLs to "buy" or "rent". "any" keeps the URL setting. |
| propertyTypes | array | \[] | Restrict to apartment, house, land, commercial, office, parking, building, room. |
| minPrice / maxPrice | integer | none | Price range in the selected currency. |
| minBedrooms / maxBedrooms | integer | none | Bedroom range. |
| luxuryOnly | boolean | false | Only listings flagged as luxury. |
| enrichDetail | boolean | false | Fetch each listing's detail page for amenities, views, year, floor. |
| maxItems | integer | 20 | Maximum listings across all URLs. 0 = unlimited. |
| maxPagesPerUrl | integer | 200 | Maximum result pages per search/agency URL (25 listings per page). |
| maxResidentialMb | integer | 0 | Soft cap on Residential traffic before downgrading to the cheaper pool. 0 = no cap. |
| proxy | object | Residential | Connection settings. Pick a country to pin the exit region. |

### Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step **after** the scrape — the Apify dataset is never changed.

**What gets written to the connector:** a condensed, human-readable **summary** of each record — not the full JSON. Each item becomes one entry with a **title** and its key fields flattened to plain text. The **complete record always stays in the Apify dataset**.

1. Authorize a connector once under **Apify → Settings → Integrations** (Notion, Linear, Airtable, or Apify).
2. Select it in the **"Pipe results into your apps"** input field. (If the picker is empty, you haven't authorized a connector yet.)
3. For **Notion**, also set `notionParentPageUrl` to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

### Output example

> Sample shape: values are illustrative placeholders, not from a live listing.

```json
{
  "id": "100000001",
  "url": "https://www.properstar.co.uk/listing/100000001",
  "class": "PropertyListing",
  "transactionType": "Sell",
  "type": "Apartment",
  "subType": "Penthouse",
  "title": "Sample listing title",
  "description": "Full description text appears here.",
  "titleByLanguage": { "en": "Sample listing title" },
  "descriptionByLanguage": { "en": "Full description text appears here." },
  "price": 1000000,
  "currency": "GBP",
  "livingAreaSqm": 120,
  "livingAreaSqft": 1291,
  "rooms": 4,
  "bedrooms": 3,
  "bathrooms": 2,
  "floor": "3",
  "constructionYear": 2020,
  "address": "Sample Street 1",
  "city": "London",
  "postcode": "SW1",
  "countryISO": "GB",
  "latitude": 51.5000,
  "longitude": -0.1200,
  "pictures": ["https://images.example.com/0001.jpg"],
  "picturesCount": 12,
  "floorPlans": ["https://images.example.com/plan-0001.jpg"],
  "amenities": ["Balcony", "Parking"],
  "views": ["City"],
  "agencyId": 1000000,
  "agencyName": "Sample Agency",
  "agencySlug": "sample-agency",
  "agencyStatistics": { "numberOfListings": 0 },
  "publicationDate": "2026-01-01T00:00:00Z"
}
```

### Plan requirement

The one-time connection setup needs a Residential proxy, which is included on the Apify Starter plan and above. The bulk data extraction then runs automatically over the lower-cost connection pool to keep your costs down. On the free plan the connection setup may not complete, so a paid plan is recommended. Pick a proxy country to pin the exit region, or leave it unset to rotate automatically.

# Actor input Schema

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

Paste Properstar URLs from any country domain (.com, .co.uk, .ch, .fr, ...). Supported: search result pages (e.g. /united-kingdom/london/buy/apartment-house), single listing pages (/listing/{id}), and agency or agent pages (/agency/{slug}/{id}). Multiple URLs are processed in order. The filter fields below refine search-page URLs.

## `transactionType` (type: `string`):

Refine search-page URLs to buy or rent. 'Any' keeps the URL's own setting.

## `propertyTypes` (type: `array`):

Restrict to these property types. Leave empty to use the URL's own types.

## `minPrice` (type: `integer`):

Minimum price in the selected currency.

## `maxPrice` (type: `integer`):

Maximum price in the selected currency.

## `minBedrooms` (type: `integer`):

Minimum number of bedrooms.

## `maxBedrooms` (type: `integer`):

Maximum number of bedrooms.

## `luxuryOnly` (type: `boolean`):

Return only listings flagged as luxury.

## `enrichDetail` (type: `boolean`):

Fetch each listing's detail page for amenities, AI-extracted views, construction year and floor. Slower and adds a per-listing surcharge. Listing-page URLs always include full detail.

## `maxItems` (type: `integer`):

Maximum listings to return across all URLs. Set 0 for unlimited.

## `maxPagesPerUrl` (type: `integer`):

Maximum result pages to walk per search/agency URL (25 listings per page). The site allows up to 2000 listings per search.

## `maxResidentialMb` (type: `integer`):

Soft cap on Residential proxy traffic. When reached, the actor downgrades to the lower-cost connection pool for the rest of the run. 0 = no cap.

## `proxy` (type: `object`):

Connection settings. The one-time connection setup requires a Residential exit (recommended default). The bulk data extraction then runs automatically over the lower-cost Datacenter pool. Pick a country to pin the exit region; leave it unset to rotate.

## `mcpConnectors` (type: `array`):

Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

## `notionParentPageUrl` (type: `string`):

URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.properstar.co.uk/united-kingdom/london/buy/apartment-house"
  ],
  "transactionType": "any",
  "propertyTypes": [],
  "luxuryOnly": false,
  "enrichDetail": false,
  "maxItems": 20,
  "maxPagesPerUrl": 200,
  "maxResidentialMb": 0,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxNotifyListings": 50
}
```

# Actor output Schema

## `overview` (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": [
        "https://www.properstar.co.uk/united-kingdom/london/buy/apartment-house"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/properstar-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": ["https://www.properstar.co.uk/united-kingdom/london/buy/apartment-house"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/properstar-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": [
    "https://www.properstar.co.uk/united-kingdom/london/buy/apartment-house"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call abotapi/properstar-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Properstar – Global Property Listings, URLs & Agency Data",
        "description": "Extract property listings from Properstar across global domains like .com, .co.uk, .ch, and .fr. Use search pages, listing URLs, or agency pages. Returns prices, multilingual descriptions, photos, floor plans, GPS coordinates, and agency details via Properstar’s data service.",
        "version": "1.0",
        "x-build-id": "ctmSK6Xbm6dUZDGVB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~properstar-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-properstar-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/abotapi~properstar-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-properstar-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/abotapi~properstar-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-properstar-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Properstar URLs",
                        "type": "array",
                        "description": "Paste Properstar URLs from any country domain (.com, .co.uk, .ch, .fr, ...). Supported: search result pages (e.g. /united-kingdom/london/buy/apartment-house), single listing pages (/listing/{id}), and agency or agent pages (/agency/{slug}/{id}). Multiple URLs are processed in order. The filter fields below refine search-page URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "transactionType": {
                        "title": "Transaction type",
                        "enum": [
                            "any",
                            "buy",
                            "rent"
                        ],
                        "type": "string",
                        "description": "Refine search-page URLs to buy or rent. 'Any' keeps the URL's own setting.",
                        "default": "any"
                    },
                    "propertyTypes": {
                        "title": "Property types",
                        "type": "array",
                        "description": "Restrict to these property types. Leave empty to use the URL's own types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "apartment",
                                "house",
                                "land",
                                "commercial",
                                "office",
                                "parking",
                                "building",
                                "room"
                            ],
                            "enumTitles": [
                                "Apartment",
                                "House",
                                "Land",
                                "Commercial",
                                "Office",
                                "Parking",
                                "Building",
                                "Room"
                            ]
                        },
                        "default": []
                    },
                    "minPrice": {
                        "title": "Min price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price in the selected currency."
                    },
                    "maxPrice": {
                        "title": "Max price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price in the selected currency."
                    },
                    "minBedrooms": {
                        "title": "Min bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum number of bedrooms."
                    },
                    "maxBedrooms": {
                        "title": "Max bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of bedrooms."
                    },
                    "luxuryOnly": {
                        "title": "Luxury listings only",
                        "type": "boolean",
                        "description": "Return only listings flagged as luxury.",
                        "default": false
                    },
                    "enrichDetail": {
                        "title": "Fetch full detail (amenities, views, year, floor)",
                        "type": "boolean",
                        "description": "Fetch each listing's detail page for amenities, AI-extracted views, construction year and floor. Slower and adds a per-listing surcharge. Listing-page URLs always include full detail.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max listings",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listings to return across all URLs. Set 0 for unlimited.",
                        "default": 20
                    },
                    "maxPagesPerUrl": {
                        "title": "Max pages per URL",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum result pages to walk per search/agency URL (25 listings per page). The site allows up to 2000 listings per search.",
                        "default": 200
                    },
                    "maxResidentialMb": {
                        "title": "Residential traffic budget (MB)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Soft cap on Residential proxy traffic. When reached, the actor downgrades to the lower-cost connection pool for the rest of the run. 0 = no cap.",
                        "default": 0
                    },
                    "proxy": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Connection settings. The one-time connection setup requires a Residential exit (recommended default). The bulk data extraction then runs automatically over the lower-cost Datacenter pool. Pick a country to pin the exit region; leave it unset to rotate.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
