# North Data Scraper — EU Company Data, Officers & Financials (`memo23/northdata-scraper`) Actor

Turn any company name into structured European registry data. North Data scraper pulls register number, registrar, LEI, address, officers with roles, corporate purpose and published financials across Handelsregister, Companies House, Siren, KVK & more. JSON/CSV out.

- **URL**: https://apify.com/memo23/northdata-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Lead generation, Agents, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 company results

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/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

## North Data Scraper

Extract structured **European company data** from [North Data](https://www.northdata.com) — company profiles, register numbers and registrars, addresses, officers and management, published financials, corporate purpose, LEI, and stock symbols. Search by company name or paste direct North Data profile URLs. One clean row per company, exportable to JSON, CSV, or Excel.

![How North Data Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-northdata.png)

> **Pure HTTP.** No browser automation, no third-party Cloudflare-bypass service, no North Data account or API credits — just clean server-rendered pages parsed directly.

### Why use this North Data Scraper?

- **All of Europe in one place.** North Data aggregates dozens of national registers — German Handelsregister, UK Companies House, French Siren, Dutch KVK, Belgian KBO, Danish CVR, and more. This actor turns any of them into structured data.
- **Officers and management included.** Every company row carries the full list of representatives — name, role (CEO, Managing Director, etc.), and a link to each person's North Data profile.
- **Published financials, parsed.** Where North Data publishes financial time-series (revenue, earnings, public funding, patents), you get them as clean year → value points, not screenshots.
- **Search or direct URL.** Feed a company name and let the actor find and paginate matches, or paste exact profile URLs you already have.
- **No account, no API credits.** Runs against North Data's public pages — no login and no metered API key required.

### Overview

North Data is a European company-information search engine covering millions of companies across the EU and UK. Each company page carries structured registry data, the corporate purpose, the register court and number, officers, and — for many companies — published financials.

This actor reads that data directly and returns **one row per company**, with officers and financials nested inside each row. It handles two entry points automatically: free-text **search queries** (paginated by result offset) and direct **company profile URLs**.

### Supported inputs

| Input | Example | What happens |
|---|---|---|
| **Search query** | `BMW`, `Siemens Energy`, `bakery Berlin` | Runs North Data's search, collects matching companies, and paginates through the results |
| **Company profile URL** | `https://www.northdata.com/BMW AG, München/HRB 42243` | Scrapes that exact company directly |
| **Mixed** | any combination of the above in one run | Auto-classified per URL |

### Use cases

- **B2B lead lists** — build company lists by name, sector keyword, or city and enrich them with register data and officer names.
- **KYC / due diligence** — pull the register number, registrar, LEI, legal status, and management for a counterparty.
- **Market and competitor research** — track companies in a vertical, including their published revenue trajectory.
- **CRM enrichment** — resolve a company name to a canonical register identity, address, and founding date.
- **Data journalism / research** — map ownership and management networks across European registers.

### How it works

1. **Classify** each seed as a search query or a direct company URL.
2. For searches, **walk the results by offset** (page size 20), collecting company profile links until a page returns nothing new.
3. For each company, **fetch the profile once** and parse its structured JSON-LD (name, address, founding date, LEI, officers).
4. **Read the register block, corporate purpose, stock symbols, and published financials** from the page.
5. **Push one row per company** — officers and financials nested inside — to the dataset.

The crawl uses an impit-based HTTP stack with a parallel fallback race for resilience. North Data serves clean server-rendered HTML, so no browser automation is required.

### Input configuration

| Field | Type | Default | Description |
|---|---|---|---|
| `search` | array of strings | `["BMW"]` | Company names / keywords to search for |
| `startUrls` | array of strings | `[]` | Direct North Data company or search URLs |
| `includeOfficers` | boolean | `true` | Include the `officers` array |
| `includeFinancials` | boolean | `true` | Include the `financials` array |
| `maxItems` | integer | `100` | Hard cap on companies collected |
| `maxConcurrency` | integer | `10` | Company pages fetched in parallel |
| `proxy` | object | Residential | Proxy configuration |

#### Example input

```json
{
  "search": ["Siemens Energy"],
  "startUrls": [
    "https://www.northdata.com/BMW AG, München/HRB 42243"
  ],
  "includeOfficers": true,
  "includeFinancials": true,
  "maxItems": 50
}
````

### Output overview

Each dataset item is one company. Officers and financials are nested arrays inside the row, so you always get exactly one row per company — no padding rows.

### Output sample

```json
{
  "type": "company",
  "url": "https://www.northdata.com/BMW AG, München/HRB 42243",
  "name": "Bayerische Motoren Werke AG",
  "status": "active",
  "registerId": "HRB 42243",
  "registerAuthority": "District Court of Munich",
  "register": "District Court of Munich HRB 42243",
  "leiCode": "YEH5ZCD6E441RHVHD759",
  "stockSymbols": ["BMW.WA", "BMWYY", "BAMXF", "BMW.DE", "BMW.SW", "BYMOF"],
  "country": "DE",
  "address": {
    "street": "Petuelring 130",
    "postalCode": "80809",
    "locality": "München",
    "region": null,
    "country": "DE"
  },
  "foundingDate": "1995-12-12",
  "corporatePurpose": "Manufacture and sale of engines and vehicles equipped with them, their accessories and products of the machinery and metal industry and the provision of services related to the aforementioned goods.",
  "officers": [
    { "name": "Zipse, Oliver", "givenName": "Oliver", "familyName": "Zipse", "role": "CEO", "url": "https://www.northdata.com/Zipse, Oliver, Kranzberg/1645" }
  ],
  "officerCount": 119,
  "financials": [
    { "metric": "Revenue", "points": [ { "year": "2025", "value": 133517941913, "formatted": "€133.5B" } ] }
  ],
  "sectionsAvailable": ["Identification", "Address", "Corporate purpose", "Financial performance", "Persons", "Network", "Publications"],
  "scrapedAt": "2026-07-19T00:00:00.000Z"
}
```

### Key output fields

| Field | Description |
|---|---|
| `name` | Registered company name |
| `registerId` | Register identifier (e.g. `HRB 42243`, `Siren 321091480`) |
| `registerAuthority` | The registrar / court (e.g. `District Court of Munich`) |
| `leiCode` | Legal Entity Identifier, when available |
| `stockSymbols` | Ticker symbols for listed companies |
| `address` | Street, postal code, locality, region, country |
| `foundingDate` | Date of registration / founding |
| `corporatePurpose` | The company's stated business purpose |
| `officers` | Array of `{ name, givenName, familyName, role, url }` |
| `officerCount` | Number of officers found |
| `financials` | Array of `{ metric, points[] }` with year, numeric value, formatted value |
| `status` | `active`, `liquidation`, or `terminated` (best effort) |
| `sectionsAvailable` | Which profile sections were present on the page |

### What makes this richer than other North Data scrapers

Most North Data actors return a flat company profile. This one bundles the two hardest-to-get pieces — officers and financials — into the same row, at no extra per-row cost.

| Capability | Typical competitor | This actor |
|---|---|---|
| Company profile (name, register, address) | ✅ | ✅ |
| Registrar / court + register id, split | Sometimes | ✅ `registerAuthority` + `registerId` |
| LEI + stock symbols | Rarely | ✅ |
| **Officers / management** (name, role, profile URL) | Rarely | ✅ nested `officers[]` |
| **Published financials** (revenue, earnings, funding, patents) | ✗ | ✅ nested `financials[]` time-series |
| Corporate purpose | Sometimes | ✅ |
| Search by name **and** direct URL | One or the other | ✅ both, auto-classified |
| One row per company (no padding rows) | Varies | ✅ |

### Pricing

Pay-per-event — you're billed per company row returned, nothing for empty searches or the run itself.

| Event | When it fires | Notes |
|---|---|---|
| Company result | One per company pushed to the dataset | The only meaningful charge |
| Actor start | Once per run | Negligible |

Officers and financials are included in the company row — there is **no separate charge** for nested data.

### FAQ

**Which countries does it cover?**
Any register North Data indexes — Germany (Handelsregister), UK (Companies House), France (Siren/SIRET), Netherlands (KVK), Belgium (KBO), Denmark (CVR), and many more across Europe.

**Are financials always present?**
No. Published financials depend on what North Data has for each company — large and listed companies usually have them; small private companies often don't. The `financials` array is empty when none are published.

**Does search return the exact company I typed?**
Search follows North Data's own relevance ranking. Use a precise name (e.g. `Siemens Energy AG`) for the best match, or paste the direct profile URL when you already have it.

**Do I need a North Data account or API key?**
No. The actor works against North Data's public pages.

**Can I get only companies, without officers or financials?**
Yes — turn off `includeOfficers` and/or `includeFinancials` for a leaner dataset.

### Support

Found a bug or need a new field? Open an issue on the actor's Issues tab in the Apify Console and it'll be looked at.

### Additional services

Need company data from a specific register, contact-email enrichment, or a custom output shape? These can be added on request.

### Explore more scrapers

This actor is part of a portfolio of company-data and directory scrapers. Check the publisher's other actors on the Apify Store for related registers and lead-generation tools.

### ⚠️ Disclaimer

This actor collects **publicly available** company information from North Data for legitimate business purposes such as market research, due diligence, and lead generation. Company registry data is public record. Users are responsible for complying with North Data's Terms of Service, applicable data-protection laws (including the GDPR when handling personal data such as officer names), and any local regulations governing the use of company and personal information. This actor is not affiliated with, endorsed by, or connected to North Data.

### SEO Keywords

North Data scraper, northdata.com scraper, European company data, company registry scraper, Handelsregister scraper, Companies House data, Siren scraper, KVK scraper, KBO scraper, CVR scraper, company officers scraper, management data, published financials, LEI lookup, corporate purpose, B2B lead generation, KYC due diligence, company enrichment, EU business data, register number lookup.

# Actor input Schema

## `search` (type: `array`):

Company name(s) or keyword(s) to search North Data for. Each term becomes a results page that is paginated and scraped. Example: `BMW`, `Siemens Energy`, `bakery Berlin`.

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

Direct North Data URLs to crawl. Company profile URLs (e.g. `https://www.northdata.com/BMW AG, München/HRB 42243`) are scraped directly; search/results URLs (e.g. `https://www.northdata.com/_search/BMW`) are paginated. Both are auto-classified.

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

Adds an `officers` array (name, role, and North Data profile URL for each person) parsed from the company's structured data. Turn off for a leaner, company-only dataset.

## `includeFinancials` (type: `boolean`):

Adds a `financials` array of published time-series metrics (revenue, earnings, public funding, and more) with year, numeric value, and formatted value. Availability depends on what North Data has published for each company.

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

Hard cap on the number of company profiles collected across all search terms and URLs. Use this to control billing on broad searches.

## `maxConcurrency` (type: `integer`):

Maximum number of company pages processed in parallel.

## `minConcurrency` (type: `integer`):

Minimum number of company pages processed in parallel.

## `maxRequestRetries` (type: `integer`):

Number of retries before a failed request is given up.

## `proxy` (type: `object`):

Proxy settings. North Data serves clean HTML, so a residential pool works well; the actor also ships with a built-in residential route.

## Actor input object example

```json
{
  "search": [
    "BMW"
  ],
  "startUrls": [],
  "includeOfficers": true,
  "includeFinancials": true,
  "maxItems": 100,
  "maxConcurrency": 10,
  "minConcurrency": 1,
  "maxRequestRetries": 5,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "search": [
        "BMW"
    ],
    "startUrls": [],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/northdata-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 = {
    "search": ["BMW"],
    "startUrls": [],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/northdata-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 '{
  "search": [
    "BMW"
  ],
  "startUrls": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call memo23/northdata-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "North Data Scraper — EU Company Data, Officers & Financials",
        "description": "Turn any company name into structured European registry data. North Data scraper pulls register number, registrar, LEI, address, officers with roles, corporate purpose and published financials across Handelsregister, Companies House, Siren, KVK & more. JSON/CSV out.",
        "version": "0.0",
        "x-build-id": "XgR95l54H8sXn9Ra8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~northdata-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-northdata-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/memo23~northdata-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-northdata-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/memo23~northdata-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-northdata-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": {
                    "search": {
                        "title": "Search query",
                        "type": "array",
                        "description": "Company name(s) or keyword(s) to search North Data for. Each term becomes a results page that is paginated and scraped. Example: `BMW`, `Siemens Energy`, `bakery Berlin`.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "North Data URLs",
                        "type": "array",
                        "description": "Direct North Data URLs to crawl. Company profile URLs (e.g. `https://www.northdata.com/BMW AG, München/HRB 42243`) are scraped directly; search/results URLs (e.g. `https://www.northdata.com/_search/BMW`) are paginated. Both are auto-classified.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeOfficers": {
                        "title": "Include officers / management",
                        "type": "boolean",
                        "description": "Adds an `officers` array (name, role, and North Data profile URL for each person) parsed from the company's structured data. Turn off for a leaner, company-only dataset.",
                        "default": true
                    },
                    "includeFinancials": {
                        "title": "Include published financials",
                        "type": "boolean",
                        "description": "Adds a `financials` array of published time-series metrics (revenue, earnings, public funding, and more) with year, numeric value, and formatted value. Availability depends on what North Data has published for each company.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum companies to scrape",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on the number of company profiles collected across all search terms and URLs. Use this to control billing on broad searches.",
                        "default": 100
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of company pages processed in parallel.",
                        "default": 10
                    },
                    "minConcurrency": {
                        "title": "Min concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Minimum number of company pages processed in parallel.",
                        "default": 1
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of retries before a failed request is given up.",
                        "default": 5
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. North Data serves clean HTML, so a residential pool works well; the actor also ships with a built-in residential route.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
