# Booking Hotel Photos Scraper (`automation-lab/booking-hotel-photos-scraper`) Actor

Extract full public Booking.com hotel galleries into structured photo rows with image URLs, captions, hotel IDs, categories, and order.

- **URL**: https://apify.com/automation-lab/booking-hotel-photos-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Booking Hotel Photos Scraper

Extract full public photo galleries from Booking.com hotel pages. This actor accepts direct Booking.com hotel URLs and returns one dataset row per public image, including the hotel name, hotel ID, high-resolution image URL, thumbnail URL, caption, category, order, and scrape timestamp.

### What does Booking Hotel Photos Scraper do?

Booking Hotel Photos Scraper turns public Booking.com hotel gallery pages into a structured image dataset. Instead of copying thumbnails manually, you can provide one or many hotel URLs and export clean rows for every gallery image the actor can see.

### Who is it for?

- 🏨 Hotel content teams checking how property media appears on Booking.com
- ✈️ Travel affiliate publishers building destination pages
- 🧑‍💻 OTA data teams monitoring property media coverage
- 📊 Market researchers comparing visual merchandising across hotels
- 🔎 SEO teams auditing hotel image assets and captions

### Why use this actor?

Booking.com hotel pages often contain many public property photos, but broad hotel scrapers usually return only one representative image. This focused scraper is built for photo workflows where every gallery image matters.

### What data can you extract?

| Field | Description |
| --- | --- |
| hotelUrl | Booking.com hotel URL supplied in the input |
| hotelName | Hotel name detected on the page |
| hotelId | Booking hotel identifier when available |
| photoUrl | Normalized image URL |
| highResPhotoUrl | Best high-resolution URL the actor can derive |
| thumbnailUrl | Original thumbnail/source image URL when different |
| caption | Alt text, title, or gallery caption when available |
| category | Gallery category or label when available |
| photoOrder | Photo order in the extracted gallery |
| sourcePageUrl | Actual page URL where the image was observed |
| imageHost | Image host, usually bstatic.com |
| width / height | Dimensions parsed from the Booking image URL when available |
| scrapedAt | ISO timestamp for the extraction |

### How much does it cost to scrape Booking hotel photos?

The actor uses pay-per-event pricing: a small run-start charge plus a per-photo charge for each saved dataset row. Keep `maxItems` low for first tests, then increase it for larger gallery exports after confirming the output matches your workflow.

### How to use Booking Hotel Photos Scraper

1. Open the actor on Apify.
2. Paste one or more direct Booking.com hotel URLs into **Booking hotel URLs**.
3. Set **Maximum photos total** and **Maximum photos per hotel**.
4. Run the actor.
5. Export the dataset as JSON, CSV, Excel, or through the Apify API.

### Input example

```json
{
  "startUrls": [
    { "url": "https://www.booking.com/hotel/gb/the-savoy.html" },
    { "url": "https://www.booking.com/hotel/us/the-manhattan-at-times-square.html" }
  ],
  "maxItems": 100,
  "maxPhotosPerHotel": 80,
  "language": "en-us",
  "proxyCountryCode": "US",
  "useResidentialProxy": false
}
````

### Output example

```json
{
  "hotelUrl": "https://www.booking.com/hotel/gb/the-savoy.html?lang=en-us",
  "hotelName": "The Savoy",
  "hotelId": "280149",
  "photoUrl": "https://r-xx.bstatic.com/xdata/images/hotel/max1280x900/example.webp",
  "highResPhotoUrl": "https://r-xx.bstatic.com/xdata/images/hotel/max1280x900/example.webp",
  "thumbnailUrl": "https://r-xx.bstatic.com/xdata/images/hotel/608x352/example.webp",
  "caption": "The Savoy",
  "category": "main",
  "photoOrder": 1,
  "sourcePageUrl": "https://www.booking.com/hotel/gb/the-savoy.html",
  "imageHost": "r-xx.bstatic.com",
  "width": 608,
  "height": 352,
  "scrapedAt": "2026-06-26T02:41:25.988Z"
}
```

### Supported URLs

Use direct Booking.com hotel detail URLs such as:

- `https://www.booking.com/hotel/gb/the-savoy.html`
- `https://www.booking.com/hotel/us/the-manhattan-at-times-square.html`
- `https://www.booking.com/hotel/fr/ritz-paris.html`

