# G2 Reviews Scraper — Deep Data, Monitoring & Reliable Export (`trakk/g2-reviews-scraper`) Actor

Unofficial G2 reviews scraper for reliable monitoring and research. Collect ratings, pros, cons, problems solved, reviewer roles, company size, industry, dates, and URLs. Run recent snapshots, incremental tracking, or best-effort deep history; export clean JSON, CSV, Excel, and API-ready data.

- **URL**: https://apify.com/trakk/g2-reviews-scraper.md
- **Developed by:** [Blynx](https://apify.com/trakk) (community)
- **Categories:** Marketing, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 g2 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

<div align="center">

## ⭐ G2 Reviews Scraper

#### Structured G2 reviews for monitoring, research, competitive intelligence, and AI workflows

Collect the complete public review story — **what users like, what they dislike, and which problems the product solves** — together with ratings, reviewer context, company size, industry, timestamps, and source URLs.

**⚡ Recent snapshots · 🔔 Incremental monitoring · 🗂️ Deep historical research**

</div>

---

### 🚀 What this Actor gives you

Most review datasets stop at a title, a text blob, and a rating. G2 Reviews Scraper returns clean, analysis-ready fields that preserve the structure of the original review.

| Capability | What you get |
|---|---|
| 💬 **Three separate review answers** | `likeBest`, `dislike`, and `problemsSolved` |
| ⭐ **Exact rating + rating bucket** | Numeric `rating` and normalized `starRatingBucket` |
| 👤 **Reviewer context** | Public reviewer label, role, anonymous status, and industry when available |
| 🏢 **Company context** | Human-readable company size such as `51-200 employees` |
| 🕐 **Reliable timestamps** | UTC ISO timestamp plus the original publication date |
| 🔗 **Source traceability** | Direct URL and stable review ID for de-duplication |
| 🤖 **LLM-ready content** | Preformatted `markdownContent` for RAG, summarization, and classification |

#### Great for

- 🔔 New-review alerts and reputation monitoring
- 🥊 Competitor pain-point and battlecard research
- 🎯 Voice-of-customer and Jobs-to-be-Done analysis
- 📊 Sentiment, rating, and trend dashboards
- 🤖 RAG pipelines, classifiers, and AI summaries
- 📁 JSON, CSV, Excel, XML, API, webhook, Make, and Zapier workflows

---

### 🚦 Choose the right mode

| Mode | Best for | Coverage |
|---|---|---|
| ⚡ **Latest reviews** (`product_reviews`) | Quick snapshots and recent analysis | Up to 125 recent reviews per product |
| 🔔 **Incremental** (`incremental`) | Hourly, daily, or weekly scheduled monitoring | Only reviews newer than the last successful run |
| 🗂️ **Deep History** (`deep_history`) | Initial backfills and larger research datasets | Best-effort public history, up to your requested limit |

> [!TIP]
> For the best monitoring workflow, run **Deep History once** for the initial backfill, then schedule **Incremental** to collect new reviews continuously.

---

### ⚡ Quick start

#### Get the latest 50 Notion reviews

```json
{
  "mode": "product_reviews",
  "productUrls": ["https://www.g2.com/products/notion/reviews"],
  "maxReviews": 50
}
````

#### Compare negative reviews for two products

```json
{
  "mode": "deep_history",
  "productUrls": ["slack", "microsoft-teams"],
  "starRatings": ["1", "2"],
  "maxReviews": 500
}
```

#### Monitor only newly published reviews

```json
{
  "mode": "incremental",
  "productUrls": ["hubspot-crm", "salesforce-sales-cloud"],
  "maxReviews": 125,
  "monitoringKey": "crm-competitors"
}
```

When running through an **Apify Task**, state is isolated automatically and `monitoringKey` can be omitted. For repeated direct Console or API runs, reuse the same `monitoringKey`.

***

### 🎛️ Input reference

| Field | Type | Default | Description |
|---|---|---:|---|
| `mode` | select | `product_reviews` | Latest snapshot, incremental monitoring, or Deep History |
| `productUrls` | string list | required | Full G2 URLs or bare product slugs, one per line |
| `maxReviews` | integer | `25` | Per-product limit; Latest/Incremental cap at 125, Deep History accepts up to 5,000 |
| `starRatings` | multiselect | all | Include any combination of 1–5 star buckets |
| `monitoringKey` | string | — | Optional stable state key for repeated direct Incremental runs |
| `maxRetries` | integer | `6` | Advanced reliability setting; the default is recommended |
| `proxyConfiguration` | object | prefilled | Advanced connection setting; the default is recommended |

#### Accepted product formats

All of these identify the same product:

```text
https://www.g2.com/products/notion/reviews
www.g2.com/products/notion
notion
```

Duplicate products are removed automatically before collection starts.

#### How star buckets work

G2 ratings may include half stars. The Actor preserves the exact value in `rating` and provides a convenient integer bucket in `starRatingBucket`:

| Exact rating | Bucket |
|---:|---:|
| 0.0–1.0 | 1 |
| 1.5–2.0 | 2 |
| 2.5–3.0 | 3 |
| 3.5–4.0 | 4 |
| 4.5–5.0 | 5 |

***

### 📦 Example result

```json
{
  "reviewId": "13124903",
  "productSlug": "notion",
  "productName": "Notion",
  "title": "Versatile, Easy-to-Use Tool That Streamlines HR and Onboarding",
  "rating": 5.0,
  "starRatingBucket": 5,
  "reviewerName": "Verified User in Information Technology and Services",
  "reviewerRole": "G2 User",
  "companySize": "51-200 employees",
  "industry": "Information Technology and Services",
  "isAnonymous": true,
  "likeBest": "I like how versatile it is and how well it supports our workflows.",
  "dislike": "Some navigation patterns can take time to learn.",
  "problemsSolved": "It gives our team one place to organize work and employee information.",
  "publishedAt": "2026-07-17T23:14:38+00:00",
  "publishedAtRaw": "Fri, 17 Jul 2026 18:14:38 -0500",
  "reviewUrl": "https://www.g2.com/products/notion/reviews/notion-review-13124903",
  "markdownContent": "# Notion Review: Versatile, Easy-to-Use Tool..."
}
```

### 🧾 Output fields

| Group | Fields |
|---|---|
| Product | `productSlug`, `productName` |
| Review identity | `reviewId`, `reviewUrl`, `title` |
| Rating | `rating`, `starRatingBucket` |
| Reviewer | `reviewerName`, `reviewerRole`, `isAnonymous` |
| Company | `companySize`, `industry` |
| Review content | `likeBest`, `dislike`, `problemsSolved` |
| Time | `publishedAt`, `publishedAtRaw` |
| AI-ready export | `markdownContent` |

Empty optional fields are removed from the final dataset, keeping CSV and JSON exports clean.

***

### 🔔 Reliable incremental monitoring

Incremental mode stores a small, isolated last-seen marker for each product. On the next run, it returns only reviews with newer IDs.

- **Apify Tasks:** each Task receives its own monitoring scope automatically.
- **Direct runs:** reuse the same `monitoringKey` to continue the same monitor.
- **Different rating selections:** state is isolated so a 1–2 star monitor does not interfere with an all-ratings monitor.
- **No new reviews:** a successful run with an empty dataset is expected.

> \[!IMPORTANT]
> If every returned review is new and the run reaches `maxReviews`, schedule the Actor more frequently. This prevents a high-volume product from producing more new reviews between runs than the selected limit can hold.

***

### 📚 Coverage — the honest answer

G2 does not provide an unlimited public archive for every product. Public coverage varies by product, rating mix, company mix, and the history currently available from G2.

- **Latest / Incremental** prioritize fast, repeatable monitoring and return up to 125 recent reviews per product.
- **Deep History** reaches substantially further and can return hundreds or more for products with sufficient public history.
- `maxReviews` is an upper limit, not a guarantee that every product exposes that many records.
- Guaranteed parity with the total review count shown by G2 requires licensed G2 data access and is outside this public-data Actor’s scope.

This makes the Actor a strong fit for **monitoring, recent sentiment, research backfills, and structured analysis** without pretending that public data equals a licensed complete archive.

***

### 💰 Usage and performance

The Actor uses standard Apify platform resources. Your run size is mainly controlled by:

1. Number of products
2. `maxReviews` per product
3. Latest versus Deep History mode
4. Number of selected rating buckets

For low-cost continuous monitoring, use Incremental mode with an Apify Schedule. For one-time research, choose Deep History and set a deliberate `maxReviews` limit.

***

### ❓ FAQ

#### How do I find a G2 product slug?

It is the part after `/products/` in the G2 URL. For `https://www.g2.com/products/hubspot-crm/reviews`, the slug is `hubspot-crm`.

#### Why did Deep History return fewer reviews than requested?

The requested number is a maximum. Collection stops when the public history available for that product and rating selection is exhausted.

#### Why is an Incremental dataset empty?

That normally means no newer reviews appeared since the previous successful run for the same monitoring scope.

#### Why do some reviews have no personal name?

G2 allows reviewers to appear publicly as “Verified User.” The Actor preserves the public label and sets `isAnonymous: true`.

#### Can I export to Excel or CSV?

Yes. Open the run’s Dataset and choose JSON, CSV, Excel, XML, or another supported format. You can also use the [Apify API](https://docs.apify.com/api/v2), webhooks, Make, Zapier, or other Apify integrations.

#### Can this guarantee every G2 review ever published?

No. Deep History is a best-effort export of public history. A guaranteed complete archive requires licensed G2 data access.

***

### ⚖️ Responsible use

This Actor collects publicly available review data for legitimate business intelligence and research. You are responsible for complying with G2’s terms and applicable laws, including GDPR and CCPA. Do not use the data to contact, identify, or profile individual reviewers.

***

<div align="center">

**Build a backfill once. Monitor what changes. Turn customer language into decisions.** 🚀

</div>

# Actor input Schema

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

Choose Latest for a current snapshot, Incremental for scheduled monitoring, or Deep History for a larger best-effort backfill.

## `productUrls` (type: `array`):

Add one product per line. You can paste a full G2 URL or a slug such as notion, slack, or hubspot-crm. Duplicate products are removed automatically.

## `maxReviews` (type: `integer`):

Latest and Incremental return up to 125 reviews per product. Deep History accepts up to 5,000; the actual total depends on the public history available for each product.

## `starRatings` (type: `array`):

Select one or more rating buckets, or leave empty to include every rating. Half-star ratings are grouped into the next bucket (for example, 4.5 belongs to 5 stars).

## `monitoringKey` (type: `string`):

For repeated direct Incremental runs, reuse the same key to keep an isolated last-seen state. Apify Tasks are isolated automatically, so scheduled Tasks can leave this empty.

## `maxRetries` (type: `integer`):

Increase only when the source is temporarily unstable. The default is recommended for most runs.

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

The prefilled configuration is recommended for reliable collection.

## Actor input object example

```json
{
  "mode": "product_reviews",
  "productUrls": [
    "https://www.g2.com/products/notion/reviews"
  ],
  "maxReviews": 3,
  "starRatings": [],
  "maxRetries": 6,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `reviews` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "product_reviews",
    "productUrls": [
        "https://www.g2.com/products/notion/reviews"
    ],
    "maxReviews": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("trakk/g2-reviews-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": "product_reviews",
    "productUrls": ["https://www.g2.com/products/notion/reviews"],
    "maxReviews": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("trakk/g2-reviews-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": "product_reviews",
  "productUrls": [
    "https://www.g2.com/products/notion/reviews"
  ],
  "maxReviews": 3
}' |
apify call trakk/g2-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "G2 Reviews Scraper — Deep Data, Monitoring & Reliable Export",
        "description": "Unofficial G2 reviews scraper for reliable monitoring and research. Collect ratings, pros, cons, problems solved, reviewer roles, company size, industry, dates, and URLs. Run recent snapshots, incremental tracking, or best-effort deep history; export clean JSON, CSV, Excel, and API-ready data.",
        "version": "1.0",
        "x-build-id": "C8CUuT4Vex6aTLa51"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trakk~g2-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trakk-g2-reviews-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/trakk~g2-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-trakk-g2-reviews-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/trakk~g2-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-trakk-g2-reviews-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": [
                    "productUrls"
                ],
                "properties": {
                    "mode": {
                        "title": "Collection mode",
                        "enum": [
                            "product_reviews",
                            "incremental",
                            "deep_history"
                        ],
                        "type": "string",
                        "description": "Choose Latest for a current snapshot, Incremental for scheduled monitoring, or Deep History for a larger best-effort backfill.",
                        "default": "product_reviews"
                    },
                    "productUrls": {
                        "title": "G2 product URLs or slugs",
                        "minItems": 1,
                        "type": "array",
                        "description": "Add one product per line. You can paste a full G2 URL or a slug such as notion, slack, or hubspot-crm. Duplicate products are removed automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviews": {
                        "title": "Maximum reviews per product",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Latest and Incremental return up to 125 reviews per product. Deep History accepts up to 5,000; the actual total depends on the public history available for each product.",
                        "default": 25
                    },
                    "starRatings": {
                        "title": "Star-rating buckets",
                        "type": "array",
                        "description": "Select one or more rating buckets, or leave empty to include every rating. Half-star ratings are grouped into the next bucket (for example, 4.5 belongs to 5 stars).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5"
                            ],
                            "enumTitles": [
                                "⭐ 1 star",
                                "⭐⭐ 2 stars",
                                "⭐⭐⭐ 3 stars",
                                "⭐⭐⭐⭐ 4 stars",
                                "⭐⭐⭐⭐⭐ 5 stars"
                            ]
                        },
                        "default": []
                    },
                    "monitoringKey": {
                        "title": "Monitoring key (optional)",
                        "minLength": 1,
                        "maxLength": 100,
                        "type": "string",
                        "description": "For repeated direct Incremental runs, reuse the same key to keep an isolated last-seen state. Apify Tasks are isolated automatically, so scheduled Tasks can leave this empty."
                    },
                    "maxRetries": {
                        "title": "Maximum attempts per request",
                        "minimum": 1,
                        "maximum": 15,
                        "type": "integer",
                        "description": "Increase only when the source is temporarily unstable. The default is recommended for most runs.",
                        "default": 6
                    },
                    "proxyConfiguration": {
                        "title": "Connection configuration",
                        "type": "object",
                        "description": "The prefilled configuration is recommended for reliable collection.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
