# Page View Generator / Stress Tester (`practicaltools/pageview-generator`) Actor

Simulates realistic page views to a URL using rotating Apify residential proxies for stress testing and traffic analysis.

- **URL**: https://apify.com/practicaltools/pageview-generator.md
- **Developed by:** [Practical Tools](https://apify.com/practicaltools) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$50.00 / 1,000 page views

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

## Browser-Based Load Testing with Real Residential IPs

Test how your website performs under real-world load. This Actor launches **full Chromium browser sessions** — not raw HTTP requests — routed through rotating residential proxies worldwide. Every session loads JavaScript, executes analytics scripts, fires network requests, and behaves exactly like a real visitor navigating your site.

Use it to expose bottlenecks before they hit production, validate your CDN and caching setup, or verify that your infrastructure holds up under traffic spikes from different regions.

---

### What this Actor does

Each simulated session:

- Opens a **real headless Chromium browser** (full JS execution, resource loading, analytics events)
- Routes through a **unique residential IP** — a fresh proxy session per browser visit, so every hit looks like a different user from a different location
- Applies a **randomised browser fingerprint** (screen resolution, timezone, platform, language) via Crawlee's built-in fingerprint injection
- **Scrolls through the page** and moves the mouse to simulate realistic dwell behaviour (configurable)
- Waits a **configurable dwell time** on the page before closing the session
- Records status code, full page load duration, and any errors
- Streams all results live to a **dataset** and saves a **summary** with aggregate stats when complete

---

### Intended use cases

This tool is designed for engineers testing infrastructure they own or are authorised to test:

- **Pre-launch stress testing** — find breaking points before real users do
- **CDN and edge cache validation** — confirm that cache-hit rates hold under concurrent load
- **Rate limiting and WAF verification** — check that your firewall rules behave correctly under bursts from diverse IPs
- **Regional performance benchmarking** — measure load times routed through proxies in specific countries
- **Rendering pipeline testing** — verify that server-side rendering, hydration, and JS bundle loading work correctly under concurrency
- **Autoscaling trigger testing** — confirm your hosting provider scales up when it should

> **Important:** Only run this against websites and infrastructure you own or have explicit permission to test. Unauthorised load testing may violate Terms of Service and applicable law.

---

### How to use

1. Open the Actor on [Apify Store](https://apify.com) and click **Try for free**
2. Enter the **Target URL** of the page you want to test
3. Set **Page View Count**, **Concurrency**, and **Delay** to define the load profile
4. Optionally pin a **Country Code** to test from a specific region
5. Click **Start** — results stream in real time to the **Output** tab
6. When the run finishes, export the dataset as JSON, CSV, or Excel

---

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `url` | string | *(required)* | Target URL to load in each browser session |
| `requestCount` | integer | `50` | Total number of browser sessions to run |
| `concurrency` | integer | `5` | Maximum parallel browser sessions |
| `minDelayMs` | integer | `0` | Minimum pre-request delay per session (ms) |
| `maxDelayMs` | integer | `0` | Maximum pre-request delay per session (ms) — randomised between min and max |
| `minTimeOnPageMs` | integer | `2000` | Minimum time the browser spends on the page after load (ms) |
| `maxTimeOnPageMs` | integer | `8000` | Maximum time the browser spends on the page after load (ms) |
| `simulateBehavior` | boolean | `true` | Scroll through the page and move the mouse during the session |
| `waitUntil` | select | `load` | Page load event to await: `domcontentloaded`, `load`, or `networkidle` |
| `proxyGroups` | array | `["RESIDENTIAL"]` | Apify proxy groups — use `RESIDENTIAL` for diverse IPs |
| `countryCode` | string | *(any)* | ISO 3166-1 alpha-2 country code to restrict proxy location (e.g. `US`, `DE`) |
| `headers` | object | `{}` | Extra HTTP headers injected into every browser session |

**Example — pre-launch stress test from US residential IPs:**

```json
{
    "url": "https://yourdomain.com",
    "requestCount": 200,
    "concurrency": 10,
    "minDelayMs": 300,
    "maxDelayMs": 1200,
    "minTimeOnPageMs": 3000,
    "maxTimeOnPageMs": 10000,
    "simulateBehavior": true,
    "waitUntil": "networkidle",
    "proxyGroups": ["RESIDENTIAL"],
    "countryCode": "US"
}
````

***

### Output

Each browser session produces one record in the default dataset.

**Per-session record:**

```json
{
    "requestIndex": 1,
    "url": "https://yourdomain.com",
    "statusCode": 200,
    "durationMs": 2847,
    "success": true,
    "error": null,
    "timestamp": "2024-05-10T12:34:56.789Z"
}
```

**Run summary** (saved to key-value store under key `SUMMARY`):

```json
{
    "url": "https://yourdomain.com",
    "totalRequests": 200,
    "successCount": 198,
    "errorCount": 2,
    "successRate": "99.0%",
    "avgDurationMs": 2341,
    "minDurationMs": 987,
    "maxDurationMs": 8203,
    "totalElapsedMs": 94500,
    "throughputReqPerSec": 2.12,
    "statusCodeCounts": { "200": 198, "503": 2 },
    "finishedAt": "2024-05-10T12:36:31.289Z"
}
```

`durationMs` measures the full browser session — from navigation start to page fully loaded plus dwell time — making it a realistic measure of user-perceived load time.

***

### Tips

**Ramp up gradually:** Start with `concurrency: 3` and `requestCount: 20` to establish a baseline, then increase concurrency incrementally to identify the threshold where errors begin appearing.

**Stick with `domcontentloaded` for reliability:** The default `domcontentloaded` event fires once the HTML is parsed and JS starts executing — which is when real users start perceiving the page. `load` and `networkidle` additionally wait for all images and background requests to finish, which through residential proxies can easily exceed 60 seconds on image-heavy sites and cause unnecessary retries. Only switch to `networkidle` if you specifically need to measure full resource load times.

**Test specific regions:** Set `countryCode: "DE"` to route all sessions through German residential IPs. Useful for validating region-specific CDN edge nodes or GDPR-related routing rules.

**Simulate sustained low-level load:** Set `concurrency: 2`, `requestCount: 500`, `minDelayMs: 1000`, `maxDelayMs: 3000` for a prolonged gentle test that runs for several minutes without spiking your error rates.

**Inject custom headers:** Use `headers` to pass values like `{ "X-Test-Run": "load-test-2024" }` so your server logs can distinguish test traffic from real traffic during the test window.

***

### FAQ

**Can I use this on any website?**
Only on websites and services you own or have explicit written authorisation to test. Load testing without permission can cause service disruption and may be illegal under computer misuse legislation in your jurisdiction.

**Why use browser sessions instead of plain HTTP requests?**
Real browser sessions load the full page — JavaScript bundles, fonts, images, third-party scripts, analytics events. This exercises your entire stack: origin server, CDN, edge workers, and any client-side rendering pipeline. Plain HTTP misses all of that.

**Will server-side analytics record these sessions?**
Yes — access logs, Cloudflare, and server-side analytics will record the requests. Client-side analytics tools (e.g. Google Analytics) will also fire since JavaScript executes in the browser. If you want to exclude test traffic from your analytics, use the `headers` input to inject a recognisable header and filter it out in your analytics platform.

**Is there a free tier?**
Free Apify accounts can run **1 browser session per run** to try the Actor. For any meaningful load test you'll need a paid Apify plan, which removes this cap.

**Do I need a paid Apify plan for residential proxies?**
Yes. Residential proxies require a paid Apify subscription. If you want to run without proxies (all sessions from the Actor's container IP), set `proxyGroups: []` — useful for quick local network tests.

**How much does a run cost?**
Cost depends on the number of sessions, page size, and proxy traffic. Browser sessions consume more proxy bandwidth than raw HTTP — a typical modern webpage transfers 1–3 MB. At 100 sessions × 2 MB average: ~200 MB of residential proxy traffic. Check current proxy pricing at [apify.com/pricing](https://apify.com/pricing).

# Actor input Schema

## `url` (type: `string`):

The URL to simulate browser page views on. Must be a valid HTTP or HTTPS URL.

## `requestCount` (type: `integer`):

Total number of browser page views to simulate.

## `concurrency` (type: `integer`):

Maximum number of browser instances running in parallel.

## `minDelayMs` (type: `integer`):

Minimum delay in milliseconds before dispatching each browser request. Randomized between min and max to simulate staggered traffic.

## `maxDelayMs` (type: `integer`):

Maximum delay in milliseconds before dispatching each browser request.

## `minTimeOnPageMs` (type: `integer`):

Minimum time in milliseconds the browser spends on the page after load (simulates reading time).

## `maxTimeOnPageMs` (type: `integer`):

Maximum time in milliseconds the browser spends on the page after load.

## `simulateBehavior` (type: `boolean`):

When enabled, the browser scrolls through the page and moves the mouse to mimic real user interaction. Capped at 5 seconds total.

## `blockResources` (type: `boolean`):

Block images, fonts and media from loading. Significantly reduces session time and proxy bandwidth cost while preserving JS execution and analytics firing. Recommended for speed and cost efficiency.

## `waitUntil` (type: `string`):

Page load event to wait for before considering navigation complete. 'domcontentloaded' is recommended — the page is interactive and JS is running, which is what real users perceive. 'load' and 'networkidle' wait for all resources including images, which is slower and more prone to timeouts through residential proxies.

## `proxyGroups` (type: `array`):

Apify proxy groups to use for rotating IPs. Use RESIDENTIAL for residential IPs.

## `countryCode` (type: `string`):

Optional ISO 3166-1 alpha-2 country code to restrict proxy IPs (e.g. US, GB, DE). Leave empty for all countries.

## `headers` (type: `object`):

Additional HTTP headers to inject into every browser request (e.g. {"Accept-Language": "en-US,en;q=0.9"}).

## Actor input object example

```json
{
  "url": "https://example.com",
  "requestCount": 50,
  "concurrency": 5,
  "minDelayMs": 0,
  "maxDelayMs": 0,
  "minTimeOnPageMs": 2000,
  "maxTimeOnPageMs": 8000,
  "simulateBehavior": false,
  "blockResources": true,
  "waitUntil": "domcontentloaded",
  "proxyGroups": [
    "RESIDENTIAL"
  ],
  "headers": {}
}
```

# 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 = {
    "url": "https://example.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("practicaltools/pageview-generator").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 = { "url": "https://example.com" }

# Run the Actor and wait for it to finish
run = client.actor("practicaltools/pageview-generator").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 '{
  "url": "https://example.com"
}' |
apify call practicaltools/pageview-generator --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Page View Generator / Stress Tester",
        "description": "Simulates realistic page views to a URL using rotating Apify residential proxies for stress testing and traffic analysis.",
        "version": "1.0",
        "x-build-id": "wdtqdhDsg5IUFOH4s"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/practicaltools~pageview-generator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-practicaltools-pageview-generator",
                "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/practicaltools~pageview-generator/runs": {
            "post": {
                "operationId": "runs-sync-practicaltools-pageview-generator",
                "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/practicaltools~pageview-generator/run-sync": {
            "post": {
                "operationId": "run-sync-practicaltools-pageview-generator",
                "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": [
                    "url"
                ],
                "properties": {
                    "url": {
                        "title": "Target URL",
                        "type": "string",
                        "description": "The URL to simulate browser page views on. Must be a valid HTTP or HTTPS URL."
                    },
                    "requestCount": {
                        "title": "Page View Count",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Total number of browser page views to simulate.",
                        "default": 50
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of browser instances running in parallel.",
                        "default": 5
                    },
                    "minDelayMs": {
                        "title": "Minimum Pre-Request Delay (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum delay in milliseconds before dispatching each browser request. Randomized between min and max to simulate staggered traffic.",
                        "default": 0
                    },
                    "maxDelayMs": {
                        "title": "Maximum Pre-Request Delay (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum delay in milliseconds before dispatching each browser request.",
                        "default": 0
                    },
                    "minTimeOnPageMs": {
                        "title": "Minimum Time on Page (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum time in milliseconds the browser spends on the page after load (simulates reading time).",
                        "default": 2000
                    },
                    "maxTimeOnPageMs": {
                        "title": "Maximum Time on Page (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum time in milliseconds the browser spends on the page after load.",
                        "default": 8000
                    },
                    "simulateBehavior": {
                        "title": "Simulate User Behavior",
                        "type": "boolean",
                        "description": "When enabled, the browser scrolls through the page and moves the mouse to mimic real user interaction. Capped at 5 seconds total.",
                        "default": false
                    },
                    "blockResources": {
                        "title": "Block Images, Fonts & Media",
                        "type": "boolean",
                        "description": "Block images, fonts and media from loading. Significantly reduces session time and proxy bandwidth cost while preserving JS execution and analytics firing. Recommended for speed and cost efficiency.",
                        "default": true
                    },
                    "waitUntil": {
                        "title": "Wait Until",
                        "enum": [
                            "domcontentloaded",
                            "load",
                            "networkidle"
                        ],
                        "type": "string",
                        "description": "Page load event to wait for before considering navigation complete. 'domcontentloaded' is recommended — the page is interactive and JS is running, which is what real users perceive. 'load' and 'networkidle' wait for all resources including images, which is slower and more prone to timeouts through residential proxies.",
                        "default": "domcontentloaded"
                    },
                    "proxyGroups": {
                        "title": "Proxy Groups",
                        "type": "array",
                        "description": "Apify proxy groups to use for rotating IPs. Use RESIDENTIAL for residential IPs.",
                        "default": [
                            "RESIDENTIAL"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "countryCode": {
                        "title": "Country Code",
                        "pattern": "^[A-Z]{2}$",
                        "minLength": 2,
                        "maxLength": 2,
                        "type": "string",
                        "description": "Optional ISO 3166-1 alpha-2 country code to restrict proxy IPs (e.g. US, GB, DE). Leave empty for all countries."
                    },
                    "headers": {
                        "title": "Extra HTTP Headers",
                        "type": "object",
                        "description": "Additional HTTP headers to inject into every browser request (e.g. {\"Accept-Language\": \"en-US,en;q=0.9\"}).",
                        "default": {}
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
