# EUIPO TMview Trademarks Scraper (`automation-lab/euipo-tmview-trademarks-scraper`) Actor

Search public TMview trademark records by mark name, office, Nice class, status, and filing date. Export legal IP data for monitoring and diligence.

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

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are 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

## EUIPO TMview Trademarks Scraper

Search public EUIPO/TMDN TMview trademark records and export structured trademark data for brand monitoring, clearance research, IP diligence, and portfolio review.

This Actor queries the public TMview search workflow and saves clean dataset rows with mark names, offices, application numbers, statuses, Nice classes, applicants, source links, and timestamps. Turn on detail enrichment when you also need registration numbers, expiry dates, representatives, mark features, and goods/services descriptions.

### What does EUIPO TMview Trademarks Scraper do?

EUIPO TMview Trademarks Scraper automates public trademark searches on TMview.

It helps you collect trademark records for a mark name or keyword without manually clicking through the TMview web application.

The Actor supports searches across all TMview offices or narrowed to office codes such as `EM`, `US`, `GB`, `DE`, `FR`, `JP`, or `CN`.

It can also filter by Nice classes and common status values such as `Registered`, `Filed`, `Expired`, and `Ended`.

### Who is it for?

⚖️ Trademark attorneys can export filing/status evidence for clearance checks and watch reports.

🛡️ Brand-protection teams can monitor marks similar to key brand names across jurisdictions.

📊 IP researchers can build repeatable datasets for market and competitor analysis.

🤝 M&A and diligence teams can collect owner, registration, and expiry signals before deeper legal review.

🧑‍💻 Data teams can schedule runs and feed trademark records into BI, enrichment, or alerting workflows.

### Why use this Actor?

Manual TMview searches are useful for one-off lookups but slow for repeated monitoring.

This Actor gives you a repeatable export with stable field names.

It is designed for automation: schedule it, call it from the API, export JSON/CSV/Excel, or connect it to downstream tools.

Use the default search mode for fast result exports and enable detail enrichment when your workflow needs deeper legal fields.

### Data you can extract

| Field | Description |
| --- | --- |
| `searchQuery` | Query used for the run |
| `st13` | TMview ST13 identifier |
| `markName` | Trademark / mark name |
| `officeCode` | TMview office code |
| `officeName` | Full office name when detail enrichment is enabled |
| `applicationNumber` | Application number |
| `registrationNumber` | Registration number when available |
| `status` | Trademark status |
| `niceClasses` | Nice class numbers |
| `applicants` | Applicant / owner names |
| `representatives` | Representative names when details are enabled |
| `applicationDate` | Application date in YYYY-MM-DD format |
| `registrationDate` | Registration date when available |
| `expiryDate` | Expiry date when available |
| `goodsAndServices` | Goods/services descriptions by Nice class |
| `markFeature` | Word/figurative/other mark feature when available |
| `imageUrl` | TMview mark image URL when provided |
| `sourceUrl` | Official source URL when provided |
| `detailUrl` | TMview detail route |
| `totalResults` | Total TMview result count for the query |
| `scrapedAt` | ISO timestamp for the scrape |

### How much does it cost to scrape EUIPO TMview trademarks?

This Actor uses pay-per-event pricing.

There is a small start charge for each run and a per-record charge for every trademark record saved.

The final Store price is shown in the Apify pricing panel before you run the Actor.

Start with small limits such as 50 or 100 records when testing a new query.

Enable detail enrichment only when you need the additional fields because it performs one extra request per trademark record.

### Input options

`query` is required. Use a brand name, mark name, or keyword such as `nike`, `tesla`, or your client name.

`maxResults` controls how many records are saved.

`includeDetails` fetches the public detail endpoint for each record.

`offices` narrows the search to TMview office codes.

`niceClasses` narrows by Nice class numbers.

`status` narrows by TMview status values.

`dateFrom` and `dateTo` apply a client-side application-date filter in `YYYY-MM-DD` format.

### Example input

