# Booking.com Scraper (`agilevendor/booking-scraper`) Actor

Scrape hotels and prices from Booking.com by city or search URL. Returns separate price fields — nightly rate, price before discount, taxes and fees, and total — plus ratings, stars, location and coordinates. Filter by dates, stars, score and price. Residential proxy, honest run status.

- **URL**: https://apify.com/agilevendor/booking-scraper.md
- **Developed by:** [Agilevendor](https://apify.com/agilevendor) (community)
- **Categories:** Travel, E-commerce, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 hotel scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

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

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

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

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

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

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

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

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


# README

## Booking.com Scraper — hotels & prices

Scrape hotels and **room prices from Booking.com** by destination or search URL. Give it a city and dates, and the Actor returns a structured list of properties with **separate price fields** — nightly rate, strike-through price, taxes and fees, and the total for the stay — plus ratings, stars, location and coordinates. Built for travel analysts, price-monitoring and market research.

### What does this Booking.com scraper do?

For each property in the search results it collects:

- **Separate price fields** — `nightly`, `strikeout` (price before discount), `taxesAndFees`, and `total` for the whole stay, each as its own number, plus a `taxInclusive` flag so you always know whether tax is already in the total. This is the main reason to use it: most scrapers give you a single blended number you can't break down.
- **Property facts** — name, Booking.com URL, hotel id, address, city, country, latitude/longitude, and the main photo URL.
- **Ratings** — review score, number of reviews, star rating.
- **Honest run status** — if Booking blocks a request, the run does not silently report success with an empty result. The page is retried on a fresh session; you are not charged for blocked, empty pages.

### How to scrape hotel prices from Booking.com?

1. Enter a **destination** in *Search* (for example `Amsterdam`) — or paste Booking.com search-result URLs into *Start URLs*.
2. Set **check-in and check-out dates** (optional). Prices exist only for specific dates; if you leave the dates empty, the Actor uses a default stay ~30 days ahead so you still get live prices.
3. Choose how many hotels to collect with **Max hotels**, pick a currency, and optionally filter by stars, score, price range or property type. The Actor pages through the results for you and keeps collecting until it reaches *Max hotels* or the end of the result set. Booking.com caps any single result set at about 1000 properties; to go beyond that, run several narrower searches (by stars, price band, area or dates) — each returns its own set.
4. Run it. Results appear in the dataset and can be exported to JSON, CSV or Excel.

### Input

| Field | Description |
|---|---|
| `search` | Destination to search (city, region, landmark). Either this or `startUrls`. |
| `startUrls` | Booking.com search-result page URLs to scrape directly. |
| `maxItems` | How many hotels to collect (controls cost). |
| `checkIn` / `checkOut` | Stay dates (`YYYY-MM-DD`). Default to 30/32 days ahead if left empty, so prices are always available. |
| `adults` / `children` / `rooms` | Occupancy. |
| `currency` / `language` | Picked from a list. |
| `propertyTypes` | One or more accommodation types (hotels, apartments, hostels, …). |
| `starsCount` | One or more star ratings (1–5). |
| `minScore` | Minimum review score (6, 7, 8 or 9). |
| `minPrice` / `maxPrice` | Price-per-night range in the chosen currency. |
| `sortBy` | Result ordering (price, stars, distance, top reviewed, …). |
| `extractAdditionalHotelData` | Visit each hotel's own page to also collect the photo gallery, full description, facilities, per-room details and featured reviews. Loads one extra page per hotel and is billed as a separate event. |
| `proxyConfiguration` | Residential proxy (required — see below). |

Example:

```json
{
  "search": "Amsterdam",
  "checkIn": "2026-07-23",
  "checkOut": "2026-07-25",
  "maxItems": 25,
  "currency": "EUR"
}
````

### Output (one record per hotel)

![Booking.com Scraper output example](https://i.imgur.com/JL0umPy.png)

```json
{
  "name": "Hotel Continental Amsterdam",
  "url": "https://www.booking.com/hotel/nl/continentcentre.html",
  "hotelId": "10927",
  "propertyType": "hotel",
  "address": "Damrak 40 - 41",
  "city": "Amsterdam",
  "countryCode": "nl",
  "latitude": 52.3757,
  "longitude": 4.8962,
  "reviewScore": 6.3,
  "reviewsCount": 1450,
  "ratingLabel": "Pleasant",
  "stars": 1,
  "image": "https://cf.bstatic.com/xdata/images/hotel/square600/...",
  "price": {
    "nightly": 215.18,
    "strikeout": null,
    "taxesAndFees": 22,
    "total": 430.35,
    "currency": "EUR",
    "taxInclusive": false,
    "nights": 2,
    "genius": null
  },
  "rooms": [
    { "name": "Superior Double Room", "nbAllBeds": 1, "nbBedrooms": 0, "nbBathrooms": 0, "nbKitchens": 0, "area": null, "bedCount": 1 }
  ],
  "location": {
    "district": "Amsterdam City Centre",
    "distanceToCenter": "400 m from centre",
    "publicTransport": "Dam Square is within 200 metres",
    "isCentrallyLocated": true
  },
  "policies": {
    "freeCancellation": true,
    "noPrepayment": true,
    "petsAllowedForFree": false
  },
  "searchRank": 1,
  "scrapedAt": "2026-06-23T14:05:40.792Z",
  "customData": {}
}
```

Notes on prices: `nightly`/`strikeout`/`taxesAndFees`/`total` come straight from what Booking.com shows for your dates. When taxes are charged on top, `taxInclusive` is `false` and `taxesAndFees` holds the amount; when they are already included, `taxInclusive` is `true` and `taxesAndFees` is `null`. `genius` holds the Genius discount info when Booking applies one, otherwise `null`. Anything you pass in *Custom data* is attached to every record under `customData`.

`rooms`, `location` and `policies` are taken from the search result itself, so every record carries them at no extra cost.

#### Additional hotel data (optional)

The photo gallery, full facilities list, long description, per-room details and featured reviews live only on each hotel's own page. Turn on **`extractAdditionalHotelData`** to have the Actor visit each hotel page and add these fields to the record. This loads one extra page per hotel and is billed as a separate event, so enable it only when you need this depth.

When enabled, each record additionally contains:

```json
{
  "images": ["https://cf.bstatic.com/xdata/images/hotel/max1024x768/..."],
  "gallery": [
    { "url": "https://cf.bstatic.com/.../...jpg?k=...", "alt": "…", "type": "…" }
  ],
  "facilities": [
    { "name": "Safety deposit box", "slug": "safe_deposit_box", "groupId": 1 }
  ],
  "description": "This budget hotel is located opposite the Museum Square …",
  "rooms": [
    { "name": "Basic Twin Room", "description": "…", "roomSize": 15, "maxPersons": 2, "maxGuests": 2, "bathroomCount": 1, "bedCount": 1, "photos": ["https://…"] }
  ],
  "reviews": {
    "score": 7.2,
    "reviewsCount": 3138,
    "featured": [
      { "score": 9, "title": "…", "positive": "…", "negative": "…", "guestName": "…", "guestCountry": "…", "tripType": "…" }
    ]
  }
}
```

(In this mode `rooms` is enriched with the per-room detail — size, occupancy, bed configuration and room photos — from the hotel page.)

### Proxy and cost

Booking.com blocks datacenter IP addresses, so **residential proxies are required**. Proxy traffic is billed to the account that runs the Actor. The Actor is priced per scraped hotel, with no charge for blocked or empty pages.

### Is it legal to scrape Booking.com?

This Actor collects only **public, non-personal data** — hotel listings and prices shown to any visitor. It does not log in, bypass access controls, or collect personal data. Scraping public pages is generally lawful, but you are responsible for how you use the data and for complying with Booking.com's terms and applicable laws. This is not legal advice.

### Your feedback

This Actor is actively maintained. If you hit a bug, notice a change on Booking.com that breaks the output, or want a new field or option, open an issue on the <a href="https://console.apify.com/actors/EZbXAhVetAKUoClus/issues" target="_blank" rel="noopener"><strong>Issues</strong> tab</a> of this Actor — it goes straight to the developer.

# Actor input Schema

## `search` (type: `string`):

Destination to search on Booking.com (city, region, landmark). Either this or Start URLs is required.

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

Booking.com search result page URLs to scrape directly (alternative to Search).

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

How many hotels to collect. Controls how much you pay. Booking returns at most ~1000 per filter set.

## `checkIn` (type: `string`):

Check-in date (YYYY-MM-DD). If left empty, defaults to 30 days from today so prices are always available.

## `checkOut` (type: `string`):

Check-out date (YYYY-MM-DD). Must be after check-in. If left empty, defaults to 32 days from today.

## `adults` (type: `integer`):

Number of adults.

## `children` (type: `integer`):

Number of children.

## `rooms` (type: `integer`):

Number of rooms.

## `currency` (type: `string`):

Price currency.

## `language` (type: `string`):

Booking.com interface language.

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

Filter by accommodation type. Select one or more; empty = any.

## `sortBy` (type: `string`):

Order of results.

## `minScore` (type: `string`):

Only hotels with at least this review score.

## `starsCount` (type: `array`):

Filter by star rating. Select one or more; empty = any.

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

Minimum price per night in the selected currency. Leave empty for no minimum.

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

Maximum price per night in the selected currency. Leave empty for no maximum.

## `extractAdditionalHotelData` (type: `boolean`):

Visit each hotel's own page to add the photo gallery, full description, facilities, per-room details and featured reviews. This loads one extra page per hotel and is billed as a separate event, so the run costs more — leave off if you only need the search listing (name, price, score, location).

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

Booking.com blocks datacenter IPs, so residential proxies are required. Proxy traffic is billed to the account that runs the Actor.

## `customData` (type: `object`):

Any JSON object attached to every hotel record under the customData field.

## Actor input object example

```json
{
  "search": "Amsterdam",
  "maxItems": 10,
  "adults": 2,
  "children": 0,
  "rooms": 1,
  "currency": "EUR",
  "language": "en-gb",
  "propertyTypes": [],
  "starsCount": [],
  "extractAdditionalHotelData": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "customData": {}
}
```

# Actor output Schema

## `hotels` (type: `string`):

Collected hotels with separate price fields in the default dataset.

# 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 = {
    "search": "Amsterdam",
    "maxItems": 10,
    "adults": 2,
    "currency": "EUR"
};

// Run the Actor and wait for it to finish
const run = await client.actor("agilevendor/booking-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 = {
    "search": "Amsterdam",
    "maxItems": 10,
    "adults": 2,
    "currency": "EUR",
}

# Run the Actor and wait for it to finish
run = client.actor("agilevendor/booking-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 '{
  "search": "Amsterdam",
  "maxItems": 10,
  "adults": 2,
  "currency": "EUR"
}' |
apify call agilevendor/booking-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Booking.com Scraper",
        "description": "Scrape hotels and prices from Booking.com by city or search URL. Returns separate price fields — nightly rate, price before discount, taxes and fees, and total — plus ratings, stars, location and coordinates. Filter by dates, stars, score and price. Residential proxy, honest run status.",
        "version": "0.1",
        "x-build-id": "LVsPLbjAyqa5GX72z"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/agilevendor~booking-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-agilevendor-booking-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/agilevendor~booking-scraper/runs": {
            "post": {
                "operationId": "runs-sync-agilevendor-booking-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/agilevendor~booking-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-agilevendor-booking-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": {
                    "search": {
                        "title": "Search (destination)",
                        "type": "string",
                        "description": "Destination to search on Booking.com (city, region, landmark). Either this or Start URLs is required."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Booking.com search result page URLs to scrape directly (alternative to Search).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max hotels",
                        "minimum": 1,
                        "type": "integer",
                        "description": "How many hotels to collect. Controls how much you pay. Booking returns at most ~1000 per filter set.",
                        "default": 10
                    },
                    "checkIn": {
                        "title": "Check-in date",
                        "type": "string",
                        "description": "Check-in date (YYYY-MM-DD). If left empty, defaults to 30 days from today so prices are always available."
                    },
                    "checkOut": {
                        "title": "Check-out date",
                        "type": "string",
                        "description": "Check-out date (YYYY-MM-DD). Must be after check-in. If left empty, defaults to 32 days from today."
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of adults.",
                        "default": 2
                    },
                    "children": {
                        "title": "Children",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of children.",
                        "default": 0
                    },
                    "rooms": {
                        "title": "Rooms",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of rooms.",
                        "default": 1
                    },
                    "currency": {
                        "title": "Currency",
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "AUD",
                            "CAD",
                            "CHF",
                            "CNY",
                            "JPY",
                            "INR",
                            "BRL",
                            "MXN",
                            "AED",
                            "SEK",
                            "NOK",
                            "DKK",
                            "PLN",
                            "TRY",
                            "ZAR",
                            "SGD",
                            "HKD"
                        ],
                        "type": "string",
                        "description": "Price currency.",
                        "default": "USD"
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en-gb",
                            "en-us",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "pt",
                            "pl",
                            "ru",
                            "zh",
                            "ja",
                            "ko",
                            "ar",
                            "tr"
                        ],
                        "type": "string",
                        "description": "Booking.com interface language.",
                        "default": "en-gb"
                    },
                    "propertyTypes": {
                        "title": "Property types",
                        "type": "array",
                        "description": "Filter by accommodation type. Select one or more; empty = any.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "hotels",
                                "apartments",
                                "hostels",
                                "guesthouses",
                                "resorts",
                                "villas",
                                "bnb"
                            ],
                            "enumTitles": [
                                "Hotels",
                                "Apartments",
                                "Hostels",
                                "Guest houses",
                                "Resorts",
                                "Villas",
                                "Bed & breakfasts"
                            ]
                        },
                        "default": []
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "top_picks",
                            "price",
                            "price_high",
                            "stars_high",
                            "stars_low",
                            "distance",
                            "top_reviewed"
                        ],
                        "type": "string",
                        "description": "Order of results."
                    },
                    "minScore": {
                        "title": "Minimum review score",
                        "enum": [
                            "6",
                            "7",
                            "8",
                            "9"
                        ],
                        "type": "string",
                        "description": "Only hotels with at least this review score."
                    },
                    "starsCount": {
                        "title": "Star rating",
                        "type": "array",
                        "description": "Filter by star rating. Select one or more; empty = any.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5"
                            ],
                            "enumTitles": [
                                "1 star",
                                "2 stars",
                                "3 stars",
                                "4 stars",
                                "5 stars"
                            ]
                        },
                        "default": []
                    },
                    "minPrice": {
                        "title": "Min price per night",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price per night in the selected currency. Leave empty for no minimum."
                    },
                    "maxPrice": {
                        "title": "Max price per night",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price per night in the selected currency. Leave empty for no maximum."
                    },
                    "extractAdditionalHotelData": {
                        "title": "Extract additional hotel data",
                        "type": "boolean",
                        "description": "Visit each hotel's own page to add the photo gallery, full description, facilities, per-room details and featured reviews. This loads one extra page per hotel and is billed as a separate event, so the run costs more — leave off if you only need the search listing (name, price, score, location).",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Booking.com blocks datacenter IPs, so residential proxies are required. Proxy traffic is billed to the account that runs the Actor.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "customData": {
                        "title": "Custom data",
                        "type": "object",
                        "description": "Any JSON object attached to every hotel record under the customData field.",
                        "default": {}
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
