# casa.it Scraper — Italian Real Estate Listings & Prices (`studio-amba/casa-it-scraper`) Actor

Scrape real estate listings, prices, and property details from casa.it, one of Italy's leading property portals. Supports sale and rent, filtering by city, property category, and price range.

- **URL**: https://apify.com/studio-amba/casa-it-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 result 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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## casa.it Scraper

Extract real estate listings from [casa.it](https://www.casa.it) — one of Italy's leading property portals — with prices, surface area, energy class, agency details, and GPS coordinates.

### What is casa.it Scraper?

**casa.it Scraper** taps into one of Italy's most-used real estate platforms and delivers structured listing data straight from casa.it's own search results. Italy's property market spans everything from Milan apartments to Tuscan countryside homes, and casa.it is where thousands of agencies list their inventory. This scraper gives you programmatic access to that data.

- **Analyze Italian city markets:** extract asking prices per square meter across Roma, Milano, Napoli, and every other Italian comune to track where prices are moving
- **Monitor commercial and land listings:** beyond residential, casa.it also carries offices, warehouses, shops, and land — all covered by this scraper's property category filter
- **Automate relocation research:** track new listings the moment they appear, filtered by city, transaction type, and price
- **Build investment dashboards:** combine price, surface, energy class, and GPS data to visualize the Italian property market geographically
- **Feed comparison and CRM tools:** structured data with rooms, bathrooms, surface, and agency contacts makes it easy to enrich downstream systems

The scraper reads casa.it's own server-rendered search state directly — no manual DOM scraping of unstable CSS selectors — making the extraction resilient to front-end redesigns.

### What data does casa.it Scraper extract?

- **Title** — property listing title (e.g., "Quadrilocale in Via dei Basaldella, Acilia")
- **Price** — asking price (sale) or monthly rent (rent) in EUR
- **Property type** — casa.it's own category (appartamento, villa, negozio-locale-commerciale, etc.)
- **Listing type** — sale, rent, or auction
- **Address, city, province** — location details
- **GPS coordinates** — latitude and longitude for mapping
- **Rooms** and **bathrooms**
- **Living surface** in square meters
- **Energy class** — Italian EPC rating (A4 to G)
- **Floor** — e.g., "3° piano"
- **All photos** — full list of high-resolution image URLs
- **Description** — full property description text
- **Agency name** and **agency profile URL**
- **Listing ID** and **direct URL** to the listing on casa.it

### How to scrape casa.it data

Configure the scraper through the Apify Console or via the API. The city input is the only required decision — leave everything else at defaults for a straightforward search.

#### Input options

| Input | Type | Default | Description |
|-------|------|---------|-------------|
| **City** | string | `Roma` | Italian city or town (e.g., `Roma`, `Milano`, `Napoli`) |
| **Transaction Type** | `vendita` / `affitto` | `vendita` | Sale or rent |
| **Property Category** | select | `residenziale` | Residential, commercial, land, garage/parking, offices, warehouses, buildings, shops |
| **Min Price** | integer | — | Minimum price in EUR (applied client-side after fetch) |
| **Max Price** | integer | — | Maximum price in EUR (applied client-side after fetch) |
| **Max Results** | integer | `100` | Maximum listings to return (1 – 180, see Limitations) |
| **Bright Data API Key** | string | — | Optional: use your own Bright Data Web Unlocker key |
| **Proxy Configuration** | object | — | Legacy field, kept for schema compatibility (unused — see below) |

#### Tips for best results

- **Combine city + property category** for targeted datasets — e.g., commercial listings for rent in Milano
- **Price filters are approximate by design.** casa.it's search UI doesn't expose a working server-side price query parameter, so the scraper fetches full pages and filters client-side. If you need a large filtered dataset, request more `maxResults` than you need and let the filter trim it down
- **180 is the practical ceiling per search.** casa.it's `robots.txt` only allows automated access to pages 1 through 9 (20 listings per page). For bigger datasets, run multiple searches split by property category or a narrower city/district

### Output

Results are stored in a dataset you can download as JSON, CSV, Excel, XML, or HTML from the Apify Console.

#### JSON example

```json
{
    "title": "Quadrilocale in Via dei Basaldella, Acilia",
    "price": 219000,
    "currency": "EUR",
    "url": "https://www.casa.it/immobili/54404734/",
    "scrapedAt": "2026-07-14T20:50:00.000Z",
    "listingType": "sale",
    "listingId": "54404734",
    "propertyType": "appartamento",
    "address": "Via dei Basaldella",
    "city": "Roma",
    "province": "Roma",
    "latitude": 41.772326,
    "longitude": 12.351073,
    "rooms": 4,
    "bathrooms": 2,
    "surface": 100,
    "epcScore": "C",
    "floor": "3° piano",
    "imageUrl": "https://images-1.casa.it/800x600/listing/0/55/7c/11/819620889.jpg",
    "imageUrls": [
        "https://images-1.casa.it/800x600/listing/0/55/7c/11/819620889.jpg",
        "https://images-1.casa.it/800x600/listing/0/de/e2/7d/819620911.jpg"
    ],
    "description": "ACILIA - VIA DEI BASALDELLA QUADRILOCALE RISTRUTTURATO con ASCENSORE, POSTO AUTO ESCLUSIVO...",
    "agencyName": "RE/MAX AUREA",
    "agencyUrl": "https://www.casa.it/agenzie/remax-aurea-25332/"
}
````

### How much does it cost to scrape casa.it?

casa.it sits behind DataDome bot protection, so requests go through a managed Web Unlocker rather than a plain HTTP request. Each search page returns 20 listings in a single fetch (no separate detail-page requests needed), which keeps the per-listing cost low relative to other anti-bot-protected real estate sites.

| Scenario | Est. items per request | Notes |
|----------|------------------------|-------|
| 20 listings | 1 page fetch | ~10-20 seconds |
| 100 listings | 5 page fetches | ~1 min |
| 180 listings (max per search) | 9 page fetches | ~2 min |

### Can I integrate casa.it Scraper with other apps?

Yes. casa.it Scraper connects with any tool through [Apify integrations](https://apify.com/integrations):

- **Google Sheets** — export Italian property data to a live spreadsheet, updated on every run
- **Slack / Email** — get instant alerts when new listings appear in your target price range
- **Zapier / Make** — build automation workflows triggered by new listings
- **Airtable** — create a filterable Italian property database with photos and GPS pins
- **REST API** — call the scraper on demand from any programming language
- **Webhooks** — receive a callback when scraping finishes to trigger downstream processing

### Can I use casa.it Scraper as an API?

Yes. Use the [Apify API](https://docs.apify.com/api/v2) to run casa.it Scraper programmatically.

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/casa-it-scraper").call(run_input={
    "city": "Milano",
    "transactionType": "vendita",
    "propertyType": "residenziale",
    "maxPrice": 400000,
    "maxResults": 100,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} — €{item['price']:,} — {item.get('surface', '?')} m²")
```

**JavaScript:**

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('studio-amba/casa-it-scraper').call({
    city: 'Napoli',
    transactionType: 'affitto',
    maxResults: 60,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(`${item.title} — €${item.price.toLocaleString()}`));
```

Check the [API tab](https://apify.com/studio-amba/casa-it-scraper/api) for full documentation.

### FAQ

#### What is casa.it?

casa.it is one of Italy's leading real estate portals, listing residential, commercial, and land properties for sale and rent across the country. Thousands of Italian real estate agencies publish their inventory on the platform.

#### How does casa.it Scraper work?

The scraper fetches casa.it search result pages and reads the structured listing data embedded in the page's own server-side rendering state — the same data the site's React front end uses to render the results grid. This avoids fragile CSS-selector scraping and captures fields (GPS coordinates, energy class, agency IDs) that would otherwise require a separate detail-page request per listing.

#### Why does the scraper use Bright Data instead of a regular proxy?

casa.it is protected by DataDome, a bot-detection service that returns a CAPTCHA challenge page to plain HTTP requests and standard datacenter/residential proxies (confirmed: direct requests return HTTP 403 with a DataDome challenge body). The scraper routes requests through Bright Data's Web Unlocker to get past this and receive the real page content.

#### Is it legal to scrape casa.it?

This scraper extracts publicly available property listing data that casa.it displays to all visitors. The data is factual real estate information (prices, addresses, property characteristics) published by agencies. Use the data responsibly and in compliance with Italian and EU regulations.

#### Why is there a 180-listing cap per search?

casa.it's `robots.txt` explicitly allows automated fetching of search result pages 1 through 9 only (`Allow: *?page=2$` through `*?page=9$`, with everything else under `*?page=*` disallowed). At 20 listings per page, that's a hard ceiling of 180 listings for any single city + category + transaction-type combination. Run separate searches (different cities, or split residential vs. commercial) to build a larger dataset.

#### Why don't min/max price filters change how many pages get fetched?

casa.it's own price filter isn't wired to a documented, working query parameter — testing confirmed that adding a price parameter to the URL gets recorded in the page's internal filter state but does **not** change the actual search results returned by the backend. To keep the filter reliable, the scraper fetches the requested pages normally and filters listings by price after parsing, rather than trusting an unverified URL parameter.

### Limitations

- **Italy only.** casa.it exclusively covers the Italian property market.
- **180 listings per search.** See the FAQ above — this is a `robots.txt`-enforced ceiling, not an arbitrary choice. Split large jobs across multiple city/category runs.
- **No historical pricing.** The scraper captures the current asking price at the time of scraping. Schedule recurring runs and compare datasets to track price changes.
- **Postal code not available.** casa.it's search results don't include a postal code field for the listing itself (only for the listing agency's own office address), so `postalCode` is omitted from output.
- **Price filters are client-side.** See the FAQ above — min/max price trims the fetched pages rather than querying a smaller result set server-side.
- **Photo URLs** point to casa.it's CDN and may expire after the listing is removed. Download images promptly if you need them long-term.

### Other real estate scrapers

Build a European property dataset by combining casa.it Scraper with these actors:

- 🇱🇺 [atHome.lu Scraper](https://apify.com/studio-amba/athome-scraper) — Luxembourg real estate listings
- 🇪🇸 [Idealista Scraper](https://apify.com/studio-amba/idealista-scraper) — Spanish real estate listings
- 🇵🇹 [Imovirtual Scraper](https://apify.com/studio-amba/imovirtual-scraper) — Portuguese real estate listings
- 🇩🇪 [AutoScout24 Scraper](https://apify.com/studio-amba/autoscout24-scraper) — European used car listings (same anti-bot pattern)

### Your feedback

Have a question, found a bug, or want a new feature? Open an issue on the [Issues tab](https://apify.com/studio-amba/casa-it-scraper/issues). We actively maintain this scraper and respond to all reports.

### Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs,
deduplication, delta detection, and delivery to your inbox, Google Sheets,
or API — maintenance included. We can also build a custom version with your
exact fields and filters, or combine multiple sources into one feed.

See [studioamba.dev/services](https://studioamba.dev/services/) or email
<hello@studioamba.dev> for a free data sample.
We maintain 300+ European web scrapers and answer within one business day.

# Actor input Schema

## `city` (type: `string`):

Italian city or town to search (e.g., 'Roma', 'Milano', 'Napoli').

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

Type of transaction to search for.

## `propertyType` (type: `string`):

casa.it top-level property category. Leave default for residential homes/apartments.

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

Minimum price filter (EUR). Applied after fetch — casa.it doesn't expose a working server-side price filter param.

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

Maximum price filter (EUR). Applied after fetch — casa.it doesn't expose a working server-side price filter param.

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

Maximum number of listings to return. casa.it's robots.txt only allows fetching pages 1-9 (20 listings each), capping a single search at 180 listings.

## `brightDataApiKey` (type: `string`):

Optional: your own Bright Data API key for the Web Unlocker zone. Leave empty to use the built-in unlocking service.

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

Legacy field, kept for schema compatibility. casa.it sits behind DataDome, so fetching goes through the built-in Bright Data Web Unlocker instead — this is ignored.

## Actor input object example

```json
{
  "city": "Roma",
  "transactionType": "vendita",
  "propertyType": "residenziale",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IT"
  }
}
```

# 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 = {
    "city": "Roma",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IT"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/casa-it-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 = {
    "city": "Roma",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IT",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/casa-it-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 '{
  "city": "Roma",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IT"
  }
}' |
apify call studio-amba/casa-it-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "casa.it Scraper — Italian Real Estate Listings & Prices",
        "description": "Scrape real estate listings, prices, and property details from casa.it, one of Italy's leading property portals. Supports sale and rent, filtering by city, property category, and price range.",
        "version": "0.1",
        "x-build-id": "re6Z4QvMXkN6CC0PH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~casa-it-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-casa-it-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/studio-amba~casa-it-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-casa-it-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/studio-amba~casa-it-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-casa-it-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",
                "properties": {
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "Italian city or town to search (e.g., 'Roma', 'Milano', 'Napoli').",
                        "default": "Roma"
                    },
                    "transactionType": {
                        "title": "Transaction Type",
                        "enum": [
                            "vendita",
                            "affitto"
                        ],
                        "type": "string",
                        "description": "Type of transaction to search for.",
                        "default": "vendita"
                    },
                    "propertyType": {
                        "title": "Property Category",
                        "enum": [
                            "residenziale",
                            "commerciale",
                            "terreni",
                            "box-posti-auto",
                            "uffici",
                            "capannoni",
                            "edifici-palazzi",
                            "locali"
                        ],
                        "type": "string",
                        "description": "casa.it top-level property category. Leave default for residential homes/apartments.",
                        "default": "residenziale"
                    },
                    "minPrice": {
                        "title": "Min Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price filter (EUR). Applied after fetch — casa.it doesn't expose a working server-side price filter param."
                    },
                    "maxPrice": {
                        "title": "Max Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price filter (EUR). Applied after fetch — casa.it doesn't expose a working server-side price filter param."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 180,
                        "type": "integer",
                        "description": "Maximum number of listings to return. casa.it's robots.txt only allows fetching pages 1-9 (20 listings each), capping a single search at 180 listings.",
                        "default": 100
                    },
                    "brightDataApiKey": {
                        "title": "Bright Data API Key (optional)",
                        "type": "string",
                        "description": "Optional: your own Bright Data API key for the Web Unlocker zone. Leave empty to use the built-in unlocking service."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Legacy field, kept for schema compatibility. casa.it sits behind DataDome, so fetching goes through the built-in Bright Data Web Unlocker instead — this is ignored."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