### Current limitations

The v1 actor intentionally avoids broad Booking.com search crawling. It does not discover hotels from a city query. Use our related Booking.com Scraper for search and hotel discovery, then pass selected hotel URLs into this photo scraper.

### Tips for best results

- Use direct hotel pages, not search result pages.
- Start with 20–100 photos to validate output and cost.
- Keep `useResidentialProxy` disabled first; enable it only if Booking.com challenges your URLs.
- Use English `language: "en-us"` when you want English hotel names and captions.
- Increase `maxPhotosPerHotel` for large luxury hotels with extensive galleries.

### Integrations

You can connect the actor to:

- Google Sheets for hotel media QA lists
- Airtable for travel content planning
- S3 or GCS for downstream image workflows
- Data warehouses for competitive visual analysis
- Apify webhooks for recurring hotel photo monitoring

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/booking-hotel-photos-scraper').call({
  startUrls: [{ url: 'https://www.booking.com/hotel/gb/the-savoy.html' }],
  maxItems: 50
});
console.log(run.defaultDatasetId);
```

### API usage with Python

```python
from apify_client import ApifyClient

client = ApifyClient(token='YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/booking-hotel-photos-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.booking.com/hotel/gb/the-savoy.html'}],
    'maxItems': 50,
})
print(run['defaultDatasetId'])
```

### API usage with cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~booking-hotel-photos-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://www.booking.com/hotel/gb/the-savoy.html"}],"maxItems":50}'
```

### MCP usage

Use this actor from Claude Code or Claude Desktop through Apify MCP:

`https://mcp.apify.com/?tools=automation-lab/booking-hotel-photos-scraper`

Add the Apify MCP server in Claude Code:

```bash
claude mcp add apify "https://mcp.apify.com/?tools=automation-lab/booking-hotel-photos-scraper"
```

Claude Desktop JSON configuration example:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=automation-lab/booking-hotel-photos-scraper"
    }
  }
}
```

Example prompts:

- “Scrape all public photos from these Booking.com hotel URLs and return a CSV.”
- “Monitor whether this hotel added new Booking.com gallery images.”
- “Compare the number of gallery photos for these competitor hotels.”

### Legal and ethical use

This actor extracts publicly visible hotel photo metadata and public image URLs from Booking.com pages. You are responsible for using the output in accordance with Booking.com terms, copyright law, and applicable data protection rules. Do not use the actor for private account data or restricted content.

### Legality checklist

Use the scraper only for public hotel pages, respect Booking.com terms, avoid republishing copyrighted images without permission, and keep crawl volumes reasonable for your legitimate business workflow.

### Troubleshooting

#### Why did I get zero photos?

Check that the input URL is a direct Booking.com hotel detail page. If the URL is valid but Booking.com challenges the run, enable `useResidentialProxy` and try a smaller `maxItems` value.

#### Why are captions missing?

Booking.com does not expose captions for every image. The actor fills captions from alt text, title attributes, or gallery labels when available.

### Related scrapers

- [Booking.com Scraper](https://apify.com/automation-lab/booking-scraper) — discover hotels by destination and extract prices, ratings, availability, and one representative photo.
- [Booking Reviews Scraper](https://apify.com/automation-lab/booking-reviews-scraper) — extract Booking.com guest reviews.

### FAQ

#### Can it download image files?

The actor returns image URLs. You can use the dataset URLs in your own downloader, storage pipeline, or image processing workflow.

#### Can it scrape search results?

Not in v1. This actor is URL-based to keep the workflow focused, reliable, and cost-controlled.

#### Can I run it on hundreds of hotels?

Yes, but start with a small sample and scale gradually. Use `maxItems` and `maxPhotosPerHotel` to control spend.

#### Does it require login?

No. It is designed for public Booking.com hotel pages only.

### Changelog

- 0.1 — Initial URL-based Booking.com hotel photo gallery extractor.

### Dataset quality notes

The actor de-duplicates images by normalized high-resolution URL. Thumbnail URLs are preserved when the source image differs from the normalized URL. Width and height are parsed from Booking/bstatic URL patterns when present.

### Operational notes

Booking.com may vary page layout by locale, region, and WAF state. The actor uses Playwright and optional Apify Proxy settings to load public hotel pages and extract gallery images from rendered DOM content.

### Need broader hotel data?

Use Booking.com Scraper first to discover hotels for a destination, export hotel URLs, then feed those URLs into this actor for full-gallery media extraction.

# Actor input Schema

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

Direct Booking.com hotel detail page URLs to scrape, for example https://www.booking.com/hotel/gb/the-savoy.html. Search result pages are not supported in v1.

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

Maximum number of photo rows to emit across all hotel URLs. Keep low for first tests; raise for larger gallery exports.

## `maxPhotosPerHotel` (type: `integer`):

Maximum photo rows to save for each hotel URL.

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

Booking.com locale/language to request while loading hotel pages.

## `proxyCountryCode` (type: `string`):

Two-letter country code for Apify Proxy sessions. US works well for English Booking pages.

## `useResidentialProxy` (type: `boolean`):

Use residential proxy if Booking.com challenges the default datacenter/proxy session for your URLs. Keep disabled first to reduce costs.

## `pageWaitMs` (type: `integer`):

Extra wait time after each hotel page loads so Booking can render lazy gallery images.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.booking.com/hotel/gb/the-savoy.html"
    }
  ],
  "maxItems": 20,
  "maxPhotosPerHotel": 20,
  "language": "en-us",
  "proxyCountryCode": "US",
  "useResidentialProxy": false,
  "pageWaitMs": 2500
}
```

