# UK Companies House · Search, Directors & PSC (`corent1robert/uk-companies-house-scraper`) Actor

Paste a Companies House advanced-search URL — get every matching company with address, SIC codes, director names, and beneficial owners (PSC). No API key. Official public register.

- **URL**: https://apify.com/corent1robert/uk-companies-house-scraper.md
- **Developed by:** [Corentin Robert](https://apify.com/corent1robert) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 company retrieved — basics

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## UK Companies House Scraper — Directors, PSC & SIC Search

Paste a **Companies House advanced-search URL** and get every matching company as a clean dataset: registered address, SIC sector code, company type and status, director names, and beneficial owners (PSC).

**No API key. No account. Public register only.**

---

### Who is this for?

| You are… | Typical goal | Suggested setup |
|-----------|--------------|-----------------|
| B2B supplier or SaaS vendor | Build a prospect list by sector (SIC code), location, or company age | Search URL mode · Officers level |
| Outbound SDR / sales team | Find the decision-maker name and approximate DOB before a cold call | Search URL mode · Officers level |
| Compliance or KYB analyst | Verify beneficial ownership structure (PSC) and filing status | Company numbers mode · KYB level |
| Market researcher | Map active businesses in a specific industry or region | Search URL mode · Basic level |
| Recruitment agency | Find SME founders to target for exec-level placements | Search URL mode · Officers level |
| Legal or accounting firm | Identify companies with overdue accounts or late confirmation statements | Search URL + Basic; filter by `nextAccountsDue` |

**By default**, you get: company name, number, registered address, SIC codes, status, type, and incorporation date. Enable **Officers** to add director names — enable **KYB** to add PSC beneficial owners.

---

### What it extracts

#### Basic (all modes)
| Field | Description |
|-------|-------------|
| `companyNumber` | Companies House registration number |
| `name` | Registered company name |
| `url` | Companies House profile link |
| `status` | Active, Dissolved, etc. |
| `type` | Private limited company, PLC, LLP, etc. |
| `incorporatedOn` | Incorporation date |
| `registeredAddress` | Registered office address |
| `sicCodes` | SIC sector code(s) with description |
| `nextAccountsDue` | Next accounts filing deadline |
| `lastAccountsMadeUpTo` | Last accounts period end |
| `nextConfirmationDue` | Confirmation statement due date |

#### Officers level (+ above)
| Field | Description |
|-------|-------------|
| `directorName` | Primary active director name |
| `directorRole` | Role title (Director, Secretary…) |
| `directorDateOfBirth` | DOB — month and year only (as on CH) |
| `directorNationality` | Nationality |
| `directorCountryOfResidence` | Country of residence |
| `directorAppointedOn` | Appointment date |
| `directorCorrespondenceAddress` | Correspondence address |
| `officers` | Full list of all officers |

#### KYB (full) level (+ above)
| Field | Description |
|-------|-------------|
| `pscName` | Beneficial owner name |
| `pscDateOfBirth` | PSC DOB (month/year) |
| `pscNationality` | PSC nationality |
| `pscNatureOfControl` | Nature of control (share %, voting rights…) |
| `pscNotifiedOn` | PSC notification date |
| `psc` | Full list of all PSC entries |

---

### Quick start

1. Go to [Companies House Advanced Search](https://find-and-update.company-information.service.gov.uk/advanced-search)
2. Apply your filters: company name keywords, SIC code, status (Active), incorporation dates, location…
3. Copy the URL from your browser's address bar
4. Open this Actor in Apify Console
5. Paste the URL in **Search URL(s)**, pick your **Enrichment level**, set **Max companies** (0 = all), click **Start**

#### Example search URLs

| Goal | Ready-to-use URL |
|------|-----------------|
| All active electricians (SIC 43210) | [`…sicCodes=43210&status=active`](https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=&sicCodes=43210&status=active) |
| Active plumbers created in Scotland after 2020 | [`…sicCodes=43220&status=active&incorporationFromYear=2020`](https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=&sicCodes=43220&status=active&incorporationFromYear=2020&incorporationFromMonth=1&incorporationFromDay=1) |
| Restaurants in London area (SIC 56101) | [`…companyNameIncludes=restaurant&sicCodes=56101&status=active`](https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=restaurant&sicCodes=56101&status=active) |
| IT consultancies incorporated since 2022 | [`…sicCodes=62020&status=active&incorporationFromYear=2022`](https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=&sicCodes=62020&status=active&incorporationFromYear=2022&incorporationFromMonth=1&incorporationFromDay=1) |

Copy any URL above, paste it into the **Search URL(s)** field, and press **Start**. Use `maxResults: 0` to collect all matching companies with no cap.

---

### Input

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `searchUrl` | `searchUrl` or `companyNumbers` |
| `searchUrls` | string[] | demo URL | One or more Companies House advanced-search URLs |
| `companyNumbers` | string[] | demo numbers | Company numbers to enrich (8-digit or SC/NI prefix) |
| `enrichmentLevel` | string | `officers` | `basic`, `officers`, or `kyb` |
| `maxResults` | integer | `25` | Max per URL; `0` = no cap |

#### JSON example (search URL)

```json
{
  "mode": "searchUrl",
  "searchUrls": [
    "https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=restaurant&sicCodes=56101&status=active"
  ],
  "enrichmentLevel": "officers",
  "maxResults": 0
}
````

#### JSON example (enrich by number)

```json
{
  "mode": "companyNumbers",
  "companyNumbers": ["09436888", "SC631278"],
  "enrichmentLevel": "kyb"
}
```

***

### How it works

1. **Parse** the search URL filters (company name, SIC, status, dates…)
2. **Paginate** Companies House advanced-search (20 results/page, server-side rendered HTML)
3. For each company: optionally fetch the profile page, officers page, and PSC page
4. **Push** normalized records to the Apify dataset

***

### Output sample

```json
{
  "companyNumber": "09739023",
  "name": "GAS SMART HEATING & PLUMBING SERVICES LIMITED",
  "url": "https://find-and-update.company-information.service.gov.uk/company/09739023",
  "status": "Active",
  "companyType": "Private limited company",
  "incorporatedOn": "11 September 2015",
  "registeredAddress": "Turnpike House, 1208-1210 London Road, Leigh On Sea, Essex, SS9 2UA",
  "addressLine1": "Turnpike House",
  "addressLine2": "1208-1210 London Road",
  "addressLocality": "Leigh On Sea",
  "addressCounty": "Essex",
  "addressPostcode": "SS9 2UA",
  "addressCountry": null,
  "sicCodes": [{ "code": "43220", "description": "Plumbing, heat and air-conditioning installation" }],
  "nextAccountsDue": "31 August 2026",
  "directorFirstName": "Kerry John",
  "directorLastName": "Baldassarra",
  "directorRole": "Director",
  "directorDateOfBirth": "June 1976",
  "directorNationality": "British",
  "directorCountryOfResidence": "England",
  "directorAppointedOn": "11 September 2015",
  "pscFirstName": "Kerry",
  "pscLastName": "Baldassarra",
  "pscNatureOfControl": "Ownership of shares – More than 25% but not more than 50%",
  "pscNotifiedOn": "11 September 2015",
  "extractedAt": "2026-06-04T14:00:00.000Z"
}
```

***

### How much does it cost?

This Actor uses **pay-per-event** pricing — you pay per company retrieved, not per compute hour. No surprise bills from long runs. Price depends on the enrichment level you select:

| Enrichment level | Price per company | 1,000 companies |
|-----------------|-------------------|-----------------|
| Basic (address, SIC, status) | **$0.002** | $2.00 |
| Officers (+ director name, DOB, nationality) | **$0.004** | $4.00 |
| KYB (+ PSC beneficial owners) | **$0.006** | $6.00 |

> Volume discounts apply automatically on Apify (Bronze / Silver / Gold tiers).

**How does that compare?**

| Source | Price per company + director | Notes |
|--------|------------------------------|-------|
| **This Actor (Officers)** | **$0.004** | Live data, direct from Companies House |
| Apollo.io | $0.05–0.20 | Varies by plan; data may be stale |
| Cognism | $0.10–0.50 | KYB add-on priced separately |
| ZoomInfo | $0.20–1.00 | Enterprise pricing |
| Buying a list | $0.02–0.10 | Static, often 12–24 months old |

Companies House data is public and requires no residential proxies (plain HTTP) — the cost is purely the enrichment logic.

***

### Is it legal to scrape Companies House?

Yes. [Companies House](https://find-and-update.company-information.service.gov.uk/) is a **public UK government register**. All data is published under the [Open Government Licence](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/), which explicitly allows free reuse for any purpose including commercial use.

This Actor only accesses data that Companies House makes publicly available without authentication. It does not bypass any login wall or access control.

> As with any data containing personal information (director names, dates of birth), you should ensure your use complies with UK GDPR and relevant data protection regulations. Directors' DOB is only shown as month/year by Companies House by design.

***

### Important / Limitations

- **Rate limiting**: The actor uses a 400 ms delay between enrichment requests per worker. If you scrape tens of thousands of companies at KYB level, runs may take several hours.
- **DOB privacy**: Companies House only shows month and year for directors and PSC (not full date) — this is by design.
- **Scottish / NI companies**: Company numbers starting with `SC` or `NI` are fully supported.
- **HTML parsing**: The actor scrapes the public-facing HTML — if Companies House changes their layout, some fields may need selector updates.

***

### Go further: find emails for your director list

This Actor gives you **company + director first/last name**. To turn that into a cold outreach list, you need professional email addresses.

**[Full Enrich](https://fullenrich.partnerlinks.io/u776ck47r5e1)** is the tool we recommend: paste your CSV with `firstName`, `lastName`, and `companyName` (or domain), and it waterfall-searches 15+ providers (Apollo, Hunter, Dropcontact…) to return a verified email in one click.

Typical workflow:

1. Run this Actor → export CSV
2. Upload to Full Enrich → get emails
3. Import to your sequencer (Lemlist, Instantly, Apollo…) → send

> Full Enrich offers a free tier (50 credits/month). Paid plans from $29/month for 1,000 enrichments.

***

### Also available: French Companies Scraper

If you need the same enrichment for **French companies**, check out the companion Actor:

**[French Companies — Search & SIREN Enrichment](https://apify.com/corent1robert/recherche-entreprises-scraper)** — paste a search URL from data.gouv.fr or a SIREN list and get full company records: directors, VAT number, NAF code, financials, and legal form. Same workflow, French register.

***

### Local development

```bash
npm install
node src/main.js        ## uses input.json
```

Or with Apify CLI:

```bash
apify run               ## uses storage/key_value_stores/default/INPUT.json
```

***

### Support

Contact <corentin@outreacher.fr> for custom scripts, bespoke enrichment, or bulk exports.

# Actor input Schema

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

**Search URL** — paste a Companies House advanced-search link; the actor paginates all results.

**Company numbers** — paste company numbers (8 digits or SC/NI prefix); get full enrichment for each.

## `searchUrls` (type: `array`):

Paste one or more **Companies House advanced-search URLs** (one per line).

How to get one: visit find-and-update.company-information.service.gov.uk/advanced-search, set your filters (company name, SIC code, status, incorporation dates…), then copy the full URL from the address bar.

## `companyNumbers` (type: `array`):

Paste **one company number per line** — 8-digit numbers (e.g. `09436888`) or prefixed ones (e.g. `SC631278`, `NI046123`). Duplicates are skipped.

## `enrichmentLevel` (type: `string`):

**Basic** — name, address, SIC codes, status, type, incorporation date. Fast.

**Officers** — adds active directors and secretaries: name, role, date of birth (month/year), nationality, correspondence address.

**KYB (full)** — also adds PSC (Persons with Significant Control): beneficial owner name, nature of control (share %, voting rights…), date of birth.

## `maxResults` (type: `integer`):

Maximum companies to collect per search URL. **0** = no cap — collect all matching results. Default 25 for a quick first run; set 0 to export everything.

## Actor input object example

```json
{
  "mode": "searchUrl",
  "searchUrls": [
    "https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=plumbing&status=active"
  ],
  "companyNumbers": [
    "09436888",
    "09739023",
    "09446231"
  ],
  "enrichmentLevel": "officers",
  "maxResults": 25
}
```

# Actor output Schema

## `dataset` (type: `string`):

One row per company — number, name, address, SIC codes, directors, PSC.

## `runLog` (type: `string`):

Plain-text log of the run phases and progress.

# 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 = {
    "searchUrls": [
        "https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=plumbing&status=active"
    ],
    "companyNumbers": [
        "09436888",
        "09739023",
        "09446231"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("corent1robert/uk-companies-house-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 = {
    "searchUrls": ["https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=plumbing&status=active"],
    "companyNumbers": [
        "09436888",
        "09739023",
        "09446231",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("corent1robert/uk-companies-house-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 '{
  "searchUrls": [
    "https://find-and-update.company-information.service.gov.uk/advanced-search/get-results?companyNameIncludes=plumbing&status=active"
  ],
  "companyNumbers": [
    "09436888",
    "09739023",
    "09446231"
  ]
}' |
apify call corent1robert/uk-companies-house-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "UK Companies House · Search, Directors & PSC",
        "description": "Paste a Companies House advanced-search URL — get every matching company with address, SIC codes, director names, and beneficial owners (PSC). No API key. Official public register.",
        "version": "1.0",
        "x-build-id": "gkl1mbQeuGd0n97ap"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/corent1robert~uk-companies-house-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-corent1robert-uk-companies-house-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/corent1robert~uk-companies-house-scraper/runs": {
            "post": {
                "operationId": "runs-sync-corent1robert-uk-companies-house-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/corent1robert~uk-companies-house-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-corent1robert-uk-companies-house-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "searchUrl",
                            "companyNumbers"
                        ],
                        "type": "string",
                        "description": "**Search URL** — paste a Companies House advanced-search link; the actor paginates all results.\n\n**Company numbers** — paste company numbers (8 digits or SC/NI prefix); get full enrichment for each.",
                        "default": "searchUrl"
                    },
                    "searchUrls": {
                        "title": "Search URL(s)",
                        "type": "array",
                        "description": "Paste one or more **Companies House advanced-search URLs** (one per line).\n\nHow to get one: visit find-and-update.company-information.service.gov.uk/advanced-search, set your filters (company name, SIC code, status, incorporation dates…), then copy the full URL from the address bar.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companyNumbers": {
                        "title": "Company numbers",
                        "type": "array",
                        "description": "Paste **one company number per line** — 8-digit numbers (e.g. `09436888`) or prefixed ones (e.g. `SC631278`, `NI046123`). Duplicates are skipped.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "enrichmentLevel": {
                        "title": "Enrichment level",
                        "enum": [
                            "basic",
                            "officers",
                            "kyb"
                        ],
                        "type": "string",
                        "description": "**Basic** — name, address, SIC codes, status, type, incorporation date. Fast.\n\n**Officers** — adds active directors and secretaries: name, role, date of birth (month/year), nationality, correspondence address.\n\n**KYB (full)** — also adds PSC (Persons with Significant Control): beneficial owner name, nature of control (share %, voting rights…), date of birth.",
                        "default": "officers"
                    },
                    "maxResults": {
                        "title": "Max companies (0 = no limit)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum companies to collect per search URL. **0** = no cap — collect all matching results. Default 25 for a quick first run; set 0 to export everything.",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
