# UK Disqualified Directors Register Scraper (`automation-lab/uk-disqualified-directors-register-scraper`) Actor

Extract official UK Companies House disqualified director records for KYB, AML, fraud, lending, insurance, and compliance workflows.

- **URL**: https://apify.com/automation-lab/uk-disqualified-directors-register-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## UK Disqualified Directors Register Scraper

Extract structured records from the public Companies House Register of disqualifications. The actor scans A-Z register pages, opens disqualified-officer detail pages, and returns compliance-ready data including names, dates of birth, post towns, nationality, start/end dates, case references, conduct companies, reasons, and source URLs.

Use it for KYB, AML, fraud risk, lending, insurance, supplier onboarding, and director/officer screening workflows that need repeatable exports from the official UK register.

### What does UK Disqualified Directors Register Scraper do?

This actor turns the public Companies House disqualified directors register into a clean Apify dataset.

It can:

- 🔎 Scan one or more surname prefixes such as `A`, `B`, or `SM`.
- 🔗 Start from direct Companies House register or detail URLs.
- 📄 Follow each result to the official disqualification detail page.
- 🧾 Extract disqualification type, dates, case reference, reason, address, and related companies where available.
- 🧩 Produce one normalized row per disqualification record.
- ⏱️ Use conservative rate limits for responsible access.

### Who is it for?

#### KYB and AML compliance teams

Screen directors, officers, suppliers, merchants, applicants, and counterparties for disqualification history.

#### Fraud investigators

Build evidence packs around individuals, linked companies, and disqualification reasons.

#### Lenders and insurers

Add official director-risk signals to underwriting and portfolio monitoring workflows.

#### B2B risk vendors

Refresh a structured UK disqualified-director dataset for enrichment products, dashboards, or APIs.

#### Data engineers

Schedule repeatable Apify runs and export results to S3, BigQuery, Snowflake, webhooks, or internal systems.

### Why use this actor?

Manual checking is slow when you need to screen many surname groups or refresh a register snapshot.

This actor helps because it:

- Uses official public Companies House pages.
- Keeps each record linked to its source URL.
- Returns stable field names for downstream systems.
- Supports small targeted checks and larger batch collection.
- Runs on Apify, so results can be scheduled, exported, and integrated.

### Data source

The actor uses public HTML pages from Find and update company information on GOV.UK / Companies House.

Example register page:

`https://find-and-update.company-information.service.gov.uk/register-of-disqualifications/A`

Example detail page:

`https://find-and-update.company-information.service.gov.uk/disqualified-officers/natural/...`

### What data can you extract?

| Field | Description |
| --- | --- |
| `name` | Director/officer name shown on Companies House |
| `dateOfBirth` | Date of birth when shown |
| `postTown` | Post town from the register row |
| `nationality` | Nationality from the detail page |
| `disqualificationType` | Undertaking, order, or other listed type |
| `orderOrUndertakingDate` | Date shown in the disqualification heading |
| `startDate` | Disqualification start date |
| `endDate` | Disqualification end date |
| `caseReference` | Case reference when shown |
| `disqualifyingAuthorityAddress` | Address supplied by the authority |
| `companies` | Companies connected to the conduct |
| `reason` | Official reason text |
| `sourceUrl` | Detail page URL |
| `registerUrl` | Register page where the row was found |
| `scrapedAt` | ISO timestamp for the extraction |

### How much does it cost to scrape the UK disqualified directors register?

The actor uses pay-per-event pricing.

- A small start event is charged once per run.
- A result event is charged for each dataset item produced.
- Final production pricing is calculated from measured cloud costs and Apify tier rules before publication.

Use a low `maxItems` value for the first run, then scale after verifying the output matches your workflow.

### Input options

#### `surnamePrefixes`

Array of prefixes to scan from the A-Z register.

Examples:

- `A`
- `B`
- `S`
- `SM`

#### `startUrls`

Optional direct URLs. If supplied, these override `surnamePrefixes`.

Supported URL types:

- Register pages under `/register-of-disqualifications/`
- Detail pages under `/disqualified-officers/`

#### `maxItems`

Maximum records to save.

#### `includeDetails`

When `true`, the actor opens detail pages and extracts full disqualification metadata.

When `false`, the actor returns faster list-level records only.

#### `maxPagesPerPrefix`

Safety cap for paginated register pages per prefix.

#### `requestDelayMs`

Delay between requests in milliseconds.

### Example input: scrape one surname prefix

