# Companies House UK Company Search Scraper (`automation-lab/companies-house-uk-company-search-scraper`) Actor

Scrape official UK Companies House public company records with status, addresses, SIC codes, officers, PSCs, and filing history.

- **URL**: https://apify.com/automation-lab/companies-house-uk-company-search-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business, Lead generation
- **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 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

## Companies House UK Company Search Scraper

Scrape public Companies House UK search results and company detail pages for company enrichment, KYC research, sales intelligence, officers, PSCs, and filing history.

### What does Companies House UK Company Search Scraper do?

Companies House UK Company Search Scraper turns public UK company registry pages into structured datasets.

It searches the official Companies House web service by company name or keyword, opens matching company profiles, and extracts business-ready fields such as company number, status, type, incorporation date, registered office address, SIC codes, source URLs, and optional people and filing summaries.

Use it when you need repeatable company lookup from the public UK registry without copying data manually from the Companies House website.

### Why scrape Companies House UK company data?

Companies House is the official public register for companies incorporated in the United Kingdom.

Teams use this data to validate company identities, enrich CRM records, check company status, discover officers, review PSC / beneficial ownership information, and monitor recent filings.

The actor is designed for bulk public-web extraction where a spreadsheet, CRM, compliance queue, or research workflow contains many company names or company numbers.

### Who is it for?

- 🧾 KYC and compliance analysts validating legal entities.
- 📈 B2B sales teams enriching UK account lists.
- 🧑‍💼 Accountants and corporate service providers checking client entities.
- 🔎 Market researchers building company datasets from public registry data.
- 👥 Recruiters and business-development teams mapping officers and company activity.
- 🧰 Developers who need Companies House data inside a repeatable Apify workflow.

### Why use this actor instead of manual search?

Manual Companies House lookup is useful for one company.

It becomes slow when you need to process hundreds of names, preserve source URLs, or export filing and officer summaries for downstream systems.

This actor keeps the official source URL attached to every record and returns consistent fields that can be exported as JSON, CSV, Excel, or sent to integrations.

### Data extracted

| Field | Description |
| --- | --- |
| `query` | Original search query or company number |
| `resultRank` | Position in Companies House search results |
| `companyName` | Registered company name |
| `companyNumber` | Companies House company number |
| `companyStatus` | Status shown on the detail page, such as Active or Dissolved |
| `companyType` | Company type shown by Companies House |
| `incorporationDate` | Incorporation date from the detail page |
| `registeredOfficeAddress` | Registered office address |
| `sicCodes` | Nature-of-business / SIC code strings |
| `detailUrl` | Public company profile URL |
| `sourceUrl` | Search or detail URL used as the source |
| `matchedSearchSnippet` | Search-result snippet with number, date, and address |
| `officers` | Optional officer summaries |
| `personsWithSignificantControl` | Optional PSC summaries |
| `filingHistory` | Optional recent filing summaries |
| `scrapedAt` | ISO timestamp when the record was produced |

### Optional officer data

Enable `includeOfficers` to fetch the public People page for each company.

The actor returns officer names, roles, active/resigned status where visible, appointment dates, correspondence addresses, and appointment URLs.

Use `maxOfficersPerCompany` to keep runs small when you only need a representative summary.

### Optional PSC / beneficial owner data

Enable `includePersonsWithSignificantControl` to fetch the public persons-with-significant-control page.

When Companies House exposes PSC records for a company, the actor attempts to collect names, status, notification dates, cessation dates, and nature-of-control snippets.

Some companies, especially certain public companies or dissolved entities, may have no PSC records on the public page.

### Optional filing history data

Enable `includeFilingHistory` to fetch recent filing rows.

Each filing summary can include date, filing type, description, and the public document URL when Companies House provides one.

Use `maxFilingsPerCompany` to cap how many filings are included per company.

### How much does it cost to scrape Companies House UK company records?

The actor uses pay-per-event pricing.

