# Poland Public Tender Monitor (BZP & e-Zamówienia) (`mrarcode/bzp-scraper`) Actor

Real-time alerts for Polish public tenders (BZP). Filter by CPV, region & keywords; get only new, changed & awarded notices — via the official free API, no scraping.

- **URL**: https://apify.com/mrarcode/bzp-scraper.md
- **Developed by:** [MrArCode](https://apify.com/mrarcode) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 qualified notice alerts

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Polish Public-Sector Procurement Alerts (BZP) — Qualified Event Feed

Extract structured procurement notices from the official, free Polish public-procurement database (BZP / e-Zamówienia) with hierarchical CPV matching, regional filtering, keyword monitoring, and incremental change tracking.

This Actor is designed for cybersecurity firms, IT integrators, public sector consultants, sales teams, and automation workflows that need clean, qualified, real-time alert feeds of Polish public tenders.

---

### What does it do?

This Actor integrates directly with the official, free Polish e-Zamówienia Search API Gateway to retrieve public procurement notices. Instead of dumping raw database tables, it qualifies, normalizes, and filters notices client-side, returning a high-fidelity stream of procurement events (`new` opportunities, `changed` dates/deadlines, `awarded` contracts, and `cancelled` procedures) with a detailed `whyMatched` justification.

It supports **incremental monitoring**, meaning subsequent runs use a persistent state engine to deduplicate seen notices and deliver only the actual changes.

---

### Key features

- **Official API Integration:** Queries the official public search gateway directly. No browser scraping, no HTML parsing, and no proxy fees.
- **Hierarchical CPV Matching:** Filter by CPV codes (e.g., `72000000` for IT services matches all subcategories like `72200000` or `72222300` automatically).
- **Client-Side Title Matching:** Performs high-fidelity keyword matching in notice titles (`orderObject`) to flag relevant tenders.
- **Regional & Authority Filtering:** Filter notices by contracting authority names, NIP identifiers, or voivodeship regions (resolved automatically from names to BZP codes).
- **State-Persisted Deduplication:** Tracks seen notices and their volatile fields (`submittingOffersDate`, `procedureResult`, `contractors`) in a Key-Value Store to detect changes.
- **Pure Pay-Per-Event Pricing:** Charges **only** for qualified events (`new`, `changed`, `awarded`, `cancelled`) that match your criteria. Unchanged notices are processed and delivered 100% free of charge.
- **Reliable Watermark Guard:** Watermark (`__last_run_timestamp`) is advanced *only* on a complete, error-free scan. If any sub-query fails, the watermark remains at its previous value, ensuring no notices are lost on the next run.

---

### Use cases

- **Cybersecurity & IT Alerts:** Automatically monitor new tenders matching CPVs like `72000000` and keywords like `cyber` or `bezpieczeństwo`.
- **Competitor & Award Tracking:** Monitor who won specific public contracts and for what procedure results.
- **Authority Sourcing:** Monitor tenders published by specific municipalities, hospitals, or government entities using their NIP.
- **Procurement Dashboards:** Build real-time alerting dashboards for sales teams using webhooks.
- **Downstream CRM Feeds:** Route qualified events directly into Slack, Teams, or CRMs via webhooks.

---

### Input

You can filter notices using CPV codes, keywords, region codes/names, and contracting authorities.

#### Basic IT search example

```json
{
  "cpvCodes": ["72000000", "48000000"],
  "keywords": ["cyber", "bezpieczeństwo", "system"],
  "noticeTypes": ["contract", "award"],
  "mode": "new_only",
  "dateLookbackDays": 3
}
````

#### Contracting authority monitoring example

```json
{
  "contractingAuthorities": ["Publiczna Szkoła", "7962452708"],
  "noticeTypes": ["contract"],
  "mode": "all",
  "dateLookbackDays": 7
}
```

#### Regional filtering example

```json
{
  "cpvCodes": ["72000000"],
  "voivodeships": ["PL14", "Śląskie"],
  "noticeTypes": ["contract", "award", "plan"],
  "mode": "new_only",
  "dateLookbackDays": 5
}
```

***

### Input fields

| Field                    |    Type | Description                                                                                                    |
| ------------------------ | ------: | -------------------------------------------------------------------------------------------------------------- |
| `cpvCodes`               |   array | Hierarchical CPV codes to monitor (e.g., `["72000000", "48000000"]`). Supports prefix matching.                |
| `keywords`               |   array | Keywords to match case-insensitively in notice titles (e.g., `["cyber", "bezpieczeństwo"]`).                    |
| `voivodeships`           |   array | BZP regional codes (PL02–PL32) or voivodeship names to filter on (e.g., `["PL14", "Mazowieckie"]`).             |
| `contractingAuthorities` |   array | Names or NIP identifiers of specific contracting authorities to monitor.                                        |
| `noticeTypes`            |   array | Types of notices to monitor. Supported: `"contract"`, `"award"`, `"plan"`, `"concession"`, `"competition"`, `"update"`.|
| `mode`                   |  string | Scraper mode: `"new_only"` (filters out unchanged) or `"all"` (returns all matches). Default: `"new_only"`.    |
| `dateLookbackDays`       | integer | Number of days to look back on a fresh run or if state is missing. Default: `7`, max: `30`.                    |

***

### Output example

Every record emitted to the dataset follows this strict, drift-free schema:

```json
{
  "objectId": "08ded05a-f5d3-a088-5fad-9500015f90c5",
  "eventType": "awarded",
  "noticeType": "TenderResultNotice",
  "isTenderAmountBelowEU": true,
  "orderObject": "Dostawy sprzętu oraz oprogramowania w ramach zadania pn. „Cyberbezpieczny Powiat Węgrowski” – 2 podejście",
  "cpvCode": "30233000-1 (Urządzenia...), 32420000-3 (Urządzenia...), 48000000-8 (Pakiety oprogramowania i systemy...)",
  "organizationName": "Powiat Węgrowski",
  "organizationProvince": "PL14",
  "organizationNationalId": "8241765263",
  "submittingOffersDate": null,
  "procedureResult": "zawarcieUmowy",
  "contractors": [
    {
      "contractorName": "Net Complex Sp. z o.o",
      "contractorCity": "Bielsko Biała",
      "contractorProvince": "PL24",
      "contractorCountry": "PL",
      "contractorNationalId": "5472165461"
    }
  ],
  "sourceUrl": "https://ezamowienia.gov.pl/mo-client-board/bzp/notice-details/html/08ded05a-f5d3-a088-5fad-9500015f90c5",
  "whyMatched": [
    "CPV 48000000",
    "keyword: cyber"
  ],
  "firstSeenAt": "2026-06-24T05:07:06Z",
  "lastSeenAt": "2026-06-24T05:07:06Z"
}
```

***

### Event types

The Actor classifies each qualified notice against previous runs into one of the following event types:

| eventType   | Meaning                                                                                                    | Chargeable? |
| ----------- | ---------------------------------------------------------------------------------------------------------- | ----------- |
| `new`       | A notice that has not been seen before in this search context.                                             | **Yes**     |
| `changed`   | A notice seen in previous runs, but where a volatile field (e.g., deadline, result, contractors) changed.  | **Yes**     |
| `awarded`   | A result notice indicating a contract has been successfully awarded (`TenderResultNotice`).               | **Yes**     |
| `cancelled` | A notice that has been explicitly cancelled (detected from the official `procedureResult` text in data).   | **Yes**     |
| `unchanged` | A notice that has been seen before and has not changed. (Filtered out in `new_only` mode).                 | **No**      |

***

### Incremental & state

- **Cross-Run State Persistence:** State is stored in a named Key-Value Store (`bzp-scraper-state`) under the key `state-{stateKey}`. It tracks notice hashes and seen flags.
- **Watermark Guard:** The scraper utilizes an `all_queries_ok` check. If any query fails due to an API timeout or transient gateway error, the watermark (`__last_run_timestamp`) is **not** advanced. This ensures that a subsequent run will repeat the lookback for the failed window, preventing any notices from being missed. Successfully fetched notices are still pushed, charged, and committed to seen state to avoid duplicate billing.
- **Cancelled notices from data:** In procurement monitoring, notices do not "expire" by disappearing from the feed. Instead, cancellation is an active event detected when the official `procedureResult` contains cancellation information (e.g., `"unieważnienie"`). The scraper never emits a cancellation event simply because a notice disappears from a scan window.

***

### Data quality & limitations

- **Search Payload Limitation:** The official BZP Search API (`/Board/Search`) does **not** return the HTML body of notices (it is always returned as `null`). Direct keyword matching is therefore performed strictly on the notice title (`orderObject`).
- **No Value Field:** The search gateway does not provide numerical budget or price fields. The only budget indicator is the boolean `isTenderAmountBelowEU`. Numerical value filters (like `minValue`) are not supported at the search level.
- **BZP Regional Coding:** The API returns BZP regional codes (equivalent to old NUTS-3 / TERYT regional grouping) where the 16 Polish voivodeships are mapped to consecutive even numbers in alphabetical order (`PL02` to `PL32`). The Actor automatically translates Polish province names to these codes.

***

### Responsible usage

This Actor is designed to integrate with the official, free public read API gateway of e-Zamówienia. It does not perform HTML scraping, browser impersonation, or anti-blocking circumvention. It respects rate limits and applies exponential backoff on HTTP 429 errors. Please configure your run frequencies (e.g., hourly or daily) reasonably.

***

### Pricing

This is a pure **Pay-Per-Event** Actor. You only pay for qualified notice events (`new`, `changed`, `awarded`, `cancelled`) that match your search filters.

- **No Proxy Cost:** Because this Actor uses the official free public gateway, it runs with zero proxy costs (no residential proxy charges).
- **Unchanged notices are 100% free:** Deduplicated `unchanged` records are never charged.

***

### FAQ

#### Does this Actor support direct BZP details URLs?

No. The Actor queries the official Search gateway by date and CPV code. Direct detail pages are represented in the dataset as `sourceUrl` links but cannot be scraped individually.

#### Can I monitor only new tenders?

Yes. Use `"mode": "new_only"` (default). This filters out all `unchanged` notices from your dataset, delivering only actionable events.

#### Why did I get a warning about the watermark?

If the e-Zamówienia API experiences transient failures or timeouts during a run, the Actor logs a warning: `"Incomplete fetch — watermark not advanced to avoid missing notices."` This is a safety feature ensuring that the next run will search the same time window again to fetch the missing data.

***

### Downstream integration (Make / Slack / Webhooks)

This Actor is designed to be scheduled hourly or daily. You can configure an Apify Webhook that triggers whenever a run completes successfully to send qualified events directly to Slack, Teams, or your custom CRM via Make.com or Zapier.

**Example Make.com flow:**

1. Apify Webhook: *Run finished*
2. Apify Module: *Get Dataset Items* (filters out empty runs)
3. Router:
   - If `eventType == "new"`: Send Slack alert: *"New tender opportunity discovered!"*
   - If `eventType == "cancelled"`: Update CRM: *"Tender has been cancelled."*

# Actor input Schema

## `cpvCodes` (type: `array`):

Hierarchical CPV codes to monitor (e.g. \['72000000', '48000000']). Supports prefix matching.

## `keywords` (type: `array`):

Keywords to match case-insensitively in notice title (e.g. \['cyber', 'bezpieczeństwo']).

## `voivodeships` (type: `array`):

Polish NUTS codes or voivodeship names to filter on (e.g. \['PL14', 'Mazowieckie']).

## `contractingAuthorities` (type: `array`):

Names or NIPs of specific contracting authorities to monitor.

## `noticeTypes` (type: `array`):

Types of notices to monitor. Supported: 'contract', 'award', 'plan', 'concession', 'competition', 'update'.

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

Scraper mode: 'all' (emits all matched notices) or 'new\_only' (emits only new, changed, awarded, or cancelled notices, deduping unchanged).

## `dateLookbackDays` (type: `integer`):

Number of days to look back on a fresh run or if state is missing.

## Actor input object example

```json
{
  "cpvCodes": [
    "72000000",
    "48000000"
  ],
  "keywords": [
    "cyber",
    "bezpieczeństwo",
    "system",
    "oprogramowanie"
  ],
  "voivodeships": [],
  "contractingAuthorities": [],
  "noticeTypes": [
    "contract",
    "award"
  ],
  "mode": "new_only",
  "dateLookbackDays": 7
}
```

# Actor output Schema

## `procurementNotices` (type: `string`):

Structured public procurement notice records matching your criteria.

# 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 = {
    "cpvCodes": [
        "72000000",
        "48000000"
    ],
    "keywords": [
        "cyber",
        "bezpieczeństwo",
        "system",
        "oprogramowanie"
    ],
    "voivodeships": [],
    "contractingAuthorities": [],
    "noticeTypes": [
        "contract",
        "award"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrarcode/bzp-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 = {
    "cpvCodes": [
        "72000000",
        "48000000",
    ],
    "keywords": [
        "cyber",
        "bezpieczeństwo",
        "system",
        "oprogramowanie",
    ],
    "voivodeships": [],
    "contractingAuthorities": [],
    "noticeTypes": [
        "contract",
        "award",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("mrarcode/bzp-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 '{
  "cpvCodes": [
    "72000000",
    "48000000"
  ],
  "keywords": [
    "cyber",
    "bezpieczeństwo",
    "system",
    "oprogramowanie"
  ],
  "voivodeships": [],
  "contractingAuthorities": [],
  "noticeTypes": [
    "contract",
    "award"
  ]
}' |
apify call mrarcode/bzp-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Poland Public Tender Monitor (BZP & e-Zamówienia)",
        "description": "Real-time alerts for Polish public tenders (BZP). Filter by CPV, region & keywords; get only new, changed & awarded notices — via the official free API, no scraping.",
        "version": "0.0",
        "x-build-id": "oYpUuXo2jKADXf9fH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mrarcode~bzp-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mrarcode-bzp-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/mrarcode~bzp-scraper/runs": {
            "post": {
                "operationId": "runs-sync-mrarcode-bzp-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/mrarcode~bzp-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-mrarcode-bzp-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": {
                    "cpvCodes": {
                        "title": "CPV Codes",
                        "type": "array",
                        "description": "Hierarchical CPV codes to monitor (e.g. ['72000000', '48000000']). Supports prefix matching."
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Keywords to match case-insensitively in notice title (e.g. ['cyber', 'bezpieczeństwo'])."
                    },
                    "voivodeships": {
                        "title": "Voivodeships (Provinces)",
                        "type": "array",
                        "description": "Polish NUTS codes or voivodeship names to filter on (e.g. ['PL14', 'Mazowieckie'])."
                    },
                    "contractingAuthorities": {
                        "title": "Contracting Authorities",
                        "type": "array",
                        "description": "Names or NIPs of specific contracting authorities to monitor."
                    },
                    "noticeTypes": {
                        "title": "Notice Types",
                        "type": "array",
                        "description": "Types of notices to monitor. Supported: 'contract', 'award', 'plan', 'concession', 'competition', 'update'."
                    },
                    "mode": {
                        "title": "Scraper Mode",
                        "enum": [
                            "new_only",
                            "all"
                        ],
                        "type": "string",
                        "description": "Scraper mode: 'all' (emits all matched notices) or 'new_only' (emits only new, changed, awarded, or cancelled notices, deduping unchanged).",
                        "default": "new_only"
                    },
                    "dateLookbackDays": {
                        "title": "Date Lookback (Days)",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "Number of days to look back on a fresh run or if state is missing.",
                        "default": 7
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