```json
{
  "surnamePrefixes": ["A"],
  "maxItems": 50,
  "includeDetails": true,
  "maxPagesPerPrefix": 2,
  "requestDelayMs": 250
}
````

### Example input: targeted detail page

```json
{
  "startUrls": [
    {
      "url": "https://find-and-update.company-information.service.gov.uk/disqualified-officers/natural/Q8J9tnY4wzC8BP9ilhung2VFw8I"
    }
  ],
  "maxItems": 1
}
```

### Example output

```json
{
  "name": "Shahabi AABASI",
  "dateOfBirth": "23 July 1988",
  "postTown": "Leicester",
  "nationality": "British",
  "disqualificationType": "Undertaking",
  "orderOrUndertakingDate": "8 September 2023",
  "startDate": "29 September 2023",
  "endDate": "28 September 2033",
  "caseReference": "INV6841595",
  "companies": ["MARMARIS TRADITIONAL BARBER LIMITED"],
  "reason": "Company Directors Disqualification Act 1986 (Section 7): Disqualification order or undertaking; and reporting provisions",
  "sourceUrl": "https://find-and-update.company-information.service.gov.uk/disqualified-officers/natural/Q8J9tnY4wzC8BP9ilhung2VFw8I",
  "registerUrl": "https://find-and-update.company-information.service.gov.uk/register-of-disqualifications/A",
  "scrapedAt": "2026-07-05T03:38:38.710Z"
}
```

### How to run

1. Open the actor on Apify.
2. Choose surname prefixes or paste direct Companies House URLs.
3. Set `maxItems` for your screening size.
4. Keep `includeDetails` enabled for compliance-grade output.
5. Start the run.
6. Export the dataset as JSON, CSV, Excel, XML, or via API.

### Tips for better results

- Start with one prefix and a small `maxItems` limit.
- Use direct detail URLs for one-off verification.
- Use `includeDetails: false` only for quick list-level discovery.
- Keep a delay between requests for respectful scraping.
- Store `sourceUrl` with every downstream record for auditability.

### Integrations

#### Compliance platform enrichment

Schedule the actor daily or weekly and send results to your screening database.

#### CRM and onboarding workflows

Use Apify webhooks to notify an internal review queue when new records are collected.

#### Data warehouse refresh

Export datasets to S3, BigQuery, Snowflake, or Google Sheets.

#### Fraud investigation notebooks

Pull the dataset through the Apify API into Python, R, or notebook-based investigation tools.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/uk-disqualified-directors-register-scraper').call({
  surnamePrefixes: ['A'],
  maxItems: 25,
  includeDetails: true
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/uk-disqualified-directors-register-scraper').call(run_input={
    'surnamePrefixes': ['A'],
    'maxItems': 25,
    'includeDetails': True,
})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~uk-disqualified-directors-register-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"surnamePrefixes":["A"],"maxItems":25,"includeDetails":true}'
```

### MCP: use with Claude Desktop and Claude Code

You can connect this actor through Apify MCP.

MCP server URL:

`https://mcp.apify.com/?tools=automation-lab/uk-disqualified-directors-register-scraper`

Claude Code setup:

```bash
claude mcp add apify-uk-disqualified-directors "https://mcp.apify.com/?tools=automation-lab/uk-disqualified-directors-register-scraper"
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-uk-disqualified-directors": {
      "url": "https://mcp.apify.com/?tools=automation-lab/uk-disqualified-directors-register-scraper"
    }
  }
}
```

Example prompts:

- "Scrape the first 25 UK disqualified director records for prefix A and summarize end dates."
- "Check this Companies House disqualified officer URL and return the case reference and reason."
- "Create a CSV-ready table of disqualified directors, companies, start dates, and source URLs."

### Legality

This actor extracts public information from Companies House. Users are responsible for complying with applicable laws, terms, data protection obligations, and internal compliance policies.

For regulated screening, treat output as a data collection aid and retain the official `sourceUrl` for review.

### FAQ

#### Is this official Companies House data?

The actor reads public Companies House pages and keeps each record linked to the official source URL.

#### Can I use this for automated compliance decisions?

Use the dataset as an evidence collection and screening input. Regulated workflows should include human review and policy controls.

### Troubleshooting

#### The run returns fewer records than expected

Increase `maxPagesPerPrefix` or add more surname prefixes. Each register page contains a limited number of rows.

#### Some fields are empty

Companies House does not show every field for every record. Empty optional fields usually mean the source page did not publish that value.

#### I only need a quick name list