# 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": [
        {
            "url": "https://www.booking.com/hotel/gb/the-savoy.html"
        }
    ],
    "maxItems": 20,
    "maxPhotosPerHotel": 20,
    "language": "en-us",
    "proxyCountryCode": "US",
    "useResidentialProxy": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/booking-hotel-photos-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": [{ "url": "https://www.booking.com/hotel/gb/the-savoy.html" }],
    "maxItems": 20,
    "maxPhotosPerHotel": 20,
    "language": "en-us",
    "proxyCountryCode": "US",
    "useResidentialProxy": False,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/booking-hotel-photos-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": [
    {
      "url": "https://www.booking.com/hotel/gb/the-savoy.html"
    }
  ],
  "maxItems": 20,
  "maxPhotosPerHotel": 20,
  "language": "en-us",
  "proxyCountryCode": "US",
  "useResidentialProxy": false
}' |
apify call automation-lab/booking-hotel-photos-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Booking Hotel Photos Scraper",
        "description": "Extract full public Booking.com hotel galleries into structured photo rows with image URLs, captions, hotel IDs, categories, and order.",
        "version": "0.1",
        "x-build-id": "nwjyL3dTp80gX2qF6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~booking-hotel-photos-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-booking-hotel-photos-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/automation-lab~booking-hotel-photos-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-booking-hotel-photos-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/automation-lab~booking-hotel-photos-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-booking-hotel-photos-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": "Booking hotel URLs",
                        "type": "array",
                        "description": "Direct Booking.com hotel detail page URLs to scrape, for example https://www.booking.com/hotel/gb/the-savoy.html. Search result pages are not supported in v1.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum photos total",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of photo rows to emit across all hotel URLs. Keep low for first tests; raise for larger gallery exports.",
                        "default": 100
                    },
                    "maxPhotosPerHotel": {
                        "title": "Maximum photos per hotel",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum photo rows to save for each hotel URL.",
                        "default": 200
                    },
                    "language": {
                        "title": "Booking language",
                        "type": "string",
                        "description": "Booking.com locale/language to request while loading hotel pages.",
                        "default": "en-us"
                    },
                    "proxyCountryCode": {
                        "title": "Proxy country code",
                        "type": "string",
                        "description": "Two-letter country code for Apify Proxy sessions. US works well for English Booking pages.",
                        "default": "US"
                    },
                    "useResidentialProxy": {
                        "title": "Use residential proxy",
                        "type": "boolean",
                        "description": "Use residential proxy if Booking.com challenges the default datacenter/proxy session for your URLs. Keep disabled first to reduce costs.",
                        "default": false
                    },
                    "pageWaitMs": {
                        "title": "Page wait after load (ms)",
                        "minimum": 0,
                        "maximum": 15000,
                        "type": "integer",
                        "description": "Extra wait time after each hotel page loads so Booking can render lazy gallery images.",
                        "default": 2500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