```json
{
  "query": "nike",
  "offices": ["EM"],
  "niceClasses": [25],
  "status": ["Registered"],
  "maxResults": 100,
  "includeDetails": true
}
````

### Example output

```json
{
  "searchQuery": "nike",
  "st13": "EM500000000827824",
  "markName": "nike",
  "officeCode": "EM",
  "officeName": "European Union Intellectual Property Office",
  "applicationNumber": "000827824",
  "registrationNumber": "000827824",
  "status": "Registered",
  "niceClasses": [25, 28, 18],
  "applicants": ["NIKE Innovate C.V."],
  "representatives": ["..."],
  "applicationDate": "1998-05-19",
  "registrationDate": "1999-02-24",
  "expiryDate": "2028-05-19",
  "goodsAndServices": [
    { "niceClass": "25", "description": "Clothing, footwear, headgear..." }
  ],
  "detailUrl": "https://www.tmdn.org/tmview/#/tmview/detail/EM500000000827824",
  "scrapedAt": "2026-07-10T00:00:00.000Z"
}
```

### How to run it

1. Open the Actor on Apify.
2. Enter a trademark query.
3. Optionally add office codes, Nice classes, and status filters.
4. Choose `maxResults`.
5. Enable detail enrichment if you need goods/services or expiry dates.
6. Start the run.
7. Download the dataset as JSON, CSV, Excel, XML, or HTML.

### Tips for better results

Use exact brand names for high-precision watchlists.

Use shorter stems or product names for broader clearance research.

Use office filters when your workflow focuses on specific jurisdictions.

Use Nice class filters to reduce irrelevant results.

Run a small sample first, inspect the output, then increase `maxResults`.

### Integrations

Send results to Google Sheets for attorney review.

Load CSV exports into BI tools for portfolio dashboards.

Use webhooks to notify Slack or email when a scheduled watchlist run completes.

Push dataset items into your CRM, legal database, or brand-protection queue.

Combine this Actor with enrichment Actors when you need company, website, or contact context for trademark owners.

### 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/euipo-tmview-trademarks-scraper').call({
  query: 'nike',
  offices: ['EM'],
  niceClasses: [25],
  maxResults: 100,
  includeDetails: true,
});
console.log(run.defaultDatasetId);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/euipo-tmview-trademarks-scraper').call(run_input={
    'query': 'nike',
    'offices': ['EM'],
    'niceClasses': [25],
    'maxResults': 100,
    'includeDetails': True,
})
print(run['defaultDatasetId'])
```

### API usage with cURL

```bash
curl "https://api.apify.com/v2/acts/automation-lab~euipo-tmview-trademarks-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"query":"nike","offices":["EM"],"niceClasses":[25],"maxResults":100,"includeDetails":true}'
```

### MCP usage

Use Apify MCP to run the Actor from Claude Desktop or Claude Code.

MCP server URL:

```text
https://mcp.apify.com/?tools=automation-lab/euipo-tmview-trademarks-scraper
```

Claude Code setup:

```bash
claude mcp add apify-trademarks --transport http https://mcp.apify.com/?tools=automation-lab/euipo-tmview-trademarks-scraper
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-trademarks": {
      "url": "https://mcp.apify.com/?tools=automation-lab/euipo-tmview-trademarks-scraper"
    }
  }
}
```

Example prompts:

- “Run the EUIPO TMview trademarks scraper for `nike` in office `EM` and summarize active registrations.”
- “Find registered class 25 TMview marks for this brand list and return a CSV.”
- “Monitor this mark weekly and flag new filed or registered records.”

### Scheduling trademark monitoring

Create one Apify task per watchlist query.

Schedule daily, weekly, or monthly runs depending on your monitoring cadence.

Use dataset item timestamps and `st13` identifiers to detect new records across runs.

For high-value brands, keep detail enrichment enabled so you capture expiry and goods/services changes.

### Common office codes

`EM` is EUIPO / European Union trademark coverage.

`US` is the United States.

`GB` is the United Kingdom.

`DE`, `FR`, `IT`, `ES`, and `BX` are common European office filters.

TMview supports many more national and regional offices; use the code shown in TMview filters.

### Limitations

TMview is a public web application and can change its internal API payloads.

Date filters are applied client-side in this MVP because the public app's date payload is less stable than office/status/class filters.

Detail enrichment depends on the public detail endpoint for each office; if one office returns a transient detail error, the Actor still saves the base search result.

This Actor does not provide legal advice.

### Legality and responsible use

This Actor extracts public trademark information from TMview.

Use it for legitimate research, monitoring, compliance, and diligence workflows.

Respect Apify terms, TMview terms, and applicable laws in your jurisdiction.

Do not use scraped data to spam trademark owners, representatives, or offices.

### Troubleshooting

If you get fewer rows than expected, check whether office, Nice class, status, or date filters are too narrow.

If detail fields are empty, confirm `includeDetails` is enabled.

If some detail fields are missing, the source office may not publish that field through TMview.

If a run is slow, disable detail enrichment or lower `maxResults`.

### FAQ

#### Can I search all TMview offices?

Yes. Leave `offices` empty to search all public TMview offices.

#### Can I export only EUIPO records?

Yes. Set `offices` to `["EM"]`.

#### Can I search by owner?

This MVP focuses on mark-name keyword search. Owner-specific search can be added in a future version if demand is strong.

