# WHO ICTRP Clinical Trials Scraper (`crawlerbros/who-ictrp-clinical-trials-scraper`) Actor

Scrape the WHO ICTRP clinical trials search portal, aggregating 22+ national registries (ClinicalTrials.gov, EU-CTR/CTIS, ISRCTN, ChiCTR, ANZCTR, CTRI and more). Search by condition, intervention, sponsor, status or trial ID; get full trial metadata.

- **URL**: https://apify.com/crawlerbros/who-ictrp-clinical-trials-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Agents, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## WHO ICTRP Clinical Trials Scraper

Scrape the [WHO International Clinical Trials Registry Platform (ICTRP)](https://trialsearch.who.int) search portal — a single search interface aggregating clinical trial registrations from 22+ national and regional registries, including ClinicalTrials.gov (USA), EU-CTR/CTIS (Europe), ISRCTN (UK), ChiCTR (China), ANZCTR (Australia/NZ), CTRI (India), DRKS (Germany), jRCT (Japan), IRCT (Iran), and more. HTTP-only, no login, no proxy, no API key.

### What this actor does

- **Two modes:** `search` (condition / intervention / title / sponsor / secondary-ID / recruitment-status / date-range) and `byTrialIds` (exact lookup)
- **Client-side filters:** phase, source registry, recruiting country, results availability
- **Full trial metadata** pulled from each trial's detail page — condition, intervention, sponsor, phase, countries, study type/design, target size, outcomes, results-availability, eligibility criteria (age/gender/inclusion/exclusion), funding source
- **Empty fields are omitted**

### Output per trial

- `trialId`, `sourceRegistry` — the national/regional registry that owns the record (e.g. `ClinicalTrials.gov`, `ChiCTR`, `EUCTR`)
- `title`, `scientificTitle`, `acronym`
- `condition`, `intervention`
- `sponsor` — primary sponsor
- `secondaryId` — supplementary identifier (sponsor protocol number, IND/IDE number), when on file
- `recruitmentStatus`, `phase`
- `studyType`, `studyDesign`, `allocation`, `assignment`
- `gender`, `ageMinimum`, `ageMaximum` — eligibility criteria
- `inclusionCriteria`, `exclusionCriteria` — full eligibility criteria text, when split by the source
- `sourceOfMonetarySupport` — funding source
- `countries[]` — countries of recruitment
- `dateRegistration`, `dateEnrollment`, `lastUpdated`
- `targetSize`
- `resultsAvailable` — boolean
- `outcomes[]` — primary/secondary outcome names (up to 10)
- `trialUrl` — canonical WHO ICTRP trial detail page (mirror)
- `sourceRegistryUrl` — canonical page on the primary registry (e.g. the actual `clinicaltrials.gov` or `chictr.org.cn` page), when linked
- `resultsUrl`, `protocolUrl` — links to posted results / study protocol, when published
- `recordType: "trial"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byTrialIds` |
| `condition` | string | – | Health condition / disease |
| `intervention` | string | – | Drug, device, procedure |
| `title` | string | – | Title contains |
| `sponsor` | string | – | Primary sponsor (partial match) |
| `secondaryId` | string | – | Secondary/supplementary ID (not the primary trial ID) |
| `trialIds` | array | – | Exact trial IDs (mode=byTrialIds) |
| `recruitingStatus` | string | `ALL` | `ALL` / `Recruiting` |
| `dateRegistrationFrom` / `dateRegistrationTo` | string | – | `YYYY-MM-DD` |
| `phase` | string | – | Client-side phase filter |
| `sourceRegistry` | string | – | Client-side registry filter |
| `country` | string | – | Client-side recruiting-country filter (partial match) |
| `hasResults` | string (select) | `ALL` | `ALL` / `Yes` / `No` — filter by posted-results availability |
| `maxItems` | int | `20` | Hard cap (1-200) |

#### Example: recruiting diabetes trials in Germany, phase 3

```json
{
  "mode": "search",
  "condition": "diabetes",
  "recruitingStatus": "Recruiting",
  "phase": "Phase 3",
  "country": "Germany",
  "maxItems": 30
}
````

#### Example: exact trial lookup

```json
{
  "mode": "byTrialIds",
  "trialIds": ["NCT07670416", "ChiCTR2600127247", "ISRCTN12345678"]
}
```

#### Example: trials sponsored by a specific company

```json
{
  "mode": "search",
  "sponsor": "Pfizer",
  "sourceRegistry": "ClinicalTrials.gov",
  "maxItems": 50
}
```

### Use cases

- **Pharma competitive intelligence** — track a competitor's trial pipeline across every major registry from a single feed
- **Regulatory / market access research** — monitor trial activity by condition, country, or phase
- **Academic research** — bulk-export trial metadata for systematic reviews and meta-analyses
- **Patient recruitment platforms** — surface currently-recruiting trials by condition and country
- **Investment research** — monitor sponsor trial activity as a pipeline signal

### FAQ

**What's WHO ICTRP?** A World Health Organization initiative that aggregates clinical trial registrations from 22+ national/regional primary registries into one searchable index, standardizing on the WHO Trial Registration Data Set.

**How is this different from ClinicalTrials.gov?** ClinicalTrials.gov is one of the 22+ registries WHO ICTRP aggregates. Searching WHO ICTRP covers ClinicalTrials.gov *and* every other participating registry (EU-CTR/CTIS, ISRCTN, ChiCTR, ANZCTR, CTRI, DRKS, jRCT, IRCT, and more) in one search.

**Why is `secondaryId` different from the trial ID?** WHO ICTRP's "Secondary ID" field holds supplementary identifiers (sponsor protocol numbers, IND/IDE numbers) distinct from the registry's own primary trial ID. Use `mode=byTrialIds` for exact primary-ID lookups.

**Why do `phase`, `sourceRegistry`, `country`, `hasResults`, and `secondaryId` filter client-side instead of narrowing the search itself?** The WHO ICTRP portal's phase/country picker controls require JavaScript-driven interactions that can't be reliably replayed as a plain HTTP request, and the server-side `secondaryId` search box does a loose/fuzzy match (verified live — searching `NCT` returned trials whose actual secondary ID had nothing to do with `NCT`). Instead, the actor fetches full trial detail for every search-matched candidate and filters precisely against the real parsed phase/registry/country/results/secondaryId fields — more accurate than the upstream fuzzy match.

**Are all of WHO ICTRP's advanced-search checkboxes exposed?** Most are — the ones that map onto a field the actor reliably parses (recruitment status, phase, source registry, recruiting country, results availability). A few niche upstream checkboxes (COVID-19-only, rare diseases/orphan drugs, genome editing, pediatric-only) are not exposed as filters: WHO ICTRP doesn't publish a structured flag for these on the trial detail page, so building a filter would mean guessing from free-text fields (e.g. parsing "Age minimum" strings like `18 Years` / `6 Months` / blank) — too unreliable to ship as a filter. `ageMinimum`, `ageMaximum`, and `gender` are still available as raw output fields for anyone who wants to apply their own logic downstream.

**How fresh is the data?** WHO ICTRP re-imports each source registry on its own cadence (typically weekly; some registries daily). Each trial's `lastUpdated` field reflects the underlying registry's own last-modified date.

**Is there a rate limit?** No documented hard cap. The actor uses small delays between requests to be polite.

**Why do some searches take a while?** `trialsearch.who.int` is a slow legacy IIS server — each trial detail page can take several seconds to render. The actor scans up to ~600 search-matched candidates (6 pages x 100/page) to satisfy `maxItems` and the phase/sourceRegistry/country filters. Broad searches (no client-side filters) usually finish in well under a minute; a narrow phase + registry + country combination layered on top of a broad condition search can legitimately need to scan hundreds of candidates and take several minutes — increase the run timeout under **Run options** for those cases, or narrow the upstream `condition`/`intervention`/`sponsor` terms so fewer candidates need scanning.

# Actor input Schema

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

What to fetch.

## `condition` (type: `string`):

Health condition or disease to search for (mode=search), e.g. `diabetes`, `breast cancer`. Leave empty to search by intervention, title, sponsor, or secondaryId alone. If every search filter is left empty, the actor falls back to a demo condition ("cancer") so the daily test run still returns data.

## `intervention` (type: `string`):

Drug, device, procedure or other intervention to search for (mode=search), e.g. `metformin`.

## `title` (type: `string`):

Restrict to trials whose public/scientific title contains this text.

## `sponsor` (type: `string`):

Restrict to trials with this primary sponsor (partial match).

## `secondaryId` (type: `string`):

Restrict to trials with this secondary/supplementary ID (e.g. a sponsor protocol number or IND/IDE number) — NOT the primary registry trial ID. To look up an exact trial ID, use mode=byTrialIds instead.

## `trialIds` (type: `array`):

Exact WHO ICTRP trial/registration IDs, e.g. `NCT06012345`, `ChiCTR2600127247`, `ISRCTN12345678`.

## `recruitingStatus` (type: `string`):

Filter to currently-recruiting trials only, or include all statuses.

## `dateRegistrationFrom` (type: `string`):

Only trials registered on/after this date.

## `dateRegistrationTo` (type: `string`):

Only trials registered on/before this date.

## `phase` (type: `string`):

Filter results to a specific trial phase (client-side, matched against each trial's reported phase).

## `sourceRegistry` (type: `string`):

Filter results to trials registered with a specific national registry (client-side).

## `country` (type: `string`):

Filter results to trials recruiting in this country (client-side, partial match).

## `hasResults` (type: `string`):

Filter to trials that have (or don't have) posted results, mirroring WHO ICTRP's 'Results Only' search option (client-side, matched against each trial's parsed results-availability field).

## `maxItems` (type: `integer`):

Hard cap on emitted records. trialsearch.who.int is a slow legacy server — for large values combined with restrictive phase/sourceRegistry/country filters, increase the run timeout under Run options.

## Actor input object example

```json
{
  "mode": "search",
  "condition": "cancer",
  "trialIds": [],
  "recruitingStatus": "ALL",
  "phase": "",
  "sourceRegistry": "",
  "hasResults": "ALL",
  "maxItems": 20
}
```

# Actor output Schema

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

Dataset containing all scraped WHO ICTRP clinical trial records.

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "mode": "search",
    "condition": "cancer",
    "trialIds": [],
    "recruitingStatus": "ALL",
    "phase": "",
    "sourceRegistry": "",
    "hasResults": "ALL",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/who-ictrp-clinical-trials-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "condition": "cancer",
    "trialIds": [],
    "recruitingStatus": "ALL",
    "phase": "",
    "sourceRegistry": "",
    "hasResults": "ALL",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/who-ictrp-clinical-trials-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "condition": "cancer",
  "trialIds": [],
  "recruitingStatus": "ALL",
  "phase": "",
  "sourceRegistry": "",
  "hasResults": "ALL",
  "maxItems": 20
}' |
apify call crawlerbros/who-ictrp-clinical-trials-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/who-ictrp-clinical-trials-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "WHO ICTRP Clinical Trials Scraper",
        "description": "Scrape the WHO ICTRP clinical trials search portal, aggregating 22+ national registries (ClinicalTrials.gov, EU-CTR/CTIS, ISRCTN, ChiCTR, ANZCTR, CTRI and more). Search by condition, intervention, sponsor, status or trial ID; get full trial metadata.",
        "version": "1.0",
        "x-build-id": "GszSweUWTORnuuNbd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~who-ictrp-clinical-trials-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-who-ictrp-clinical-trials-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~who-ictrp-clinical-trials-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-who-ictrp-clinical-trials-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~who-ictrp-clinical-trials-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-who-ictrp-clinical-trials-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byTrialIds"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "condition": {
                        "title": "Condition / disease",
                        "type": "string",
                        "description": "Health condition or disease to search for (mode=search), e.g. `diabetes`, `breast cancer`. Leave empty to search by intervention, title, sponsor, or secondaryId alone. If every search filter is left empty, the actor falls back to a demo condition (\"cancer\") so the daily test run still returns data.",
                        "default": ""
                    },
                    "intervention": {
                        "title": "Intervention",
                        "type": "string",
                        "description": "Drug, device, procedure or other intervention to search for (mode=search), e.g. `metformin`."
                    },
                    "title": {
                        "title": "Title contains",
                        "type": "string",
                        "description": "Restrict to trials whose public/scientific title contains this text."
                    },
                    "sponsor": {
                        "title": "Primary sponsor",
                        "type": "string",
                        "description": "Restrict to trials with this primary sponsor (partial match)."
                    },
                    "secondaryId": {
                        "title": "Secondary ID",
                        "type": "string",
                        "description": "Restrict to trials with this secondary/supplementary ID (e.g. a sponsor protocol number or IND/IDE number) — NOT the primary registry trial ID. To look up an exact trial ID, use mode=byTrialIds instead."
                    },
                    "trialIds": {
                        "title": "Trial IDs (mode=byTrialIds)",
                        "type": "array",
                        "description": "Exact WHO ICTRP trial/registration IDs, e.g. `NCT06012345`, `ChiCTR2600127247`, `ISRCTN12345678`.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "recruitingStatus": {
                        "title": "Recruitment status",
                        "enum": [
                            "ALL",
                            "Recruiting"
                        ],
                        "type": "string",
                        "description": "Filter to currently-recruiting trials only, or include all statuses.",
                        "default": "ALL"
                    },
                    "dateRegistrationFrom": {
                        "title": "Registered from (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Only trials registered on/after this date."
                    },
                    "dateRegistrationTo": {
                        "title": "Registered to (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Only trials registered on/before this date."
                    },
                    "phase": {
                        "title": "Phase",
                        "enum": [
                            "",
                            "Phase 0",
                            "Phase 1",
                            "Phase 2",
                            "Phase 3",
                            "Phase 4",
                            "Phase 1/Phase 2",
                            "Phase 2/Phase 3",
                            "Not Applicable"
                        ],
                        "type": "string",
                        "description": "Filter results to a specific trial phase (client-side, matched against each trial's reported phase).",
                        "default": ""
                    },
                    "sourceRegistry": {
                        "title": "Source registry",
                        "enum": [
                            "",
                            "ClinicalTrials.gov",
                            "ChiCTR",
                            "EUCTR",
                            "CTIS",
                            "ISRCTN",
                            "ANZCTR",
                            "CTRI",
                            "DRKS",
                            "jRCT",
                            "JPRN",
                            "IRCT",
                            "NTR",
                            "ReBec",
                            "PACTR",
                            "TCTR",
                            "KCT",
                            "RPCEC",
                            "LBCTR",
                            "SLCTR",
                            "REPEC",
                            "ITMCTR"
                        ],
                        "type": "string",
                        "description": "Filter results to trials registered with a specific national registry (client-side).",
                        "default": ""
                    },
                    "country": {
                        "title": "Country",
                        "type": "string",
                        "description": "Filter results to trials recruiting in this country (client-side, partial match)."
                    },
                    "hasResults": {
                        "title": "Results availability",
                        "enum": [
                            "ALL",
                            "Yes",
                            "No"
                        ],
                        "type": "string",
                        "description": "Filter to trials that have (or don't have) posted results, mirroring WHO ICTRP's 'Results Only' search option (client-side, matched against each trial's parsed results-availability field).",
                        "default": "ALL"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Hard cap on emitted records. trialsearch.who.int is a slow legacy server — for large values combined with restrictive phase/sourceRegistry/country filters, increase the run timeout under Run options.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
