# Trustpilot Review Extractor (`reviewly/trustpilot-review-extractor`) Actor

Scrapes company reviews from Trustpilot with pagination, date filtering, and deduplication.

- **URL**: https://apify.com/reviewly/trustpilot-review-extractor.md
- **Developed by:** [Reviewly](https://apify.com/reviewly) (community)
- **Categories:** Developer tools, Integrations, Other
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 record scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Trustpilot Reviews Scraper — Extract Company Reviews at Scale

**Turn Trustpilot into a structured data source.** This Apify Actor scrapes company reviews from Trustpilot — ratings, review text, dates, consumer names, and business replies — and delivers clean, ready-to-use JSON data.

- ✅ Scrape hundreds or thousands of reviews per company
- ✅ Filter by date to get only recent reviews
- ✅ Handles Trustpilot's anti-bot protection automatically
- ✅ Works on any Trustpilot company page (any language/subdomain)

---

### 📌 What This Actor Does

This Actor lets you extract Trustpilot company reviews without writing a single line of code. Point it at one or more Trustpilot company URLs, set your limits, and get a structured dataset of reviews delivered directly to your Apify storage.

**Who is it for?**

- **Businesses** monitoring their own or competitors' reputation
- **Marketers** collecting social proof and voice-of-customer data
- **Researchers & analysts** studying consumer sentiment across industries
- **Developers** building review aggregation pipelines or dashboards
- **Agencies** managing brand reputation for multiple clients

**Real-world use cases:**

- Track what customers say about your brand week over week
- Benchmark competitor sentiment across dozens of companies
- Feed reviews into an NLP pipeline for sentiment analysis
- Build a public-facing review widget powered by live data
- Alert your team when negative reviews appear after a product launch

---

### ✨ Key Features

- **Multi-company support** — scrape multiple Trustpilot pages in a single run
- **Pagination handled automatically** — goes through all review pages until the limit is hit
- **Date filtering** — set a `targetDate` to only collect reviews from a specific period onward
- **Deduplication** — reviews are deduplicated by ID, so you never get the same review twice
- **Review limit** — cap the number of reviews per company or scrape everything
- **Business reply extraction** — captures the company's official reply alongside the review
- **WAF bypass** — automatically solves Trustpilot's AWS WAF challenge
- **Residential proxy support** — uses Apify's residential proxy pool for reliable, unblocked access
- **Full metadata** — score, rating distribution, and company name included with every dataset item

---

### 🧠 Why This Actor is Different

Most Trustpilot scrapers break within days because Trustpilot actively blocks automated access via AWS WAF challenges. This Actor solves the WAF challenge using a real headless browser before making requests, so it keeps working even as Trustpilot's defenses update.

| Feature | This Actor | Generic scrapers |
|---|---|---|
| WAF bypass | ✅ Automatic | ❌ Breaks frequently |
| Date filtering | ✅ Built-in | ❌ Manual post-processing |
| Deduplication | ✅ Per run | ❌ Duplicates common |
| Business replies | ✅ Included | ❌ Often missing |
| Multi-company | ✅ Single run | ❌ One at a time |
| Residential proxies | ✅ Via Apify | ❌ Datacenter only |

---

### ⚙️ Input Configuration

#### Fields

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | Array of URLs | ✅ Yes | One or more Trustpilot company review page URLs |
| `maxNumberOfReviews` | Integer | No | Max reviews per company. `0` = no limit (scrape all) |
| `targetDate` | String (YYYY-MM-DD) | No | Only scrape reviews on or after this date |
| `proxyConfiguration` | Object | No | Proxy settings (Apify residential proxy recommended) |

#### Example Input (JSON)

```json
{
  "startUrls": [
    { "url": "https://fr.trustpilot.com/review/www.example.com" },
    { "url": "https://www.trustpilot.com/review/www.another-company.com" }
  ],
  "maxNumberOfReviews": 500,
  "targetDate": "2024-01-01",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

#### Tips

- **Any Trustpilot subdomain works** — `fr.trustpilot.com`, `www.trustpilot.com`, `de.trustpilot.com` are all accepted. The URL is normalized automatically.
- **Leave `maxNumberOfReviews` at `0`** to scrape every review the company has.
- **Use `targetDate` for incremental runs** — set it to the date of your last scrape to only collect new reviews.
- **Residential proxies are strongly recommended** — they significantly reduce the chance of blocks on large runs.

***

### 📤 Output Format

Each dataset item represents one company and contains an `entity` object with company metadata and a `reviews` array with all scraped reviews.

#### Sample Output

```json
{
  "entity": {
    "businessName": "Example Company",
    "score": 4.2,
    "totalNumberOfReviews": 1284,
    "ratings": {
      "one": 45,
      "two": 30,
      "three": 89,
      "four": 210,
      "five": 910
    },
    "sourceUrl": "https://fr.trustpilot.com/review/www.example.com"
  },
  "reviews": [
    {
      "reviewId": "abc123def456",
      "title": "Great experience overall",
      "reviewBody": "The service was fast and the team was very helpful throughout the process.",
      "rating": 5,
      "datetime": "2024-03-15T10:22:00.000Z",
      "consumerName": "Marie Dupont",
      "dateOfExperience": "2024-03-10T00:00:00.000Z",
      "reviewUrl": "https://fr.trustpilot.com/reviews/abc123def456",
      "reply": {
        "message": "Thank you for your kind words, Marie! We're glad we could help.",
        "publishedDate": "2024-03-16T08:00:00.000Z"
      },
      "scrapedAt": "2024-05-17T14:30:00.000Z"
    }
  ]
}
```

#### Field Reference

**Entity fields:**

| Field | Description |
|---|---|
| `businessName` | Company display name on Trustpilot |
| `score` | Overall Trustpilot trust score (1–5) |
| `totalNumberOfReviews` | Total review count on Trustpilot |
| `ratings` | Breakdown of reviews by star rating (one through five) |
| `sourceUrl` | The input URL used to scrape this company |

**Review fields:**

| Field | Description |
|---|---|
| `reviewId` | Unique Trustpilot review ID |
| `title` | Review headline |
| `reviewBody` | Full review text |
| `rating` | Star rating (1–5) |
| `datetime` | Date the review was published (ISO 8601) |
| `consumerName` | Reviewer's display name |
| `dateOfExperience` | Date the reviewer experienced the service (ISO 8601) |
| `reviewUrl` | Direct link to the review on Trustpilot |
| `reply` | Company's official reply (object with `message` and `publishedDate`), or `null` |
| `scrapedAt` | Timestamp of when this review was scraped (ISO 8601) |

***

### ▶️ How to Use

#### Option 1: Apify Console (No Code)

1. Open the Actor in the [Apify Store](https://apify.com/store)
2. Click **Try for free**
3. In the **Input** tab, add your Trustpilot company URLs under **Company Review URLs**
4. Optionally set **Max reviews per company** and **Filter reviews after date**
5. Click **Start** and wait for the run to finish
6. Download your data from the **Dataset** tab as JSON, CSV, or Excel

#### Option 2: Apify API

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [{ "url": "https://fr.trustpilot.com/review/www.example.com" }],
    "maxNumberOfReviews": 200,
    "targetDate": "2024-01-01"
  }'
```

#### Option 3: Scheduled Runs (Monitoring)

1. Go to **Schedules** in your Apify account
2. Create a new schedule (e.g., every Monday at 8:00 AM)
3. Attach this Actor with your input
4. Use `targetDate` set to the previous week's date for incremental collection
5. Connect to a webhook or integration (Slack, Google Sheets, etc.) for automatic alerts

***

### 📈 Use Cases

#### 1. Competitor Reputation Monitoring

Scrape reviews for 5–10 competitors weekly. Track average scores, review volume, and sentiment trends over time. Identify what customers love — and hate — about competing products.

#### 2. Brand Reputation Alerting

Run the Actor daily on your own company page. Use a webhook to trigger a Slack notification whenever a 1-star review is detected, allowing your support team to respond within hours.

#### 3. Sentiment Analysis & NLP

Feed `reviewBody` fields into an NLP model (e.g., OpenAI, Hugging Face) to classify customer sentiment, extract feature requests, or categorize complaints by topic.

#### 4. Review Aggregation Dashboard

Combine Trustpilot data with reviews from Google Maps, Indeed, and other platforms. Build a unified reputation dashboard for your business or for clients.

#### 5. Market Research

Analyze reviews across an entire industry vertical. Identify recurring pain points, unmet needs, or emerging trends from thousands of authentic customer experiences.

***

### 🛠️ Advanced Tips

#### Incremental Scraping (Only New Reviews)

Set `targetDate` to the date of your last run. The Actor stops paginating as soon as it encounters a review older than that date, making incremental runs fast and cost-efficient.

#### Scraping All Reviews from a Large Company

Set `maxNumberOfReviews` to `0`. The Actor will paginate through all pages until every review is collected. For companies with tens of thousands of reviews, use residential proxies and expect the run to take several minutes.

#### Proxy Configuration

Residential proxies are strongly recommended for large-scale scraping. You can control the country of the proxy via the `apifyProxyCountry` field:

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "FR"
  }
}
```

Using a country that matches the Trustpilot subdomain (e.g., `FR` for `fr.trustpilot.com`) improves success rates.

#### Multi-Company Runs

You can scrape dozens of companies in a single Actor run by adding multiple URLs to `startUrls`. Each company gets its own dataset item. There is no need to run the Actor separately per company.

***

### ❓ FAQ & Troubleshooting

**Q: The Actor fails or returns no data. What should I do?**
Enable residential proxies in the proxy configuration. Trustpilot blocks datacenter IPs aggressively. Residential proxies (via Apify) resolve most access issues.

**Q: I'm getting fewer reviews than the company actually has. Why?**
Make sure `maxNumberOfReviews` is set to `0` for unlimited collection. Also check if `targetDate` is set — it will stop scraping once reviews older than that date are encountered.

**Q: Can I scrape reviews in a language other than French?**
Yes. The Actor scrapes reviews with `languages=all` by default, so all languages are included regardless of the subdomain used in the URL.

**Q: The review count in `totalNumberOfReviews` doesn't match what I scraped.**
`totalNumberOfReviews` is the count reported by Trustpilot on the page. The number actually scraped may be lower if you set a `maxNumberOfReviews` limit or a `targetDate` filter.

**Q: Does this Actor handle company replies?**
Yes. If a company has replied to a review, the reply text and date are included in the `reply` field. If there is no reply, the field is `null`.

**Q: How often can I run this Actor?**
As often as you need. For monitoring use cases, a daily or weekly schedule is typical. Use `targetDate` for incremental runs to avoid re-scraping old data.

**Q: Is this Actor affected when Trustpilot updates its WAF?**
The WAF bypass uses a real browser to solve the challenge, which is more resilient to updates than static token approaches. If you encounter repeated failures after a Trustpilot update, please open an issue.

***

### 💰 Pricing

This Actor uses a pay-per-result model — you only pay for what you actually get.

| Event | Price | When it's charged |
|---|---|---|
| `REVIEW_SCRAPED` | **$0.003** | Per review successfully scraped and pushed to the dataset |

**Example costs:**

| Run size | Total cost |
|---|---|
| 50 reviews | ~$0.25 |
| 500 reviews | ~$1.60 |
| 5,000 reviews | ~$15.10 |

***

### 📞 Support

Have a question, found a bug, or need a custom feature?

- 📧 Email: <me@ahmedhrid.com>
- 🐛 Issues: Open a ticket via the Apify Actor page
- 💬 For general Apify questions: [Apify Community Discord](https://discord.gg/apify)

# Actor input Schema

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

One or more Trustpilot company review page URLs.

## `maxNumberOfReviews` (type: `integer`):

Maximum number of reviews to scrape per company. Set to 0 (or leave empty) for no limit.

## `targetDate` (type: `string`):

Only scrape reviews submitted on or after this date (YYYY-MM-DD). Leave empty to scrape all reviews.

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

Proxy servers used to avoid rate limiting and WAF blocks. Residential proxies recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://fr.trustpilot.com/review/www.dugood.org"
    }
  ],
  "maxNumberOfReviews": 0,
  "proxyConfiguration": {
    "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 = {
    "startUrls": [
        {
            "url": "https://fr.trustpilot.com/review/www.dugood.org"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("reviewly/trustpilot-review-extractor").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://fr.trustpilot.com/review/www.dugood.org" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("reviewly/trustpilot-review-extractor").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://fr.trustpilot.com/review/www.dugood.org"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call reviewly/trustpilot-review-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trustpilot Review Extractor",
        "description": "Scrapes company reviews from Trustpilot with pagination, date filtering, and deduplication.",
        "version": "0.0",
        "x-build-id": "N7qJGUTJDhsyDlKTW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/reviewly~trustpilot-review-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-reviewly-trustpilot-review-extractor",
                "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/reviewly~trustpilot-review-extractor/runs": {
            "post": {
                "operationId": "runs-sync-reviewly-trustpilot-review-extractor",
                "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/reviewly~trustpilot-review-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-reviewly-trustpilot-review-extractor",
                "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": "Company Review URLs",
                        "type": "array",
                        "description": "One or more Trustpilot company review page URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxNumberOfReviews": {
                        "title": "Max reviews per company",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of reviews to scrape per company. Set to 0 (or leave empty) for no limit.",
                        "default": 0
                    },
                    "targetDate": {
                        "title": "Filter reviews after date",
                        "type": "string",
                        "description": "Only scrape reviews submitted on or after this date (YYYY-MM-DD). Leave empty to scrape all reviews."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy servers used to avoid rate limiting and WAF blocks. Residential proxies recommended.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