Set `includeDetails` to `false`. The actor will skip detail pages and return list-level data faster.

### Related scrapers

Use other `automation-lab` actors for adjacent company, officer, review, marketplace, and public-record workflows.

Possible companion workflows:

- Companies House company profile enrichment
- UK business lead screening
- Public register monitoring
- KYB evidence collection

### Changelog

#### 0.1

Initial version for the public UK Companies House Register of disqualifications.

### Limitations

The actor depends on public Companies House HTML. If Companies House changes page markup, field extraction may need an update.

### Support

If you need a field that appears on the source page but is missing from the dataset, open an issue with a sample `sourceUrl` and desired output shape.

# Actor input Schema

## `surnamePrefixes` (type: `array`):

A-Z register prefixes to scrape. Use single letters like A, B, S or longer surname prefixes supported by the Companies House register URL.

## `startUrls` (type: `array`):

Optional direct Companies House register pages or disqualified-officer detail pages. If provided, these override surname prefixes.

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

Stop after this many disqualification records have been saved to the dataset.

## `includeDetails` (type: `boolean`):

When enabled, the actor visits each detail page to extract dates, case reference, companies, reason, address, and nationality.

## `maxPagesPerPrefix` (type: `integer`):

Safety limit for pagination within each surname prefix.

## `requestDelayMs` (type: `integer`):

Conservative delay to avoid putting unnecessary load on Companies House.

## Actor input object example

```json
{
  "surnamePrefixes": [
    "A"
  ],
  "startUrls": [
    {
      "url": "https://find-and-update.company-information.service.gov.uk/register-of-disqualifications/A"
    }
  ],
  "maxItems": 20,
  "includeDetails": true,
  "maxPagesPerPrefix": 10,
  "requestDelayMs": 250
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "surnamePrefixes": [
        "A"
    ],
    "startUrls": [
        {
            "url": "https://find-and-update.company-information.service.gov.uk/register-of-disqualifications/A"
        }
    ],
    "maxItems": 20,
    "includeDetails": true,
    "maxPagesPerPrefix": 10,
    "requestDelayMs": 250
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/uk-disqualified-directors-register-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 = {
    "surnamePrefixes": ["A"],
    "startUrls": [{ "url": "https://find-and-update.company-information.service.gov.uk/register-of-disqualifications/A" }],
    "maxItems": 20,
    "includeDetails": True,
    "maxPagesPerPrefix": 10,
    "requestDelayMs": 250,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/uk-disqualified-directors-register-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 '{
  "surnamePrefixes": [
    "A"
  ],
  "startUrls": [
    {
      "url": "https://find-and-update.company-information.service.gov.uk/register-of-disqualifications/A"
    }
  ],
  "maxItems": 20,
  "includeDetails": true,
  "maxPagesPerPrefix": 10,
  "requestDelayMs": 250
}' |
apify call automation-lab/uk-disqualified-directors-register-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/uk-disqualified-directors-register-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "UK Disqualified Directors Register Scraper",
        "description": "Extract official UK Companies House disqualified director records for KYB, AML, fraud, lending, insurance, and compliance workflows.",
        "version": "0.1",
        "x-build-id": "eClija1MgFtnQJB9H"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~uk-disqualified-directors-register-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-uk-disqualified-directors-register-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/automation-lab~uk-disqualified-directors-register-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-uk-disqualified-directors-register-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/automation-lab~uk-disqualified-directors-register-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-uk-disqualified-directors-register-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",
                "properties": {
                    "surnamePrefixes": {
                        "title": "Surname prefixes",
                        "type": "array",
                        "description": "A-Z register prefixes to scrape. Use single letters like A, B, S or longer surname prefixes supported by the Companies House register URL.",
                        "default": [
                            "A"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional direct Companies House register pages or disqualified-officer detail pages. If provided, these override surname prefixes.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum disqualification records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Stop after this many disqualification records have been saved to the dataset.",
                        "default": 20
                    },
                    "includeDetails": {
                        "title": "Open director detail pages",
                        "type": "boolean",
                        "description": "When enabled, the actor visits each detail page to extract dates, case reference, companies, reason, address, and nationality.",
                        "default": true
                    },
                    "maxPagesPerPrefix": {
                        "title": "Maximum pages per prefix",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Safety limit for pagination within each surname prefix.",
                        "default": 10
                    },
                    "requestDelayMs": {
                        "title": "Delay between requests (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Conservative delay to avoid putting unnecessary load on Companies House.",
                        "default": 250
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
