# ClinicalTrials.gov Monitor 🔬 (new trials, status alerts) (`tagadanar/clinicaltrials-monitor`) Actor

Watch a condition, drug, sponsor or phase on ClinicalTrials.gov and get only what changed since last run: new trials, phase transitions, status changes, sponsor changes. Official v2 API, no key, all platform usage included in the price.

- **URL**: https://apify.com/tagadanar/clinicaltrials-monitor.md
- **Developed by:** [Tagada Data](https://apify.com/tagadanar) (community)
- **Categories:** Automation, AI, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 trial founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## ClinicalTrials.gov Pipeline Monitor: New Trials, Phase & Status Alerts

**Watch a condition, drug, sponsor or phase on ClinicalTrials.gov and get back only what changed since your last run: new trials, phase transitions, status changes, sponsor changes.** Give it a watchlist, schedule it, and it reports (and charges) only for genuinely new or changed trials, not the same list every day. Data comes straight from the official ClinicalTrials.gov v2 REST API, no key required.

Built for **competitive-intelligence and pharma/biotech teams, clinical research organizations, patient-advocacy groups, biotech investors, and AI agents** (works out of the box via API and MCP).

### Why this actor

- One watchlist, a real diff: most trial "APIs" and exports hand you the full result set every time and leave deduplication to you. This one keeps a persistent memory of what it has already seen and returns only new trials plus the ones whose status, phase or sponsor moved.
- Change types you can route on: every monitor row is tagged `new`, `status-changed` (with the previous status), `phase-changed` or `sponsor-changed`, so you can alert on "went to recruiting" or "advanced to Phase 3" specifically.
- Official source, no key, no scraping: every field comes from the ClinicalTrials.gov v2 API (`clinicaltrials.gov/api/v2/studies`). No login, no third-party mirror.
- Flat schema, no JSON spelunking: `nctId`, title, status, phase, study type, lead sponsor, conditions and dates as plain columns, plus a direct study link.
- Monitor mode with a Slack-compatible webhook digest: schedule it and get pinged only when the pipeline actually moves.
- Fair pricing: you pay per trial actually returned. A quiet day on a scheduled watchlist costs nothing beyond the flat run fee.

### Use cases

- **Competitive intelligence**: watch a competitor's drug or a target indication and get alerted when a new trial appears or an existing one advances a phase.
- **Biotech / pharma investors**: track a sponsor's whole pipeline and catch status changes (recruiting, completed, terminated) as they post.
- **Clinical research organizations**: monitor a therapeutic area for newly recruiting studies to source sites and referrals.
- **Patient advocacy**: watch a condition and surface trials that just opened for enrollment.
- **AI agents**: plug it into Claude, Cursor or any MCP client and ask, *"any new Phase 2 small cell lung cancer trials this week?"*

### Input

```json
{
    "conditions": ["small cell lung cancer"],
    "overallStatus": ["RECRUITING"],
    "phases": ["PHASE2"],
    "maxStudies": 50
}
````

Provide at least one of `conditions`, `terms` or `sponsors` so the query is scoped. `conditions` maps to the API's condition search, `terms` to free-text (drug or intervention names), `sponsors` to lead sponsor/collaborator. `phases`, `overallStatus` and `studyType` narrow the results further.

Monitor mode example (for a scheduled run):

```json
{
    "sponsors": ["Bayer"],
    "phases": ["PHASE1", "PHASE2", "PHASE3"],
    "overallStatus": ["RECRUITING", "ACTIVE_NOT_RECRUITING"],
    "monitorMode": true,
    "webhookUrl": "https://hooks.slack.com/services/xxx/yyy/zzz"
}
```

Accepted `phases`: `EARLY_PHASE1`, `PHASE1`, `PHASE2`, `PHASE3`, `PHASE4`. Accepted `overallStatus` values include `RECRUITING`, `NOT_YET_RECRUITING`, `ACTIVE_NOT_RECRUITING`, `COMPLETED`, `TERMINATED`, `SUSPENDED`, `WITHDRAWN`, `UNKNOWN`. `studyType` is `INTERVENTIONAL` or `OBSERVATIONAL` (leave empty for both).

### Output (one record per new or changed trial)

```json
{
    "nctId": "NCT03996473",
    "title": "A Study of Radium-223 in Combination With Pembrolizumab...",
    "url": "https://clinicaltrials.gov/study/NCT03996473",
    "overallStatus": "TERMINATED",
    "phase": "PHASE1",
    "studyType": "INTERVENTIONAL",
    "leadSponsor": "Bayer",
    "conditions": ["Non-small Cell Lung Cancer"],
    "startDate": "2020-03-06",
    "lastUpdatePostDate": "2024-10-10",
    "changeType": "new",
    "previousStatus": null,
    "scrapedAt": "2026-07-07T00:00:00.000Z"
}
```

| Field | Meaning |
|---|---|
| `nctId` | The trial's ClinicalTrials.gov identifier |
| `title` | Brief title |
| `url` | Direct link to the study page |
| `overallStatus` | Recruitment / overall status (`RECRUITING`, `COMPLETED`, `TERMINATED`...) |
| `phase` | Trial phase(s), joined (e.g. `PHASE1, PHASE2`); `null` for observational studies |
| `studyType` | `INTERVENTIONAL` or `OBSERVATIONAL` |
| `leadSponsor` | Lead sponsor name |
| `conditions` | Conditions / diseases studied |
| `startDate` / `lastUpdatePostDate` | Study start and last-update-posted dates |
| `changeType` | Monitor mode: `new`, `status-changed`, `phase-changed` or `sponsor-changed`; `null` on one-off runs |
| `previousStatus` | The prior status when `changeType` is `status-changed`; else `null` |
| `scrapedAt` | When this run fetched the trial |

On a one-off run (`monitorMode` off) you get every match with `changeType` set to `null`. In monitor mode the first run seeds the baseline and reports everything as `new`; later runs return only new or changed trials.

### Pricing

Pay per event, no subscription and no minimum. These prices are the whole bill: all platform usage (compute, storage) is included, so what you see is what a run costs. Users on higher Apify plans get automatic discounts.

| Event | Price | When |
|---|---|---|
| Run started | **$0.001** | Flat, once per run |
| Trial found | **$0.01** | Per new/changed trial returned with its data |
| Digest sent | **$0.03** | Monitor mode only, per Slack/webhook digest actually posted |

A thousand trials costs $10, and in monitor mode a quiet watchlist costs essentially nothing: the persistent seen-set means you are never billed twice for the same unchanged trial, so a scheduled run that finds no changes only pays the $0.001 run fee. That is the difference from a raw scraper that bills you for the whole result set on every run.

### FAQ

**Where does the data come from?** The official ClinicalTrials.gov v2 REST API (`clinicaltrials.gov/api/v2/studies`). It is public, keyless and open, so there is no login, no scraping and no third-party aggregator.

**How is this different from just querying the API myself?** The API returns the full matching set on every call. This actor remembers what it already showed you and returns only new trials plus the ones whose status, phase or sponsor changed, tagged with the exact change. That is the difference between a query and a monitor.

**How do I get alerted when a trial starts recruiting or advances a phase?** Turn on `monitorMode`, add a Slack (or any) webhook URL, and schedule the actor. You get a digest only when something in your watchlist actually changes, and you are only charged for changed trials.

**Can I watch a whole sponsor's pipeline?** Yes, put the sponsor name in `sponsors` and leave `conditions` empty. Combine with `phases` and `overallStatus` to narrow it.

**Can I filter by phase and status?** Yes. `phases` accepts `EARLY_PHASE1` through `PHASE4`; `overallStatus` accepts the API's status values (`RECRUITING`, `COMPLETED`, `TERMINATED`, and so on). Both are optional.

**Does it work with AI agents?** Yes. Like every Apify actor it is exposed via REST API and **MCP**, so Claude, Cursor and similar tools can call it directly, for instance to answer "list new Phase 2 melanoma trials from this month".

***

### Something missing?

If you need an extra field, another source, or a different output, open an issue on this Actor and describe it. I read every request and small additions usually ship within days. More monitors and data Actors are on [my profile](https://apify.com/tagadanar).

*Keywords: ClinicalTrials.gov API, clinical trials monitor, clinical trial tracker, NCT lookup, trial phase change alert, recruiting trials alert, clinical trial status monitor, pharma pipeline monitoring, competitor drug pipeline tracking, sponsor pipeline tracker, biotech competitive intelligence, drug trial monitoring, clinical trials for AI agents, MCP, ClinicalTrials.gov v2 API.*

# Actor input Schema

## `conditions` (type: `array`):

Diseases or conditions to watch, e.g. <code>small cell lung cancer</code>, <code>melanoma</code>. Maps to the API's <code>query.cond</code>. Multiple entries are combined with OR.

## `terms` (type: `array`):

Free-text search terms, e.g. a drug or intervention name like <code>pembrolizumab</code>, <code>CAR-T</code>. Maps to <code>query.term</code>. Combined with OR.

## `sponsors` (type: `array`):

Lead sponsor or collaborator names, e.g. <code>Pfizer</code>, <code>Bayer</code>. Maps to <code>query.spons</code>. Combined with OR.

## `phases` (type: `array`):

Trial phases to keep. Accepted values: <code>EARLY\_PHASE1</code>, <code>PHASE1</code>, <code>PHASE2</code>, <code>PHASE3</code>, <code>PHASE4</code>. Leave empty for all phases.

## `overallStatus` (type: `array`):

Recruitment/overall status filter. Accepted values include <code>RECRUITING</code>, <code>NOT\_YET\_RECRUITING</code>, <code>ACTIVE\_NOT\_RECRUITING</code>, <code>COMPLETED</code>, <code>TERMINATED</code>, <code>SUSPENDED</code>, <code>WITHDRAWN</code>, <code>UNKNOWN</code>. Leave empty for all.

## `studyType` (type: `string`):

Keep only interventional or only observational studies. Applied after the query.

## `pageSize` (type: `integer`):

Studies fetched per API page (max 1000). Larger pages mean fewer requests.

## `maxStudies` (type: `integer`):

Stop after collecting this many matching studies. Caps cost and runtime on broad queries.

## `monitorMode` (type: `boolean`):

Remember trials already seen across runs and return only new or changed ones (new trial, phase transition, status change, sponsor change). Built for a scheduled run: the first run establishes the baseline, later runs report and charge for changes only.

## `webhookUrl` (type: `string`):

When monitor mode finds new/changed trials, post a text digest here (Slack incoming webhook or any endpoint accepting <code>{"text": "..."}</code> JSON).

## Actor input object example

```json
{
  "conditions": [
    "small cell lung cancer"
  ],
  "terms": [],
  "sponsors": [],
  "phases": [],
  "overallStatus": [
    "RECRUITING"
  ],
  "studyType": "",
  "pageSize": 10,
  "maxStudies": 10,
  "monitorMode": false
}
```

# Actor output Schema

## `trials` (type: `string`):

One item per new or changed trial in the default dataset.

# 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 = {
    "conditions": [
        "small cell lung cancer"
    ],
    "overallStatus": [
        "RECRUITING"
    ],
    "pageSize": 10,
    "maxStudies": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("tagadanar/clinicaltrials-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 = {
    "conditions": ["small cell lung cancer"],
    "overallStatus": ["RECRUITING"],
    "pageSize": 10,
    "maxStudies": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("tagadanar/clinicaltrials-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 '{
  "conditions": [
    "small cell lung cancer"
  ],
  "overallStatus": [
    "RECRUITING"
  ],
  "pageSize": 10,
  "maxStudies": 10
}' |
apify call tagadanar/clinicaltrials-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ClinicalTrials.gov Monitor 🔬 (new trials, status alerts)",
        "description": "Watch a condition, drug, sponsor or phase on ClinicalTrials.gov and get only what changed since last run: new trials, phase transitions, status changes, sponsor changes. Official v2 API, no key, all platform usage included in the price.",
        "version": "0.1",
        "x-build-id": "q2oEygP3Tf9qCs2Zz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tagadanar~clinicaltrials-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tagadanar-clinicaltrials-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/tagadanar~clinicaltrials-monitor/runs": {
            "post": {
                "operationId": "runs-sync-tagadanar-clinicaltrials-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/tagadanar~clinicaltrials-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-tagadanar-clinicaltrials-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": {
                    "conditions": {
                        "title": "Conditions / diseases",
                        "type": "array",
                        "description": "Diseases or conditions to watch, e.g. <code>small cell lung cancer</code>, <code>melanoma</code>. Maps to the API's <code>query.cond</code>. Multiple entries are combined with OR.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "terms": {
                        "title": "Free-text / intervention terms",
                        "type": "array",
                        "description": "Free-text search terms, e.g. a drug or intervention name like <code>pembrolizumab</code>, <code>CAR-T</code>. Maps to <code>query.term</code>. Combined with OR.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sponsors": {
                        "title": "Sponsors",
                        "type": "array",
                        "description": "Lead sponsor or collaborator names, e.g. <code>Pfizer</code>, <code>Bayer</code>. Maps to <code>query.spons</code>. Combined with OR.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "phases": {
                        "title": "Phases",
                        "type": "array",
                        "description": "Trial phases to keep. Accepted values: <code>EARLY_PHASE1</code>, <code>PHASE1</code>, <code>PHASE2</code>, <code>PHASE3</code>, <code>PHASE4</code>. Leave empty for all phases.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "overallStatus": {
                        "title": "Overall status",
                        "type": "array",
                        "description": "Recruitment/overall status filter. Accepted values include <code>RECRUITING</code>, <code>NOT_YET_RECRUITING</code>, <code>ACTIVE_NOT_RECRUITING</code>, <code>COMPLETED</code>, <code>TERMINATED</code>, <code>SUSPENDED</code>, <code>WITHDRAWN</code>, <code>UNKNOWN</code>. Leave empty for all.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "studyType": {
                        "title": "Study type",
                        "enum": [
                            "",
                            "INTERVENTIONAL",
                            "OBSERVATIONAL"
                        ],
                        "type": "string",
                        "description": "Keep only interventional or only observational studies. Applied after the query.",
                        "default": ""
                    },
                    "pageSize": {
                        "title": "Page size",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Studies fetched per API page (max 1000). Larger pages mean fewer requests.",
                        "default": 100
                    },
                    "maxStudies": {
                        "title": "Max studies per run",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Stop after collecting this many matching studies. Caps cost and runtime on broad queries.",
                        "default": 200
                    },
                    "monitorMode": {
                        "title": "Monitor mode (alert on new/changed trials only)",
                        "type": "boolean",
                        "description": "Remember trials already seen across runs and return only new or changed ones (new trial, phase transition, status change, sponsor change). Built for a scheduled run: the first run establishes the baseline, later runs report and charge for changes only.",
                        "default": false
                    },
                    "webhookUrl": {
                        "title": "Webhook URL (Slack-compatible)",
                        "type": "string",
                        "description": "When monitor mode finds new/changed trials, post a text digest here (Slack incoming webhook or any endpoint accepting <code>{\"text\": \"...\"}</code> JSON)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
