# Airbnb Scraper (`xtracto/airbnb-scraper`) Actor

Scrape Airbnb listings by destination. Get titles, descriptions, full photo galleries, ratings, prices per night, amenities, room layout, and deep links - ready for travel research, market analysis, and price tracking.

- **URL**: https://apify.com/xtracto/airbnb-scraper.md
- **Developed by:** [Xtractoo](https://apify.com/xtracto) (community)
- **Categories:** Lead generation, Travel, Real estate
- **Stats:** 1 total users, 0 monthly users, 87.5% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## Airbnb Scraper

Scrape Airbnb listings for any destination and get back the full picture of each property — descriptions, photo galleries, ratings, amenities, room layout, prices, locations, and deep links — all in clean structured JSON.

Whether you are a travel analyst tracking the short-term-rental market, an investor sizing up a destination, a vacation-rental host benchmarking competition, or a developer building a property-search experience, this actor gives you the data you need without the bother of building and maintaining a scraper yourself.

---

### What you can do with it

- **Market & investment research** — pull all listings for a city and analyze price distributions, occupancy signals, property types, and amenity prevalence.
- **Competitive benchmarking** — see exactly how comparable properties present themselves: title, photos, amenities, and pricing.
- **Lead generation** — build property-owner / property-manager lists for outreach.
- **Price tracking** — schedule the actor to run on a fixed cadence and feed the dataset into your BI stack.
- **Travel content & comparison sites** — power your own search UI with fresh listings, photos, and ratings.
- **Data products** — feed a dataset into AI / LLM pipelines that need real-world travel inventory.

---

### Why use this actor

- **No Airbnb account required** — runs entirely on public data; nothing to sign in to, nothing to keep alive.
- **No CAPTCHAs to solve** — you give it a destination, it gives you data.
- **Rich detail per listing** — 30+ structured fields, including the full photo gallery (often 60+ photos) and the full amenities list grouped by category.
- **Stable JSON output** — fixed schema, ready to feed straight into your warehouse, spreadsheet, or notebook.
- **Pay only for results** — straightforward per-record pricing on the Apify platform.

---

### How it works

1. You give the actor a destination ("Bali, Indonesia"), optional check-in / check-out dates, guests, currency, and how many results you want.
2. The actor searches Airbnb for that destination and collects every listing on the result pages.
3. For each listing, it visits the listing's detail page and merges in the deeper data — descriptions, photos, amenities, room breakdown, and exact ratings.
4. Records are written to the run's dataset one by one and available immediately in the Apify console (JSON, CSV, Excel, XML).

The actor handles pagination, retries, and proxy rotation automatically — you do not need to configure anything beyond your destination.

---

### Input

The minimum input is a destination — everything else has sensible defaults.

```json
{
  "mode": "search",
  "location": "Bali, Indonesia",
  "adults": 2,
  "currency": "USD",
  "max_results": 100,
  "enrich_from_pdp": true,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

| Field | Type | Required | Description |
|---|---|---|---|
| `mode` | string | yes | `search` to scrape a destination, `listings` to fetch a specific list of room IDs |
| `location` | string | for `search` | The destination as you would type it in the Airbnb search box |
| `check_in` / `check_out` | string | no | ISO `YYYY-MM-DD` dates — adds availability + accurate pricing |
| `adults` | integer | no | Number of adult guests (default 2) |
| `currency` | string | no | ISO 4217 currency for prices (default USD) |
| `max_results` | integer | no | Hard cap on records pushed (default 100) |
| `listing_ids` | array | for `listings` | Airbnb numeric room IDs to fetch directly |
| `enrich_from_pdp` | boolean | no | If true (default), each result is enriched with the full detail page |
| `proxy` | object | no | Apify proxy configuration; residential recommended |

***

### Sample output

One record per listing. Real data from a Bali search run:

```json
{
  "id": "1641776406624726380",
  "url": "https://www.airbnb.com/rooms/1641776406624726380",
  "title": "SIGMA Treehouse — Private Sauna & Sunset Views",
  "property_type": "Treehouse",
  "description_short": "Private jungle treehouse in Munduk, North Bali, with sunset views at cloud level. Slow down with a private sauna, bathtub for two, outdoor fire pit, and cozy movie nights with a projector. Just a 15-minute walk to the nearest waterfall, with many more nearby. Designed for couples or solo travelers seeking peace, nature, and privacy.",
  "person_capacity": 2,
  "bedrooms": 1,
  "beds": 1,
  "bathrooms": 1,
  "bathroom_type": "private",
  "rating": 5,
  "rating_count": 2,
  "is_new_listing": false,
  "primary_image_url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1641776406624726380/original/af6ae7ab-3625-423c-ac5f-704db237f3ac.jpeg",
  "photo_count": 62,
  "photo_urls": [
    "https://a0.muscache.com/im/pictures/hosting/Hosting-1641776406624726380/original/af6ae7ab-3625-423c-ac5f-704db237f3ac.jpeg",
    "https://a0.muscache.com/im/pictures/hosting/Hosting-1641776406624726380/original/3cf6f5db-4a6d-437e-8866-40628b4212b1.jpeg",
    "https://a0.muscache.com/im/pictures/hosting/Hosting-1641776406624726380/original/193839fe-c76b-498f-b9f8-f052ca5810b9.jpeg",
    "...59 more"
  ],
  "amenity_count": 54,
  "amenities": [
    "Mountain view",
    "Valley view",
    "Bathtub",
    "Hair dryer",
    "Outdoor shower",
    "Hot water",
    "...48 more"
  ],
  "amenities_grouped": [
    {
      "group": "Scenic views",
      "items": [
        { "title": "Mountain view", "available": true, "icon": "SYSTEM_VIEW_MOUNTAIN" },
        { "title": "Valley view",   "available": true, "icon": "SYSTEM_VIEW_MOUNTAIN" }
      ]
    },
    {
      "group": "Bathroom",
      "items": [
        { "title": "Bathtub",   "available": true, "icon": "SYSTEM_BATHTUB" },
        { "title": "Bidet",     "available": true, "icon": "SYSTEM_TOILET_BIDET" },
        { "title": "Hot water", "available": true, "icon": "SYSTEM_HOT_WATER" }
      ]
    }
  ],
  "price_per_night": 5029,
  "price_qualifier": "for 5 nights",
  "currency": "USD",
  "lat": -8.2593,
  "lng": 115.0704,
  "android_deeplink": "airbnb://rooms/1641776406624726380",
  "ios_deeplink": "airbnb://rooms/1641776406624726380"
}
```

***

### Output schema

Every result has the same fields. Unset fields are `null`.

| Field | Type | Description |
|---|---|---|
| `id` | string | Airbnb numeric room ID |
| `url` | string | Canonical listing URL |
| `title` | string | Listing title as shown on Airbnb |
| `property_type` | string | "Entire cabin", "Treehouse", "Private room", etc. |
| `description_short` | string | Hero description |
| `description_long` | string | Full description (when available) |
| `meta_description` | string | SEO description shown on Google |
| `person_capacity` | integer | Maximum guests |
| `bedrooms` / `beds` / `bathrooms` | numbers | Room breakdown |
| `bathroom_type` | string | `private` / `shared` / `half` / `standard` |
| `rating` | number | Overall guest rating (0–5) |
| `rating_count` | integer | Number of reviews |
| `is_new_listing` | boolean | True if Airbnb classifies it as new |
| `primary_image_url` | string | Hero photo URL |
| `photo_urls` | string\[] | Every photo URL from the listing gallery |
| `photo_count` | integer | Length of `photo_urls` |
| `amenities` | string\[] | Flat list of available amenities |
| `amenities_grouped` | object\[] | Same amenities organised by Airbnb's groups, with icon names |
| `amenity_count` | integer | Length of `amenities` |
| `price_per_night` | number | Price as shown for the searched stay |
| `price_qualifier` | string | The label Airbnb shows (e.g. "for 5 nights") |
| `currency` | string | ISO 4217 |
| `lat` / `lng` | numbers | Listing coordinates |
| `subtitle` | string | Search-card subtitle |
| `android_deeplink` / `ios_deeplink` | strings | Open-in-app links |

***

### Tips

- Start with a small `max_results` (3–10) to validate inputs, then scale up.
- Set `enrich_from_pdp: false` if you only need basic search-card fields and want a faster, cheaper run.
- Combine with the Apify Schedule feature to run nightly price snapshots for a destination.

# Actor input Schema

## `mode` (type: `string`):

search = scrape search results for a location. listings = scrape PDP details for an explicit list of room IDs.

## `location` (type: `string`):

Free-text location for search mode. e.g. 'Bali, Indonesia' or 'Lisbon'. Ignored in listings mode.

## `check_in` (type: `string`):

ISO yyyy-mm-dd. Optional; if omitted, search is undated.

## `check_out` (type: `string`):

ISO yyyy-mm-dd. Optional; if omitted, search is undated.

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

Number of adult guests (1-16).

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

ISO 4217 (USD, EUR, IDR, ...). Default USD.

## `max_results` (type: `integer`):

Hard cap on records pushed to the dataset.

## `listing_ids` (type: `array`):

Airbnb numeric room IDs. e.g. \['12345678']

## `enrich_from_pdp` (type: `boolean`):

When enabled, fetches each listing's detail page after the search and merges in the full amenities, descriptions, photo gallery, room breakdown and ratings detail. Disable for a faster, lighter run that only returns search-card fields.

## `max_concurrency` (type: `integer`):

Parallel in-flight requests per actor run (1-8). Higher = faster but more likely to trip rate limits.

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

Apify proxy configuration. Residential is recommended for the best success rate.

## Actor input object example

```json
{
  "mode": "search",
  "location": "Bali, Indonesia",
  "adults": 2,
  "currency": "USD",
  "max_results": 20,
  "listing_ids": [],
  "enrich_from_pdp": true,
  "max_concurrency": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "mode": "search",
    "location": "Bali, Indonesia",
    "adults": 2,
    "currency": "USD",
    "max_results": 20,
    "listing_ids": [],
    "enrich_from_pdp": true,
    "max_concurrency": 2,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/airbnb-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 = {
    "mode": "search",
    "location": "Bali, Indonesia",
    "adults": 2,
    "currency": "USD",
    "max_results": 20,
    "listing_ids": [],
    "enrich_from_pdp": True,
    "max_concurrency": 2,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/airbnb-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 '{
  "mode": "search",
  "location": "Bali, Indonesia",
  "adults": 2,
  "currency": "USD",
  "max_results": 20,
  "listing_ids": [],
  "enrich_from_pdp": true,
  "max_concurrency": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call xtracto/airbnb-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Airbnb Scraper",
        "description": "Scrape Airbnb listings by destination. Get titles, descriptions, full photo galleries, ratings, prices per night, amenities, room layout, and deep links - ready for travel research, market analysis, and price tracking.",
        "version": "0.2",
        "x-build-id": "QpHVC91hhwN1Vs1BV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~airbnb-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-airbnb-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/xtracto~airbnb-scraper/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-airbnb-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/xtracto~airbnb-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-airbnb-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "listings"
                        ],
                        "type": "string",
                        "description": "search = scrape search results for a location. listings = scrape PDP details for an explicit list of room IDs.",
                        "default": "search"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Free-text location for search mode. e.g. 'Bali, Indonesia' or 'Lisbon'. Ignored in listings mode."
                    },
                    "check_in": {
                        "title": "Check-in date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "ISO yyyy-mm-dd. Optional; if omitted, search is undated."
                    },
                    "check_out": {
                        "title": "Check-out date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "ISO yyyy-mm-dd. Optional; if omitted, search is undated."
                    },
                    "adults": {
                        "title": "Adults",
                        "minimum": 1,
                        "maximum": 16,
                        "type": "integer",
                        "description": "Number of adult guests (1-16).",
                        "default": 2
                    },
                    "currency": {
                        "title": "Currency code",
                        "type": "string",
                        "description": "ISO 4217 (USD, EUR, IDR, ...). Default USD.",
                        "default": "USD"
                    },
                    "max_results": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on records pushed to the dataset.",
                        "default": 100
                    },
                    "listing_ids": {
                        "title": "Listing IDs (listings mode)",
                        "type": "array",
                        "description": "Airbnb numeric room IDs. e.g. ['12345678']",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "enrich_from_pdp": {
                        "title": "Enrich each result with detail-page data",
                        "type": "boolean",
                        "description": "When enabled, fetches each listing's detail page after the search and merges in the full amenities, descriptions, photo gallery, room breakdown and ratings detail. Disable for a faster, lighter run that only returns search-card fields.",
                        "default": true
                    },
                    "max_concurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Parallel in-flight requests per actor run (1-8). Higher = faster but more likely to trip rate limits.",
                        "default": 2
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Residential is recommended for the best success rate.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
