# LLM Pricing Monitor (`devilscrapes/llm-pricing-monitor`) Actor

Scrape live LLM API pricing from OpenAI, Anthropic, Google, Mistral, Groq, Together AI and DeepSeek. Normalized per-million-token output for cost dashboards and FinOps pipelines. Beats OpenRouter-only competitor by 6.5x.

- **URL**: https://apify.com/devilscrapes/llm-pricing-monitor.md
- **Developed by:** [DevilScrapes](https://apify.com/devilscrapes) (community)
- **Categories:** AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

<img src=".actor/icon.svg" width="160" alt="LLM Pricing Monitor" />

## LLM Pricing Monitor

_We do the dirty work so your dataset stays clean._ 😈

**$5.05 / 1,000 rows — 6.5x cheaper than the only competing actor.** Scrape live pricing from the seven major LLM API providers (OpenAI, Anthropic, Google, Mistral, Groq, Together AI, DeepSeek) and emit one unified per-million-token dataset ready for cost dashboards, FinOps pipelines, and spreadsheet pivots. No login. No API key. No browser automation.

This Actor hits the authoritative pricing page for each provider directly (not the OpenRouter re-routing layer), parses the live HTML or RSC payload with `parsel`, and pushes a flat Pydantic-validated dataset to Apify. One run gives you a snapshot of every text-token model the providers sell, normalized so that `$2 / 1M tokens` and `$0.002 / 1K tokens` line up in the same column.

### 🎯 What this scrapes
Seven LLM API providers, one schema:

1. **OpenAI** — `openai.com/api/pricing/` (Cloudflare-protected; partial-success fallback when challenge does not clear)
2. **Anthropic** — `docs.anthropic.com` model comparison table (not the Webflow marketing page)
3. **Google (Gemini API)** — `ai.google.dev/gemini-api/docs/pricing`
4. **Mistral** — `mistral.ai/pricing` (Next.js RSC payload — JSON extracted via regex)
5. **Groq** — `groq.com/pricing` (server-rendered HTML table)
6. **Together AI** — `www.together.ai/pricing` (Webflow list items)
7. **DeepSeek** — `api-docs.deepseek.com/quick_start/pricing` (Docusaurus markdown table)

Output rows are normalized to **USD per 1 million tokens** regardless of how the provider publishes the price — per-1k prices are auto-multiplied by 1000 in the parser.

| Field | Type | Description |
|---|---|---|
| `provider` | string | Provider literal (`openai`, `anthropic`, `google`, ...) |
| `provider_display_name` | string | Human-readable name (e.g. `OpenAI`) |
| `model_id` | string | Provider-canonical ID (e.g. `gpt-4o-2024-08-06`) |
| `model_display_name` | string \| null | Human label from the pricing page |
| `pricing_unit` | string | Always `per_1m_tokens` |
| `input_usd_per_1m` | number \| null | Standard input price per 1M tokens |
| `output_usd_per_1m` | number \| null | Standard output price per 1M tokens |
| `cache_read_usd_per_1m` | number \| null | Cached input read price |
| `cache_write_usd_per_1m` | number \| null | Cache write price |
| `batch_input_usd_per_1m` | number \| null | Batch API input price |
| `batch_output_usd_per_1m` | number \| null | Batch API output price |
| `context_window_tokens` | integer \| null | Max context window |
| `max_output_tokens` | integer \| null | Max output tokens per request |
| `tier` | string \| null | Sub-tier label (e.g. `standard`) |
| `source_url` | string | Exact pricing page URL scraped |
| `scraped_at` | string | ISO 8601 UTC timestamp |

### 🔥 Features
- **Seven providers, one schema** — drop straight into a spreadsheet or BI tool with no per-provider normalization on your end.
- **Per-1k auto-conversion** — every `*_usd_per_1m` field is normalized regardless of how the provider lists prices on the page.
- **Per-provider isolation** — one provider failure (Cloudflare block, page restructure) does not abort the run; the other six still produce data.
- **OpenAI Cloudflare-aware** — `curl-cffi` impersonation rotation plus optional Apify Proxy; partial-success status message when the challenge cannot be cleared.
- **No browser** — pure HTTP with `curl-cffi` browser TLS fingerprint impersonation; low compute footprint and fast runs.
- **Pydantic v2 validation** — input and output are model-validated; invalid input fails fast with a clear error before any network call.
- **Filter knobs** — drop deprecated/legacy models, enforce a minimum context window, or restrict the provider list to just the ones you care about.
- **Exponential backoff** on `429` / `503` with `Retry-After` honoured.
- **Companion to `huggingface-hub-scraper`** as the *AI Stack Intelligence* suite — pair pricing with hub-side model adoption signals.

### 💡 Use cases
- **FinOps cost dashboard** — schedule weekly runs, write to a named dataset, and chart `input_usd_per_1m` over time per model. CloudZero reports the average AI company spends $85k/month on LLMs — a 10% saving is meaningful.
- **AI buyer comparison sheets** — feed the JSON into a spreadsheet and rank by `(input_usd_per_1m + output_usd_per_1m * 2)` weighted for the typical 2:1 output/input ratio of your workload.
- **Procurement bake-offs** — when evaluating Anthropic vs Google vs OpenAI for a new feature, pull the current pricing snapshot rather than relying on a stale screenshot in a PDF.
- **Cache-aware budgeting** — DeepSeek and Anthropic publish cache-hit pricing separately; this Actor surfaces it (`cache_read_usd_per_1m`) so you can model the effective rate after caching.
- **Batch-mode arbitrage** — OpenAI and Anthropic offer ~50% discounts via their batch APIs; surface `batch_input_usd_per_1m` / `batch_output_usd_per_1m` directly in your dashboard.
- **Investor research** — track price-per-token compression at the frontier (Groq, Together, DeepSeek) versus the incumbents (OpenAI, Anthropic, Google) over quarters.
- **Open-source pricing leaderboards** — feed a public site that ranks the cheapest model meeting a context-window or quality threshold.

### ⚙️ How to use it
1. Open the Actor input form.
2. (Optional) Pick **Providers** — leave empty to scrape all seven, or list a subset like `["groq", "deepseek"]`.
3. (Optional) Toggle **Include legacy models** — off by default; rows flagged `deprecated`/`legacy`/`retired` are dropped.
4. (Optional) Set **Minimum context window (tokens)** — e.g. `128000` to drop everything below 128K context.
5. Leave **Use Apify Proxy** off unless OpenAI is in your list — its Cloudflare challenge occasionally clears with a residential exit.
6. Click **Start**. Results stream into the default dataset.

#### Quick examples

**All seven providers, default settings:**

```json
{
  "providers": [],
  "includeLegacyModels": false
}
````

**Groq + DeepSeek only (no Cloudflare risk — the QA fixture):**

```json
{
  "providers": ["groq", "deepseek"],
  "includeLegacyModels": false,
  "useProxy": false
}
```

**Frontier models only (>= 128K context), all providers, with proxy for OpenAI:**

```json
{
  "providers": [],
  "includeLegacyModels": false,
  "minContextWindow": 128000,
  "useProxy": true
}
```

### 📥 Input

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `providers` | array of provider literals | no | `[]` (all seven) | Subset of `openai`, `anthropic`, `google`, `mistral`, `groq`, `together`, `deepseek` |
| `includeLegacyModels` | boolean | no | `false` | Keep rows flagged deprecated/legacy/retired |
| `minContextWindow` | integer | null | no | `null` | Drop rows with non-null context window below this value |
| `useProxy` | boolean | no | `false` | Route via Apify Proxy (`BUYPROXIES94952`) |

### 📤 Output

One dataset row per `(provider x model_id x tier)`. Example record — Anthropic Claude Sonnet 4.6 as of 2026-05-16:

```json
{
  "provider": "anthropic",
  "provider_display_name": "Anthropic",
  "model_id": "claude-sonnet-4-6",
  "model_display_name": "Claude Sonnet 4.6",
  "pricing_unit": "per_1m_tokens",
  "input_usd_per_1m": 3.0,
  "output_usd_per_1m": 15.0,
  "cache_read_usd_per_1m": null,
  "cache_write_usd_per_1m": null,
  "batch_input_usd_per_1m": null,
  "batch_output_usd_per_1m": null,
  "context_window_tokens": 1000000,
  "max_output_tokens": 64000,
  "tier": "standard",
  "source_url": "https://docs.anthropic.com/en/docs/about-claude/models/all-models",
  "scraped_at": "2026-05-16T13:40:00.000Z"
}
```

Download the dataset as JSON, CSV, Excel, or XML from the **Export** button on the run page.

### 💰 Pricing

Pay-Per-Event (PPE):

| Event | Rate (USD) | Trigger |
|---|---|---|
| `actor-start` | $0.05 | Once per Actor run at boot |
| `result-row` | $0.005 | Per pricing row pushed |

A typical run (all seven providers, ~80 total rows) costs **~$0.45**. Per-1,000-row extrapolation: **$5.05** — 6.5x cheaper than the only multi-provider competing actor on the Store (`parseforge/openrouter-models-pricing-scraper` at $32.85/1k, which only covers OpenRouter's re-routing layer, not the authoritative provider pages).

### 🚧 Limitations

- **OpenAI Cloudflare challenge** — `openai.com/api/pricing/` returns HTTP 403 with `cf-mitigated: challenge` to most plain HTTP requests. `curl-cffi` + Apify Proxy clears it most of the time; when it does not, OpenAI rows are skipped and the run continues with the other six providers (status message indicates partial success). A v2 Camoufox path is planned if the challenge becomes consistent.
- **Text-token models only** — image generation, speech-to-text, embeddings, and other modality prices are out of scope for v1.
- **Authoritative pages only** — Azure OpenAI, AWS Bedrock, Vertex AI, and OpenRouter pass-through prices are out of scope.
- **No historical tracking** — schedule runs and export to your own storage for time-series. Apify's default dataset retention is 7 days on the free plan.
- **Provider page restructures** — pricing pages change occasionally. Fields that cannot be parsed emit `null` rather than crashing; the QA fixture (groq + deepseek) catches parser breakage on every publish.

### ❓ FAQ

**Why these seven providers?**
They are the seven biggest providers of text-token LLM APIs by inference revenue as of Q1 2026. Cohere, AI21, and Perplexity are deliberately out of scope for v1; open a feature request if you need them.

**Why scrape the pricing pages instead of using each provider's API?**
None of the seven providers publish their pricing via an authenticated API. The pricing pages are the single source of truth. We hit the authoritative URL for each provider (e.g. `docs.anthropic.com`, not the marketing redirect at `claude.com/pricing`).

**Why is OpenAI sometimes missing from the output?**
OpenAI's pricing page sits behind Cloudflare's JavaScript challenge (`cf-mitigated: challenge`). `curl-cffi` with browser TLS impersonation plus an Apify Proxy residential exit usually clears it, but not always. When it does not clear, the Actor logs the block, sets a status message, and continues with the other six providers — a partial result is more useful than a hard failure.

**Are per-1k prices converted to per-1M?**
Yes. `pricing_unit` is always `"per_1m_tokens"`. Parsers detect per-1k pricing from column headers and multiply by 1000 before constructing the row.

**Does this Actor track price changes across runs?**
No — every run is a fresh snapshot. Schedule runs and export to your own storage (BigQuery, S3, a named dataset, etc.) to build a time series. Apify's default run-scoped storage is purged after 7 days on the free plan.

**Companion Actor?**
Yes — `huggingface-hub-scraper` is the other half of the *AI Stack Intelligence* suite. Pair model adoption (HF downloads, GGUF availability) with live pricing for full-stack AI cost-and-coverage dashboards.

### 💬 Your feedback

Found a parser that broke after a provider's pricing page restructure? Want a new provider added? Open an issue on the Actor's Apify Store page or contact us at [apify.com/DevilScrapes](https://apify.com/DevilScrapes). We monitor publish-day QA failures and ship patches the same week.

# Actor input Schema

## `providers` (type: `array`):

List of providers to scrape. Valid values: <code>openai</code>, <code>anthropic</code>, <code>google</code>, <code>mistral</code>, <code>groq</code>, <code>together</code>, <code>deepseek</code>. Leave empty to scrape all seven (order: anthropic, google, mistral, groq, together, deepseek, openai).

## `includeLegacyModels` (type: `boolean`):

When disabled, rows where the provider page explicitly labels a model <code>deprecated</code>, <code>legacy</code>, or <code>retired</code> are dropped before push.

## `minContextWindow` (type: `integer`):

Drop rows whose <code>context\_window\_tokens</code> is non-null and below this value. Rows with unknown context window are retained.

## `useProxy` (type: `boolean`):

Route requests through Apify Proxy (<code>BUYPROXIES94952</code>). Recommended when OpenAI is in the provider list — its Cloudflare challenge sometimes clears with a residential exit.

## Actor input object example

```json
{
  "providers": [],
  "includeLegacyModels": false,
  "useProxy": false
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

All dataset items as JSON.

## `datasetItemsCsv` (type: `string`):

Same data exported to CSV.

## `datasetView` (type: `string`):

Open the run dataset in the Console.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("devilscrapes/llm-pricing-monitor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("devilscrapes/llm-pricing-monitor").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 '{}' |
apify call devilscrapes/llm-pricing-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LLM Pricing Monitor",
        "description": "Scrape live LLM API pricing from OpenAI, Anthropic, Google, Mistral, Groq, Together AI and DeepSeek. Normalized per-million-token output for cost dashboards and FinOps pipelines. Beats OpenRouter-only competitor by 6.5x.",
        "version": "0.1",
        "x-build-id": "0JQbGtm9d3a5af0rO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/devilscrapes~llm-pricing-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-devilscrapes-llm-pricing-monitor",
                "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/devilscrapes~llm-pricing-monitor/runs": {
            "post": {
                "operationId": "runs-sync-devilscrapes-llm-pricing-monitor",
                "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/devilscrapes~llm-pricing-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-devilscrapes-llm-pricing-monitor",
                "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",
                "properties": {
                    "providers": {
                        "title": "Providers",
                        "type": "array",
                        "description": "List of providers to scrape. Valid values: <code>openai</code>, <code>anthropic</code>, <code>google</code>, <code>mistral</code>, <code>groq</code>, <code>together</code>, <code>deepseek</code>. Leave empty to scrape all seven (order: anthropic, google, mistral, groq, together, deepseek, openai).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeLegacyModels": {
                        "title": "Include legacy models",
                        "type": "boolean",
                        "description": "When disabled, rows where the provider page explicitly labels a model <code>deprecated</code>, <code>legacy</code>, or <code>retired</code> are dropped before push.",
                        "default": false
                    },
                    "minContextWindow": {
                        "title": "Minimum context window (tokens)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Drop rows whose <code>context_window_tokens</code> is non-null and below this value. Rows with unknown context window are retained."
                    },
                    "useProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify Proxy (<code>BUYPROXIES94952</code>). Recommended when OpenAI is in the provider list — its Cloudflare challenge sometimes clears with a residential exit.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