#### Can I use this for legal clearance decisions?

Use it as a data collection tool. A qualified trademark professional should review legal conclusions.

### Related scrapers

- https://apify.com/automation-lab/uspto-trademark-status-scraper
- https://apify.com/automation-lab/ip-australia-trademarks-scraper
- https://apify.com/automation-lab/website-contact-finder

### Changelog

See `.actor/CHANGELOG.md` for release notes.

### Support

If you need a field that TMview exposes but this Actor does not yet output, open an issue on the Actor page with a sample mark and expected field.

# Actor input Schema

## `query` (type: `string`):

Trademark name or keyword to search in TMview, for example a brand, product name, or owner-facing mark term.

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

Maximum number of TMview trademark records to save to the dataset.

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

Fetch each trademark detail page to include registration number, expiry date, owner address names, representatives, and goods/services descriptions. Slower but richer.

## `offices` (type: `array`):

Optional TMview office codes such as EM (EUIPO), US, GB, DE, FR, JP, CN. Leave empty to search all offices.

## `niceClasses` (type: `array`):

Optional Nice class numbers to filter by, for example 9, 25, or 35.

## `status` (type: `array`):

Optional TMview status values. Common values include Registered, Filed, Expired, and Ended.

## `dateFrom` (type: `string`):

Optional inclusive lower bound for application date in YYYY-MM-DD format. Applied after TMview returns records.

## `dateTo` (type: `string`):

Optional inclusive upper bound for application date in YYYY-MM-DD format. Applied after TMview returns records.

## `proxyConfiguration` (type: `object`):

Apify Proxy is enabled by default on platform runs to keep TMview API connectivity reliable.

## Actor input object example

```json
{
  "query": "nike",
  "maxResults": 20,
  "includeDetails": false,
  "offices": [
    "EM"
  ],
  "niceClasses": [
    25
  ],
  "status": [
    "Registered"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `trademarkRecords` (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 = {
    "query": "nike",
    "maxResults": 20,
    "includeDetails": false,
    "offices": [
        "EM"
    ],
    "niceClasses": [
        25
    ],
    "status": [
        "Registered"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/euipo-tmview-trademarks-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 = {
    "query": "nike",
    "maxResults": 20,
    "includeDetails": False,
    "offices": ["EM"],
    "niceClasses": [25],
    "status": ["Registered"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/euipo-tmview-trademarks-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 '{
  "query": "nike",
  "maxResults": 20,
  "includeDetails": false,
  "offices": [
    "EM"
  ],
  "niceClasses": [
    25
  ],
  "status": [
    "Registered"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automation-lab/euipo-tmview-trademarks-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EUIPO TMview Trademarks Scraper",
        "description": "Search public TMview trademark records by mark name, office, Nice class, status, and filing date. Export legal IP data for monitoring and diligence.",
        "version": "0.1",
        "x-build-id": "h9KznxKakp5g2oI31"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~euipo-tmview-trademarks-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-euipo-tmview-trademarks-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~euipo-tmview-trademarks-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-euipo-tmview-trademarks-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~euipo-tmview-trademarks-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-euipo-tmview-trademarks-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": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Trademark search query",
                        "type": "string",
                        "description": "Trademark name or keyword to search in TMview, for example a brand, product name, or owner-facing mark term."
                    },
                    "maxResults": {
                        "title": "Maximum trademark records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of TMview trademark records to save to the dataset.",
                        "default": 20
                    },
                    "includeDetails": {
                        "title": "Include detailed record data",
                        "type": "boolean",
                        "description": "Fetch each trademark detail page to include registration number, expiry date, owner address names, representatives, and goods/services descriptions. Slower but richer.",
                        "default": false
                    },
                    "offices": {
                        "title": "Trademark office codes",
                        "type": "array",
                        "description": "Optional TMview office codes such as EM (EUIPO), US, GB, DE, FR, JP, CN. Leave empty to search all offices.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "niceClasses": {
                        "title": "Nice classes",
                        "type": "array",
                        "description": "Optional Nice class numbers to filter by, for example 9, 25, or 35.",
                        "items": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 45
                        }
                    },
                    "status": {
                        "title": "Trademark status",
                        "type": "array",
                        "description": "Optional TMview status values. Common values include Registered, Filed, Expired, and Ended.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "dateFrom": {
                        "title": "Application date from",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Optional inclusive lower bound for application date in YYYY-MM-DD format. Applied after TMview returns records."
                    },
                    "dateTo": {
                        "title": "Application date to",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Optional inclusive upper bound for application date in YYYY-MM-DD format. Applied after TMview returns records."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy is enabled by default on platform runs to keep TMview API connectivity reliable.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