There is a small start fee for each run and a per-company-result event for each dataset item saved.

Final prices are calculated from cloud validation runs before publishing. Keep test runs small at first by using low `maxResultsPerQuery` values and optional enrichment only when you need it.

### Input options

```json
{
  "queries": ["tesco", "barclays"],
  "maxResultsPerQuery": 25,
  "activeOnly": false,
  "includeOfficers": true,
  "includePersonsWithSignificantControl": false,
  "includeFilingHistory": true,
  "maxOfficersPerCompany": 5,
  "maxFilingsPerCompany": 5,
  "requestDelayMs": 150
}
````

### Search by company number

If you already have exact Companies House numbers, use `companyNumbers`.

```json
{
  "queries": [],
  "companyNumbers": ["00445790", "00000006"],
  "includeOfficers": false,
  "includeFilingHistory": true
}
```

### Search by direct company URLs

You can also pass direct company profile URLs in `startUrls`.

```json
{
  "queries": [],
  "startUrls": [
    { "url": "https://find-and-update.company-information.service.gov.uk/company/00445790" }
  ]
}
```

### Output example

```json
{
  "query": "tesco",
  "resultRank": 1,
  "companyName": "TESCO PLC",
  "companyNumber": "00445790",
  "companyStatus": "Active",
  "companyType": "Public limited Company",
  "incorporationDate": "27 November 1947",
  "registeredOfficeAddress": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
  "sicCodes": ["47110 - Retail sale in non-specialised stores with food, beverages or tobacco predominating"],
  "detailUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790",
  "filingHistory": [
    { "date": "03 Jul 2026", "type": "SH06", "description": "Cancellation of shares..." }
  ]
}
```

### How to run it

1. Add company names to `queries`, or exact company numbers to `companyNumbers`.
2. Choose `maxResultsPerQuery`.
3. Turn on officer, PSC, or filing enrichment only when required.
4. Start the actor.
5. Download results from the default dataset as CSV, JSON, Excel, or HTML.

### Tips for better results

- Use exact registered names when possible.
- Use company numbers when you already know them.
- Keep `maxResultsPerQuery` small for validation runs.
- Use `activeOnly` when dissolved companies are not useful for your workflow.
- Enable detailed enrichment only for companies you actually need to inspect.
- Keep `requestDelayMs` above zero for polite public-service scraping.

### Integrations

Common workflows include:

- Send company records to Google Sheets for manual compliance review.
- Enrich a CRM account list with company numbers and registered addresses.
- Trigger downstream checks when filing history shows recent filings.
- Join scraped company numbers with internal KYC or accounting data.
- Store source URLs for audit trails in Airtable, BigQuery, or Snowflake.

### 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/companies-house-uk-company-search-scraper').call({
  queries: ['tesco'],
  maxResultsPerQuery: 10,
  includeFilingHistory: true,
});

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

### API usage with Python

```python
from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/companies-house-uk-company-search-scraper').call(run_input={
    'queries': ['tesco'],
    'maxResultsPerQuery': 10,
    'includeOfficers': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl "https://api.apify.com/v2/acts/automation-lab~companies-house-uk-company-search-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"queries":["tesco"],"maxResultsPerQuery":10,"includeFilingHistory":true}'
