# Prediction Markets Scraper - MCP Server (`jan.turon/prediction-markets-scraper-mcp-server`) Actor

Scrape live prediction market events, prices, and liquidity across 13 exchanges: Polymarket, Kalshi, Limitless, Metaculus, Smarkets, and more

- **URL**: https://apify.com/jan.turon/prediction-markets-scraper-mcp-server.md
- **Developed by:** [Jan Turoň](https://apify.com/jan.turon) (community)
- **Categories:** Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 prediction market data

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

## Prediction Markets Scraper — MCP Server

> **One actor. Every market. AI-ready.**

Scrape live prediction market events, prices, and liquidity across **13 exchanges** — Polymarket, Kalshi, Limitless, Metaculus, Smarkets, and more — powered by the [pmxtjs](https://github.com/pmxt-dev/pmxt) unified API.

Runs as an **Apify actor** for scheduled scraping and one-off runs. Because Apify connects **native MCP integration**, the data this actor collects is immediately consumable by AI agents like Claude and Cursor — no extra server required.

---

### Supported Exchanges

| Exchange | Region | Type |
|---|---|---|
| Polymarket | Global | Crypto |
| Polymarket US | US | Regulated |
| Kalshi | US | Regulated (CFTC) |
| Kalshi Demo | US | Demo |
| Limitless | Global | Crypto |
| Metaculus | Global | Forecasting |
| Smarkets | Europe | Exchange |
| Myriad | Global | Crypto |
| Probable | Global | Crypto |
| Opinion | Global | Social |
| Hyperliquid | Global | DeFi |
| Gemini Titan | US | Regulated |
| SuiBets | Global | Crypto |

---

### Apify Platform Capabilities

Running this as an Apify Actor gives you the full Apify infrastructure stack on top of the scraping logic:

- **Scheduled runs** — trigger on any cron schedule (hourly snapshots, daily digests, weekly archives) via the Apify Console or API.
- **Webhooks** — fire a POST to any endpoint when a run finishes, enabling downstream pipelines (Slack alerts, database writes, further actors).
- **Dataset storage** — all output lands in a structured Apify Dataset, queryable via REST API, exportable as JSON/CSV/XLSX, and viewable in the Console.
- **Key-value store** — the actor writes a run summary (record count, exchanges queried, finish time) to the default KV store after each run.
- **Apify API** — call the actor programmatically from any language, pass input overrides per run, and read results back without ever touching the Console.
- **Actor-to-actor chaining** — pipe this actor's dataset output directly into downstream actors (e.g. an LLM summariser, a notifier, a database sync actor) using Apify's dataset `getItems` API or the `Actor.metamorph()` pattern.
- **MCP integration** — Apify's native [Model Context Protocol](https://docs.apify.com/platform/integrations/mcp) support lets Claude, Cursor, and other AI agents call this actor as a tool directly from the chat — no extra server or wrapper needed.
- **Monitoring & alerts** — set run-failure notifications and memory/timeout limits in the Console.
- **Proxy support** — plug in Apify's residential or datacenter proxies if any exchange starts rate-limiting headless requests.

---

### Pricing

This actor uses **pay-per-event** billing — you only pay for what you actually scrape.

| Event | Price | When charged |
|---|---|---|
| `actor-start` | $0.01 | Once per run, before any fetching |
| `prediction-market-event` | $0.002 | Per event scraped and saved to the dataset |

**Example costs:**

| Run | Records | Cost |
|---|---|---|
| 50 events from 1 exchange | 50 | ~$0.11 |
| 150 events from 3 exchanges | 150 | ~$0.31 |
| 500 events, deduped cross-venue | 500 | ~$1.01 |

The actor respects your `maxTotalChargeUsd` budget — if the limit is reached mid-run, it saves whatever was collected and exits cleanly without losing partial results.

Prices are set in the **Publication tab** of the Apify Console. The events emitted by the code are `actor-start` and `prediction-market-event`.

---

### Input

Configure the actor in Apify Console or pass a JSON input file:

```json
{
  "exchanges": ["Polymarket", "Kalshi", "Limitless"],
  "query": "US election 2026",
  "limit": 100,
  "status": "active",
  "category": "politics",
  "tags": ["US", "election"],
  "minVolume": 50000,
  "minLiquidity": 10000,
  "includeOutcomes": true,
  "includeSourceMetadata": false,
  "crossVenueDedup": true,
  "outputFormat": "events"
}
````

#### Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `exchanges` | `string[]` | `[Polymarket, Kalshi, Limitless]` | Exchanges to query |
| `query` | `string` | — | Keyword / natural-language search. Omit for top events by volume. |
| `limit` | `number` | `50` | Max results per exchange (1–1000) |
| `status` | `string` | `active` | `active` | `inactive` | `closed` | `all` |
| `category` | `string` | — | Category filter (e.g. `politics`, `crypto`, `sports`) |
| `tags` | `string[]` | — | Tag filter — returns events matching ANY tag |
| `minVolume` | `number` | `0` | Minimum total traded volume (USD) |
| `minLiquidity` | `number` | `0` | Minimum market liquidity (USD) |
| `includeOutcomes` | `boolean` | `true` | Include full outcomes array (for multi-outcome markets) |
| `includeSourceMetadata` | `boolean` | `false` | Attach raw venue-specific metadata to each event |
| `crossVenueDedup` | `boolean` | `false` | Merge same-event records from different exchanges |
| `outputFormat` | `string` | `events` | `events` | `markets` | `flat` (see below) |

***

### Output Formats

#### `events` — One record per event, markets nested

```json
{
  "id": "...",
  "title": "Will Trump nominate Kevin Warsh as Fed Chair?",
  "sourceExchange": "Polymarket",
  "volume": 4820000,
  "volume24h": 130000,
  "category": "politics",
  "tags": ["US", "Fed", "economy"],
  "markets": [
    {
      "marketId": "...",
      "title": "Kevin Warsh",
      "yes": { "price": 0.72, "priceChange24h": -0.03 },
      "no":  { "price": 0.28, "priceChange24h": 0.03 },
      "liquidity": 920000,
      "volume": 4820000,
      "resolutionDate": "2026-01-31T00:00:00Z",
      "status": "active"
    }
  ],
  "scrapedAt": "2026-06-02T10:00:00Z"
}
```

#### `markets` — One record per market, event info flattened

```json
{
  "marketId": "...",
  "eventTitle": "Will Trump nominate Kevin Warsh as Fed Chair?",
  "title": "Kevin Warsh",
  "yes": { "price": 0.72 },
  "no":  { "price": 0.28 },
  "volume": 4820000,
  "liquidity": 920000,
  "resolutionDate": "2026-01-31T00:00:00Z",
  "sourceExchange": "Polymarket",
  "scrapedAt": "2026-06-02T10:00:00Z"
}
```

#### `flat` — One record per outcome (Yes / No / multi-outcome)

Best for price comparison, arbitrage detection, and time-series storage.

```json
{
  "eventTitle": "Will Trump nominate Kevin Warsh as Fed Chair?",
  "marketTitle": "Kevin Warsh",
  "outcomeLabel": "Yes",
  "price": 0.72,
  "priceChange24h": -0.03,
  "volume": 4820000,
  "liquidity": 920000,
  "resolutionDate": "2026-01-31T00:00:00Z",
  "status": "active",
  "sourceExchange": "Polymarket",
  "url": "https://polymarket.com/...",
  "scrapedAt": "2026-06-02T10:00:00Z"
}
```

All prices are normalized to `0.0–1.0` (implied probability) regardless of venue.

***

### Under the Hood

This actor is built on [pmxtjs](https://github.com/pmxt-dev/pmxt), the TypeScript SDK of the PMXT unified prediction market API — think of it as the [ccxt](https://github.com/ccxt/ccxt) for prediction markets.

#### Core Data Flow

```
fetchEvents(params)          ← pmxtjs Exchange class
      │
      ▼
  UnifiedEvent[]             ← normalized, cross-exchange schema
      │
  ┌───┴──────────────────────────┐
  │  filter (volume, liquidity)  │
  │  dedup (crossVenueDedup)     │
  └───────────────┬──────────────┘
                  │
            Apify Dataset
      (events | markets | flat)
```

#### Data Model

```
UnifiedEvent
  ├─ id, title, description, slug
  ├─ url, image, category, tags[]
  ├─ volume, volume24h
  ├─ sourceExchange
  └─ markets: UnifiedMarket[]
        ├─ marketId, title, description
        ├─ resolutionDate, status
        ├─ volume, volume24h, liquidity, openInterest
        ├─ yes: MarketOutcome { price, priceChange24h }
        ├─ no:  MarketOutcome { price, priceChange24h }
        └─ outcomes: MarketOutcome[]   ← multi-outcome markets
```

#### fetchEvents Parameters (pmxtjs)

The actor maps its input directly to pmxtjs `fetchEvents` params:

```typescript
await api.fetchEvents({
  query:   'Who will be Fed Chair?',  // natural-language search
  limit:   50,                        // max results
  status:  'active',                  // active | inactive | closed
  category: 'politics',
  tags:    ['US', 'Fed'],
  // plus: offset, cursor, sort, eventId, slug, series
});
```

# Actor input Schema

## `exchanges` (type: `array`):

Prediction market venues to query. Leave empty to query all supported exchanges.

## `query` (type: `string`):

Keyword or natural-language search query for events. Omit to retrieve top events by volume.

## `limit` (type: `integer`):

Maximum number of events to return per exchange.

## `status` (type: `string`):

Filter events by resolution status.

## `category` (type: `string`):

Filter by event category (e.g. politics, crypto, sports). Leave blank for all categories.

## `tags` (type: `array`):

Return only events matching ANY of these tags.

## `minVolume` (type: `number`):

Only include events whose total traded volume (USD) meets this threshold.

## `minLiquidity` (type: `number`):

Only include markets whose liquidity meets this threshold.

## `includeOutcomes` (type: `boolean`):

When true, the full outcomes array is included (useful for multi-outcome markets). When false, only the yes/no shorthand is kept to reduce payload size.

## `includeSourceMetadata` (type: `boolean`):

Attach raw venue-specific metadata to each event for advanced use-cases.

## `crossVenueDedup` (type: `boolean`):

When true, events that appear on multiple exchanges are merged into a single record with an 'allExchanges' array showing arbitrage opportunities.

## `outputFormat` (type: `string`):

Shape of the Apify dataset records.

## Actor input object example

```json
{
  "exchanges": [
    "Polymarket",
    "Kalshi"
  ],
  "query": "US election 2026",
  "limit": 50,
  "status": "active",
  "category": "politics",
  "tags": [
    "US",
    "election"
  ],
  "minVolume": 10000,
  "minLiquidity": 5000,
  "includeOutcomes": true,
  "includeSourceMetadata": false,
  "crossVenueDedup": false,
  "outputFormat": "events"
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped prediction market events, markets, or outcome prices depending on the outputFormat input.

## `summary` (type: `string`):

JSON summary: totalRecords, exchanges queried, outputFormat, query, limitReached, finishedAt.

# 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("jan.turon/prediction-markets-scraper-mcp-server").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("jan.turon/prediction-markets-scraper-mcp-server").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 jan.turon/prediction-markets-scraper-mcp-server --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Prediction Markets Scraper - MCP Server",
        "description": "Scrape live prediction market events, prices, and liquidity across 13 exchanges: Polymarket, Kalshi, Limitless, Metaculus, Smarkets, and more",
        "version": "0.0",
        "x-build-id": "qUKbSnGpgZV2tCfGI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jan.turon~prediction-markets-scraper-mcp-server/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jan.turon-prediction-markets-scraper-mcp-server",
                "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/jan.turon~prediction-markets-scraper-mcp-server/runs": {
            "post": {
                "operationId": "runs-sync-jan.turon-prediction-markets-scraper-mcp-server",
                "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/jan.turon~prediction-markets-scraper-mcp-server/run-sync": {
            "post": {
                "operationId": "run-sync-jan.turon-prediction-markets-scraper-mcp-server",
                "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": {
                    "exchanges": {
                        "title": "Exchanges",
                        "type": "array",
                        "description": "Prediction market venues to query. Leave empty to query all supported exchanges.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Polymarket",
                                "PolymarketUS",
                                "Kalshi",
                                "KalshiDemo",
                                "Limitless",
                                "Metaculus",
                                "Smarkets",
                                "Myriad",
                                "Probable",
                                "Opinion",
                                "Hyperliquid",
                                "GeminiTitan",
                                "SuiBets"
                            ]
                        },
                        "default": [
                            "Polymarket"
                        ]
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword or natural-language search query for events. Omit to retrieve top events by volume."
                    },
                    "limit": {
                        "title": "Max Results per Exchange",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of events to return per exchange.",
                        "default": 50
                    },
                    "status": {
                        "title": "Market Status",
                        "enum": [
                            "active",
                            "inactive",
                            "closed",
                            "all"
                        ],
                        "type": "string",
                        "description": "Filter events by resolution status.",
                        "default": "active"
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Filter by event category (e.g. politics, crypto, sports). Leave blank for all categories."
                    },
                    "tags": {
                        "title": "Tags",
                        "type": "array",
                        "description": "Return only events matching ANY of these tags.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minVolume": {
                        "title": "Minimum Volume (USD)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Only include events whose total traded volume (USD) meets this threshold.",
                        "default": 0
                    },
                    "minLiquidity": {
                        "title": "Minimum Liquidity (USD)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Only include markets whose liquidity meets this threshold.",
                        "default": 0
                    },
                    "includeOutcomes": {
                        "title": "Include All Outcomes",
                        "type": "boolean",
                        "description": "When true, the full outcomes array is included (useful for multi-outcome markets). When false, only the yes/no shorthand is kept to reduce payload size.",
                        "default": true
                    },
                    "includeSourceMetadata": {
                        "title": "Include Source Metadata",
                        "type": "boolean",
                        "description": "Attach raw venue-specific metadata to each event for advanced use-cases.",
                        "default": false
                    },
                    "crossVenueDedup": {
                        "title": "Cross-Venue Deduplication",
                        "type": "boolean",
                        "description": "When true, events that appear on multiple exchanges are merged into a single record with an 'allExchanges' array showing arbitrage opportunities.",
                        "default": false
                    },
                    "outputFormat": {
                        "title": "Output Format",
                        "enum": [
                            "events",
                            "markets",
                            "flat"
                        ],
                        "type": "string",
                        "description": "Shape of the Apify dataset records.",
                        "default": "events"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
