# AI TripAdvisor Reviews Analyzer (`marklp/tripadvisor-scraper`) Actor

AI-powered TripAdvisor Reviews Scraper & Analyzer — extract reviews at scale and get instant summaries, sentiment, and key themes. No browser needed (10× faster, ~100 MB RAM). DataDome bypass via curl\_cffi with automatic proxy fallback. Export to JSON, CSV, Excel.

- **URL**: https://apify.com/marklp/tripadvisor-scraper.md
- **Developed by:** [ML Data Solutions](https://apify.com/marklp) (community)
- **Categories:** Travel, Automation
- **Stats:** 4 total users, 2 monthly users, 90.9% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 reviews

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

### What is TripAdvisor Reviews Scraper with AI Insights?

**TripAdvisor Reviews Scraper with AI Insights** extracts public reviews from any **[TripAdvisor](https://www.tripadvisor.com/)** hotel, restaurant, or attraction page — **without a browser**. Paste one or more URLs, click Start, and get a structured dataset of reviews plus an optional **AI-powered analysis** of guest sentiment, top themes, and common complaints. No TripAdvisor account required.

---

### Why no browser?

| | This Actor | Browser-based |
|---|---|---|
| **Startup** | Seconds | Minutes |
| **Memory** | ~100 MB | ~1 GB |
| **Proxy** | Auto-fallback only | Always needed |

---

### What can this Actor do?

- ⚡ **10× faster startup** — no browser, no 1 GB image to pull
- 🌐 Scrape **multiple places** in one run
- ⭐ Filter by **star rating**, **date range**, and **language**
- 🤖 **AI analysis** — sentiment, top themes, complaints, and narrative summary per place
- 📋 One structured row per review — export as **JSON, CSV, Excel, or HTML**
- 🗃️ Place summaries in `Places.json` and `Places.md` (including AI insights)
- 🔄 **Automatic proxy fallback** — no proxy configuration needed
- ☁️ Full Apify platform support: scheduling, webhooks, API, integrations

---

### What data can you extract from TripAdvisor?

| Data point | Description |
|------------|-------------|
| **Review title** | Short headline written by the reviewer |
| **Review text** | Full body of the public review |
| **Star rating** | 1–5 overall rating |
| **Published date** | When the review was posted (`YYYY-MM-DD`) |
| **Travel date** | Month/year of the stay or visit |
| **Trip type** | Family, Business, Couples, Solo, etc. |
| **Reviewer name** | Public display name |
| **Helpful votes** | How many users found the review helpful |
| **Owner response** | Management reply when present |
| **Sub-ratings** | Cleanliness, service, etc. when available |

Place-level data (overall rating, rating distribution, total review count) is in `Places.json`.

---

### AI-powered Analysis

Enable **AI Analysis** to get insights based on up to 1,000 reviews per place. Results are embedded directly into `Places.json` and `Places.md` — no separate files.

| AI output | Description |
|-----------|-------------|
| **Overall Sentiment** | Positive / Neutral / Negative split with a dominant label |
| **Top Positive Themes** | 3–5 recurring strengths guests mention most |
| **Top Negative Themes** | 3–5 recurring pain points |
| **Common Complaints** | Up to 5 specific, actionable complaints |
| **Summary** | 3–5 sentence narrative of the overall guest experience |


---

### How to scrape TripAdvisor reviews — step by step

1. Open this Actor in Apify Console and go to the **Input** tab.
2. Paste one or more **TripAdvisor place URLs** (hotel, restaurant, or attraction).
3. Optionally set **Max reviews**, **date range**, **ratings**, and **language** filters.
4. To add AI insights, toggle **AI Analysis** on.
5. Click **Start** — proxy is handled automatically.
6. When done, open the **Dataset** tab for reviews, or **Storage → Key-value store** for `Places.json` and `Places.md`.

---

### How much does it cost?

Scraping reviews costs **$1 per 1,000 reviews**. Runs are fast. AI analysis is additional and billed by your AI provider based on the number of reviews analysed.

---

### Input

| Field | Type | Description |
|-------|------|-------------|
| **Place URLs** (`startUrls`) | URL list | Required. TripAdvisor hotel, restaurant, or attraction pages. |
| **Max reviews per place** (`maxReviewsPerPlace`) | Integer | Cap per place. `0` = no limit. |
| **Start date** (`startDate`) | `YYYY-MM-DD` | Only reviews on or after this date. |
| **End date** (`endDate`) | `YYYY-MM-DD` | Only reviews on or before this date. |
| **Review ratings** (`reviewRatings`) | Multi-select | Filter by star rating. Leave empty for all. |
| **Review language** (`language`) | Select | Filter by language. Leave empty for all. |
| **AI Analysis** (`aiSummary`) | Boolean | Enable AI sentiment analysis. Default: `false`. |

---

### Output

**Dataset — one row per review**

```json
{
  "id": "942837461",
  "placeName": "The Waterfront Hotel",
  "title": "Wonderful location and friendly staff",
  "text": "We stayed for 4 nights in March. The location right on the seafront...",
  "rating": 5,
  "publishedDate": "2025-03-10",
  "travelDate": "2025-03",
  "tripType": "Couples",
  "lang": "en",
  "reviewerName": "Traveler_Malta2025",
  "helpfulVotes": 2
}
````

**`Places.json` — place metadata with embedded AI insights**

```json
[
  {
    "id": "264939",
    "name": "The Waterfront Hotel",
    "placeType": "hotel",
    "rating": "4.4",
    "totalReviews": 3930,
    "scrapedReviews": 300,
    "city": "Sliema",
    "country": "Malta",
    "ratingDistribution": { "excellent": 2427, "good": 982, "average": 360, "poor": 103, "terrible": 58 },
    "aiSummary": {
      "overallSentiment": { "positive": 89.3, "neutral": 7.0, "negative": 3.7, "label": "positive" },
      "topPositiveThemes": [
        { "theme": "Seafront location", "description": "Guests consistently praise the prime waterfront position." },
        { "theme": "Friendly staff", "description": "Staff warmth and helpfulness are highlighted across reviews." },
        { "theme": "Breakfast quality", "description": "The buffet receives high marks for variety and freshness." }
      ],
      "topNegativeThemes": [
        { "theme": "Noise levels", "description": "Street noise is mentioned by guests in promenade-facing rooms." },
        { "theme": "Parking", "description": "No on-site parking; nearby options are limited." }
      ],
      "commonComplaints": ["Street noise at night", "No on-site parking", "Wi-Fi drops in some rooms"],
      "summary": "The Waterfront Hotel is overwhelmingly well-received, with strong praise for its seafront location and warm staff. The breakfast and room cleanliness stand out as consistent strengths. Street noise and parking are the most common friction points. Overall, the hotel delivers a high-quality experience for the majority of guests.",
      "reviewsAnalyzed": 300,
      "generatedAt": "2026-04-16T09:15:00Z"
    }
  }
]
```

**`Places.md` — human-readable summary (excerpt)**

```markdown
### 1. The Waterfront Hotel

- **Rating**: 4.4 / 5  |  **Total reviews**: 3,930  |  **Scraped**: 300
- **Location**: Sliema, Malta

#### AI Analysis

- **Overall Sentiment**: Positive - Positive 89.3% / Neutral 7.0% / Negative 3.7%
- **Top positive themes**: Seafront location, Friendly staff, Breakfast quality
- **Top negative themes**: Noise levels, Parking
- **Common complaints**: Street noise at night, No on-site parking, Wi-Fi drops in some rooms
- **Summary**: The Waterfront Hotel is overwhelmingly well-received...
```

***

### How it works

1. **Cookie seeding** — one GET request per place using Chrome TLS impersonation (`curl_cffi`) to collect DataDome session cookies. No HTML is scraped.
2. **Place metadata** — from TripAdvisor's GraphQL API or optionally via the official Content API.
3. **Review pagination** — 50 parallel GraphQL requests per wave (500 reviews/wave).
4. **Automatic proxy escalation** — starts without proxy; retries with Apify Residential Proxy on block; reuses the same IP for all places once one succeeds.
5. **AI analysis** — up to 1,000 reviews per place analysed in batches, then aggregated into the final `aiSummary`.

***

### Tips

- 🧪 **Test small first** — one URL, `Max reviews = 20`, before a large run.
- 📅 **Incremental pulls** — set `startDate` to yesterday on a schedule to collect only new reviews.
- 🔗 **Automate** — use [Apify Schedules](https://docs.apify.com/platform/schedules) and [webhooks](https://docs.apify.com/platform/webhooks) or connect to Make, Zapier, n8n, and Google Sheets via [integrations](https://apify.com/integrations).

***

### FAQ and support

#### Is it legal to scrape TripAdvisor?

This Actor collects only **public content** visible to any visitor — review text, ratings, dates, and display names. It does not access private accounts or hidden data. You are responsible for complying with TripAdvisor's **[Terms of Use](https://tripadvisor.com/pages/terms.html)** and applicable data-protection regulations (e.g. GDPR). See also: **[Is web scraping legal? — Apify blog](https://blog.apify.com/is-web-scraping-legal/)**.

#### Does TripAdvisor have an official API?

TripAdvisor's **[Content API](https://tripadvisor-content-api.readme.io/)** covers location details (free tier: 5,000 calls/month) but not review data at scale. This Actor uses TripAdvisor's internal GraphQL endpoint for reviews.

#### Where can I get help?

- 💬 **[Apify Discord](https://discord.com/invite/jyEM2PRvMU)**
- 🐛 **Issues tab** on this Actor page
- 📖 **[Apify documentation](https://docs.apify.com/)**

# Actor input Schema

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

TripAdvisor place URLs to scrape (hotels, restaurants, attractions). Must start with https://www.tripadvisor.com/

## `maxReviewsPerPlace` (type: `integer`):

Maximum number of reviews to scrape per place (0 = all reviews)

## `startDate` (type: `string`):

Only include reviews published on or after this date (YYYY-MM-DD). Leave empty for all reviews.

## `endDate` (type: `string`):

Only include reviews published on or before this date (YYYY-MM-DD). Leave empty for all reviews.

## `reviewRatings` (type: `array`):

Only include reviews with the selected star ratings. Leave empty for all ratings.

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

Only include reviews written in this language. Leave empty for all languages.

## `aiSummary` (type: `boolean`):

Generate an AI-powered review analysis: overall sentiment, top positive/negative themes, common complaints, and a narrative summary. Up to 1,000 reviews per place are analysed. Requires an AI provider API key set in Actor environment variables.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.tripadvisor.com/Hotel_Review-g190327-d264936-Reviews-1926_Hotel_Spa-Sliema_Island_of_Malta.html"
    }
  ],
  "maxReviewsPerPlace": 0,
  "startDate": "",
  "endDate": "",
  "reviewRatings": [],
  "language": "",
  "aiSummary": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

All scraped reviews in the default dataset

## `Places.json` (type: `string`):

Place metadata with rating distribution, review count, oldest date, and optional AI insights (overallSentiment, topPositiveThemes, topNegativeThemes, commonComplaints, summary) embedded under the 'aiSummary' field when AI Analysis is enabled.

## `Places.md` (type: `string`):

Human-readable summary of all scraped places, including the AI analysis section when AI Analysis is enabled.

# 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.tripadvisor.com/Hotel_Review-g190327-d264936-Reviews-1926_Hotel_Spa-Sliema_Island_of_Malta.html"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("marklp/tripadvisor-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.tripadvisor.com/Hotel_Review-g190327-d264936-Reviews-1926_Hotel_Spa-Sliema_Island_of_Malta.html" }] }

# Run the Actor and wait for it to finish
run = client.actor("marklp/tripadvisor-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.tripadvisor.com/Hotel_Review-g190327-d264936-Reviews-1926_Hotel_Spa-Sliema_Island_of_Malta.html"
    }
  ]
}' |
apify call marklp/tripadvisor-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI TripAdvisor Reviews Analyzer",
        "description": "AI-powered TripAdvisor Reviews Scraper & Analyzer — extract reviews at scale and get instant summaries, sentiment, and key themes. No browser needed (10× faster, ~100 MB RAM). DataDome bypass via curl_cffi with automatic proxy fallback. Export to JSON, CSV, Excel.",
        "version": "0.4",
        "x-build-id": "Kcv2hLK3KwMtsC71t"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/marklp~tripadvisor-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-marklp-tripadvisor-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/marklp~tripadvisor-scraper/runs": {
            "post": {
                "operationId": "runs-sync-marklp-tripadvisor-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/marklp~tripadvisor-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-marklp-tripadvisor-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": "Place URLs",
                        "minItems": 1,
                        "type": "array",
                        "description": "TripAdvisor place URLs to scrape (hotels, restaurants, attractions). Must start with https://www.tripadvisor.com/",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "Full TripAdvisor place page URL (https://www.tripadvisor.com/…)"
                                }
                            },
                            "required": [
                                "url"
                            ]
                        }
                    },
                    "maxReviewsPerPlace": {
                        "title": "Max Reviews per Place",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of reviews to scrape per place (0 = all reviews)",
                        "default": 0
                    },
                    "startDate": {
                        "title": "Start Date",
                        "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
                        "type": "string",
                        "description": "Only include reviews published on or after this date (YYYY-MM-DD). Leave empty for all reviews.",
                        "default": ""
                    },
                    "endDate": {
                        "title": "End Date",
                        "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
                        "type": "string",
                        "description": "Only include reviews published on or before this date (YYYY-MM-DD). Leave empty for all reviews.",
                        "default": ""
                    },
                    "reviewRatings": {
                        "title": "Review Ratings",
                        "type": "array",
                        "description": "Only include reviews with the selected star ratings. Leave empty for all ratings.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "5",
                                "4",
                                "3",
                                "2",
                                "1"
                            ],
                            "enumTitles": [
                                "5 ★ — Excellent",
                                "4 ★ — Very Good",
                                "3 ★ — Average",
                                "2 ★ — Poor",
                                "1 ★ — Terrible"
                            ]
                        },
                        "default": []
                    },
                    "language": {
                        "title": "Review Language",
                        "enum": [
                            "",
                            "en",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "pt",
                            "ru",
                            "nl",
                            "ja",
                            "zh",
                            "ko",
                            "ar",
                            "pl",
                            "sv",
                            "da",
                            "fi",
                            "nb",
                            "tr",
                            "cs",
                            "hu"
                        ],
                        "type": "string",
                        "description": "Only include reviews written in this language. Leave empty for all languages.",
                        "default": ""
                    },
                    "aiSummary": {
                        "title": "AI Analysis",
                        "type": "boolean",
                        "description": "Generate an AI-powered review analysis: overall sentiment, top positive/negative themes, common complaints, and a narrative summary. Up to 1,000 reviews per place are analysed. Requires an AI provider API key set in Actor environment variables.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