```

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

You can expose this actor through Apify MCP tools.

Add the Apify MCP server in Claude Code:

```bash
claude mcp add apify-companies-house "https://mcp.apify.com/?tools=automation-lab/companies-house-uk-company-search-scraper"
```

For Claude Desktop, add this JSON server configuration:

```json
{
  "mcpServers": {
    "apify-companies-house": {
      "url": "https://mcp.apify.com/?tools=automation-lab/companies-house-uk-company-search-scraper"
    }
  }
}
```

Use an MCP server URL with the actor tool selected:

```text
https://mcp.apify.com/?tools=automation-lab/companies-house-uk-company-search-scraper
```

Example prompts:

- "Scrape Companies House records for these UK company names and return active companies only."
- "Find recent Companies House filings for Tesco-related companies."
- "Enrich this list of company numbers with registered office addresses and SIC codes."

### Reliability and limits

The actor scrapes public, server-rendered HTML pages from Companies House.

It does not bypass login-only areas, private data, paid API limits, or user accounts.

Companies House page structure can change, so keep source URLs in your exports and rerun validation on critical workflows.

### Legality and responsible use

Companies House publishes company information for public access, but users remain responsible for how they use, store, combine, and share the data.

Respect applicable laws, privacy rules, terms, and internal compliance policies.

Do not use scraped data for unlawful discrimination, harassment, spam, or other prohibited activity.

### Troubleshooting

If a run returns no results, check whether the query is too narrow or misspelled.

If detail fields are missing, open the `detailUrl` manually and verify that Companies House exposes the field for that company.

If a run is slow, reduce enrichment toggles and per-company limits.

If you need exact matches, prefer `companyNumbers` instead of broad keyword searches.

### FAQ

#### Does this use the official Companies House API?

No. The MVP uses public Companies House web pages so users do not need an API key.

#### Can I scrape dissolved companies?

Yes. Leave `activeOnly` disabled to include all statuses returned by Companies House.

#### Why are some PSC arrays empty?

Some companies have no PSC records visible on the public page, and some company types do not expose PSC details in the same way.

#### Can I monitor filing changes?

Yes. Schedule recurring runs for exact company numbers and compare the newest filing rows in your downstream system.

### Related scrapers

Useful Automation Lab actors for adjacent workflows:

- https://apify.com/automation-lab/linkedin-company-scraper
- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/google-search-results-scraper

### Changelog

Initial version: public Companies House company search, company detail extraction, optional officers, optional PSC summaries, and optional filing history summaries.

# Actor input Schema

## `queries` (type: `array`):

Company names, brands, or keywords to search on public Companies House company results.

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

Optional exact Companies House company numbers to scrape directly, for example 00445790.

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

Optional direct URLs like https://find-and-update.company-information.service.gov.uk/company/00445790.

## `maxResultsPerQuery` (type: `integer`):

Maximum search results to process for each search query.

## `activeOnly` (type: `boolean`):

Skip companies whose detail page status is not Active.

## `includeOfficers` (type: `boolean`):

Fetch the public People page and include officer names, roles, statuses, dates, and appointment links.

## `includePersonsWithSignificantControl` (type: `boolean`):

Fetch the public persons with significant control page and include any PSC summaries found.

## `includeFilingHistory` (type: `boolean`):

Fetch the filing history page and include recent filing dates, types, descriptions, and document URLs.

## `maxOfficersPerCompany` (type: `integer`):

Limit officer summaries per company when officer enrichment is enabled.

## `maxPersonsWithSignificantControlPerCompany` (type: `integer`):

Limit PSC summaries per company when PSC enrichment is enabled.

## `maxFilingsPerCompany` (type: `integer`):

Limit filing history summaries per company when filing enrichment is enabled.

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

Optional delay to keep scraping polite on the public Companies House service.

## Actor input object example

```json
{
  "queries": [
    "tesco",
    "acme"
  ],
  "companyNumbers": [],
  "startUrls": [],
  "maxResultsPerQuery": 20,
  "activeOnly": false,
  "includeOfficers": true,
  "includePersonsWithSignificantControl": false,
  "includeFilingHistory": true,
  "maxOfficersPerCompany": 5,
  "maxPersonsWithSignificantControlPerCompany": 5,
  "maxFilingsPerCompany": 5,
  "requestDelayMs": 20
}
```

# 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 = {
    "queries": [
        "tesco",
        "acme"
    ],
    "companyNumbers": [],
    "startUrls": [],
    "maxResultsPerQuery": 20,
    "activeOnly": false,
    "includeOfficers": true,
    "includePersonsWithSignificantControl": false,
    "includeFilingHistory": true,
    "maxOfficersPerCompany": 5,
    "maxPersonsWithSignificantControlPerCompany": 5,
    "maxFilingsPerCompany": 5,
    "requestDelayMs": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/companies-house-uk-company-search-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 = {
    "queries": [
        "tesco",
        "acme",
    ],
    "companyNumbers": [],
    "startUrls": [],
    "maxResultsPerQuery": 20,
    "activeOnly": False,
    "includeOfficers": True,
    "includePersonsWithSignificantControl": False,
    "includeFilingHistory": True,
    "maxOfficersPerCompany": 5,
    "maxPersonsWithSignificantControlPerCompany": 5,
    "maxFilingsPerCompany": 5,
    "requestDelayMs": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/companies-house-uk-company-search-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 '{
  "queries": [
    "tesco",
    "acme"
  ],
  "companyNumbers": [],
  "startUrls": [],
  "maxResultsPerQuery": 20,
  "activeOnly": false,
  "includeOfficers": true,
  "includePersonsWithSignificantControl": false,
  "includeFilingHistory": true,
  "maxOfficersPerCompany": 5,
  "maxPersonsWithSignificantControlPerCompany": 5,
  "maxFilingsPerCompany": 5,
  "requestDelayMs": 20
}' |
apify call automation-lab/companies-house-uk-company-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Companies House UK Company Search Scraper",
        "description": "Scrape official UK Companies House public company records with status, addresses, SIC codes, officers, PSCs, and filing history.",
        "version": "0.1",
        "x-build-id": "ehGJ8eSqPRvLrPW2O"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~companies-house-uk-company-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-companies-house-uk-company-search-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~companies-house-uk-company-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-companies-house-uk-company-search-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~companies-house-uk-company-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-companies-house-uk-company-search-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": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Company search queries",
                        "type": "array",
                        "description": "Company names, brands, or keywords to search on public Companies House company results.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companyNumbers": {
                        "title": "Company numbers",
                        "type": "array",
                        "description": "Optional exact Companies House company numbers to scrape directly, for example 00445790.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Companies House company URLs",
                        "type": "array",
                        "description": "Optional direct URLs like https://find-and-update.company-information.service.gov.uk/company/00445790.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxResultsPerQuery": {
                        "title": "Maximum companies per query",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum search results to process for each search query.",
                        "default": 20
                    },
                    "activeOnly": {
                        "title": "Active companies only",
                        "type": "boolean",
                        "description": "Skip companies whose detail page status is not Active.",
                        "default": false
                    },
                    "includeOfficers": {
                        "title": "Include officer summaries",
                        "type": "boolean",
                        "description": "Fetch the public People page and include officer names, roles, statuses, dates, and appointment links.",
                        "default": false
                    },
                    "includePersonsWithSignificantControl": {
                        "title": "Include PSC / beneficial owner summaries",
                        "type": "boolean",
                        "description": "Fetch the public persons with significant control page and include any PSC summaries found.",
                        "default": false
                    },
                    "includeFilingHistory": {
                        "title": "Include filing history summaries",
                        "type": "boolean",
                        "description": "Fetch the filing history page and include recent filing dates, types, descriptions, and document URLs.",
                        "default": false
                    },
                    "maxOfficersPerCompany": {
                        "title": "Maximum officers per company",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Limit officer summaries per company when officer enrichment is enabled.",
                        "default": 5
                    },
                    "maxPersonsWithSignificantControlPerCompany": {
                        "title": "Maximum PSCs per company",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Limit PSC summaries per company when PSC enrichment is enabled.",
                        "default": 5
                    },
                    "maxFilingsPerCompany": {
                        "title": "Maximum filings per company",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Limit filing history summaries per company when filing enrichment is enabled.",
                        "default": 5
                    },
                    "requestDelayMs": {
                        "title": "Delay between requests (milliseconds)",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Optional delay to keep scraping polite on the public Companies House service.",
                        "default": 150
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
