# EU Tenders API - Normalized TED Public Procurement (`webdata_labs/eu-tenders-api`) Actor

\[💵 $3.00 / 1K] One clean English schema for EU public tenders from TED. Buyer, CPV sector, value, deadline, country, award status - normalized from raw 24-language eForms, not a raw notice dump.

- **URL**: https://apify.com/webdata\_labs/eu-tenders-api.md
- **Developed by:** [WebData Labs](https://apify.com/webdata_labs) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 notice records

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

## EU Tenders API - Normalized TED Public Procurement

**One clean English schema for EU public tenders.** Search the official TED (Tenders Electronic Daily) feed by keyword, CPV sector, country, or stage, and get analysis-ready rows: English title and buyer, readable notice type, CPV sector label, contract value, submission deadline, country, and award status - sorted newest first.

TED publishes every EU public-procurement notice, but its API hands you raw eForms: the buyer name is a **24-language nested object**, the notice type is a cryptic code (`cn-standard`, `can-standard`), the procedure is `oth-single`, CPV sectors are bare 8-digit numbers, country and region arrive as 3-letter ISO and NUTS codes mixed together in one **duplicated** array, and dates carry timezone suffixes. Most "TED scrapers" hand you that mess. This Actor does the hard part: it picks the **English** value out of every multilingual field, maps each eForms code to a readable label, resolves CPV to a human **sector**, splits and de-duplicates place codes into country names and NUTS regions, flags whether a notice is an **open opportunity or an award**, normalizes dates to ISO, and returns **one consistent row** every time.

### ✅ What you get / ❌ what this isn't

| This Actor gives you | This Actor is not |
|---|---|
| One normalized row per notice, English-first, identical shape every time | Not a raw 24-language eForms dump |
| Readable `noticeTypeLabel`, `procedureTypeLabel`, `cpvSector` from cryptic codes | Not affiliated with or endorsed by the EU, TED, or any buyer |
| `isAward` flag to separate open opportunities from awarded results | Not a bid-writing or eligibility-assessment service |
| Contract `totalValue` as a number, `deadline` and dates normalized to ISO | Not a guarantee every notice exposes a value or deadline |
| Buyer name and country resolved to readable text | Not real-time - reflects TED's publishing cadence |
| Reliable reads from the official TED API (no anti-bot, no proxy needed) | Not a national-portal aggregator - this is the pan-EU TED feed |

### 🔎 Why use this Actor

- Build a live feed of EU tenders in your sector, filtered by CPV, country, and keyword.
- Separate **open opportunities you can still bid on** from **awards** (who won what) with one flag.
- Track high-value contracts by reading a numeric `totalValue` instead of parsing eForms.
- Monitor competitor wins and buyer activity across all 27 member states in one schema.
- Feed normalized, English procurement data into a CRM, dashboard, model, or LLM pipeline.
- Skip the plumbing - multilingual resolution, CPV sector mapping, and code translation are done.

### 👥 Who it's for

- Companies and consultants that sell to the EU public sector (bid / tender teams).
- GovTech, GovCon, and public-procurement intelligence products needing clean source data.
- Market researchers tracking public spend by sector, country, or buyer.
- Sales teams building territory lists of active buyers and recent awards.
- Data teams that want one tidy schema instead of an eForms parsing project.

### 🗂️ What data you get

One row per notice:

| Field | Type | Description |
|---|---|---|
| `publicationNumber` | string | TED notice id (e.g. `445505-2026`) |
| `title` | string | Notice title, English preferred (falls back to the original language) |
| `buyerName`, `buyerCountry`, `buyerCountryCode` | string | Buyer resolved to English text + readable country + ISO3 code |
| `noticeType`, `noticeTypeLabel` | string | Raw eForms code and its readable label (Contract notice, Contract award notice...) |
| `isAward` | boolean | `true` for awards/results, `false` for open opportunities |
| `formType`, `formTypeLabel` | string | High-level stage (Call for competition, Result...) |
| `procedureType`, `procedureTypeLabel` | string | Raw code and label (Open procedure, Restricted procedure...) |
| `contractNature` | string | Works / Supplies / Services / Combined |
| `cpvMain`, `cpvCodes` | string / array | Primary CPV code and the full de-duplicated CPV list |
| `cpvDivision`, `cpvSector` | string | 2-digit CPV division and its human sector label |
| `totalValue` | number | Contract value coerced to a number where published |
| `publicationDate`, `deadline` | string | Publication date and submission deadline, normalized to `YYYY-MM-DD` |
| `placeCountries`, `placeNutsCodes` | array | Place(s) of performance split into country names and NUTS region codes |
| `noticeUrl`, `pdfUrl`, `xmlUrl` | string | English TED detail page, PDF, and machine-readable XML |

### Example tasks

- [Open EU IT and software tenders (CPV 72)](https://apify.com/webdata_labs/eu-tenders-api/examples/open-eu-it-and-software-tenders)
- [Construction tenders in Germany and Poland](https://apify.com/webdata_labs/eu-tenders-api/examples/construction-tenders-in-germany-and-poland)
- [Recent high-value contract awards across the EU](https://apify.com/webdata_labs/eu-tenders-api/examples/recent-eu-contract-awards)

### ⚙️ How to get EU tender data

1. Open the Actor on Apify.
2. Enter a `searchText` keyword, and/or a `cpv` sector (use `72*` for all IT, `45*` for all construction), and/or a `country`.
3. Choose a `noticeKind`: all notices, open opportunities, or awards.
4. Optionally limit by `publishedAfter` / `publishedBefore`.
5. Set how many notices to return (`maxItems`); results come newest first.
6. Run the Actor and open the `Tenders` dataset view.
7. Export JSON, CSV, Excel, HTML, or XML, or call the Actor through the Apify API.

Power users can pass a raw TED expert `query` to override the simple filters.

### 📥 Input

```json
{
  "searchText": "artificial intelligence",
  "cpv": "72*",
  "country": "DE, FR",
  "noticeKind": "opportunities",
  "publishedAfter": "2026-06-01",
  "maxItems": 200
}
````

### 📤 Output

```json
{
  "recordType": "tender",
  "publicationNumber": "445505-2026",
  "title": "Luxembourg - Computer-related services - Business Continuity Plan for EU Publications Office Managed Services",
  "buyerName": "European Commission, Publications Office",
  "buyerCountry": "Luxembourg",
  "noticeTypeLabel": "Contract notice",
  "isAward": false,
  "procedureTypeLabel": "Open procedure",
  "contractNature": "Services",
  "cpvMain": "72000000",
  "cpvSector": "IT services: consulting, software, internet & support",
  "totalValue": 4570000,
  "publicationDate": "2026-06-29",
  "deadline": "2026-07-29",
  "placeCountries": ["Luxembourg"],
  "noticeUrl": "https://ted.europa.eu/en/notice/-/detail/445505-2026"
}
```

### 💵 How much does it cost?

The launch price is about `$3.00 / 1,000 notices`, tier-discounted for higher Apify plans. One notice row is one charged result. A run returning 200 notices is 200 results. Error rows are not charged.

### 🔁 Run it on the Apify platform

Schedule a daily or weekly run per sector/country to keep a fresh tender feed, call it from the Apify API, export to CSV/JSON/Excel, or connect the dataset to Make, Zapier, webhooks, a warehouse, a CRM, or an LLM pipeline.

### ⚠️ Limits and caveats

- This Actor reads the **official public TED API**. It is not affiliated with the EU, the Publications Office, or any contracting authority.
- **Field coverage varies by notice.** Not every notice publishes a contract value or a deadline (awards often have no deadline; prior-information notices often have no value). Missing fields are returned as `null` rather than guessed.
- **English-first, not English-only.** TED notices are multilingual; where no English value exists, the original-language value is returned so the row is never empty.
- **`cpvSector` is the CPV division label** for the notice's primary CPV; the full `cpvCodes` list is always preserved for precise filtering.
- Results are ordered newest first by publication date and reflect TED's publishing cadence.

### 🧩 Related Actors

- SEC Financials API - normalized income, balance sheet, and cash flow from EDGAR.
- Clinical Trials API - normalized ClinicalTrials.gov records.
- US Building Permits API - normalized construction permits and contractor leads.
- ATS Jobs Scraper - normalized Greenhouse / Lever / Ashby job postings.

### ❓ FAQ

#### What is TED?

TED (Tenders Electronic Daily) is the EU's official journal supplement for public procurement. Every tender above the EU thresholds is published there. This Actor reads TED's official v3 search API and normalizes it.

#### Can I get only tenders I can still bid on?

Yes. Set `noticeKind` to `opportunities` to get open contract notices, or `awards` to get results. Every row also carries an `isAward` boolean.

#### How do I target my sector?

Use `cpv` with a wildcard: `72*` for IT services, `48*` for software, `45*` for construction work, `85*` for health, `79*` for business/legal/consulting services. Combine several comma-separated. The output `cpvSector` shows the human label.

#### Which countries are covered?

All EU member states plus EEA and candidate countries that publish to TED. Filter with `country` using 2-letter (`DE`, `FR`, `PL`) or TED 3-letter (`DEU`, `FRA`, `POL`) codes.

#### Why are some fields null?

Because that notice does not publish that field. Awards frequently have no deadline; planning notices frequently have no value. Nothing is guessed.

#### Does it need a proxy?

No. The TED API is a public official endpoint served reliably to datacenter IPs. Enable Apify Proxy only for very large batches.

### 🛠️ Support

For bugs, missing fields, or a feature request, open an Actor issue with the run URL, the filters used, and the field or behavior you expected.

### ⭐ Rate this Actor

If this Actor saved you time, please take 30 seconds to leave a review on the **Reviews** tab of [EU Tenders API - Normalized TED Public Procurement](https://apify.com/webdata_labs/eu-tenders-api) - reviews are the main trust signal other users see, and they directly decide which features get built next. If something is broken or a field is missing, please [open an issue](https://apify.com/webdata_labs/eu-tenders-api/issues) first - we typically respond within a day and would love the chance to fix it before you rate.

# Actor input Schema

## `searchText` (type: `string`):

Full-text search across the notice (title, description). Example: 'artificial intelligence', 'road construction', 'cloud hosting'.

## `cpv` (type: `string`):

Common Procurement Vocabulary code(s), comma-separated. Use a trailing \* for a whole sector (e.g. '72\*' = all IT services, '45\*' = all construction work, '85\*' = health). Combined with OR.

## `country` (type: `string`):

Limit to buyers in these countries. Accepts 2-letter (DE, FR, PL) or TED 3-letter (DEU, FRA) codes, comma-separated. Leave empty for all of the EU/EEA.

## `noticeKind` (type: `string`):

Filter by stage: open opportunities you can still bid on, awards (who won what), or all notice types.

## `publishedAfter` (type: `string`):

Only notices published on/after this date (YYYY-MM-DD). Defaults to 2026-01-01 when no other filter is set.

## `publishedBefore` (type: `string`):

Only notices published on/before this date (YYYY-MM-DD).

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

Optional raw TED expert query. If set, it overrides all the simple filters above. Example: 'classification-cpv=72\* AND buyer-country=DEU AND publication-date>=20260601'.

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

Maximum number of notices to return, newest first.

## `includeRaw` (type: `boolean`):

Attach the original unnormalized TED eForms record under 'raw' for auditing. Off by default to keep rows clean.

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

Optional. The TED API is a public official endpoint and works without a proxy; enable Apify Proxy only for very large batches.

## Actor input object example

```json
{
  "searchText": "artificial intelligence",
  "noticeKind": "all",
  "publishedAfter": "2026-06-01",
  "maxItems": 200,
  "includeRaw": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `OUTPUT` (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 = {
    "searchText": "artificial intelligence"
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdata_labs/eu-tenders-api").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 = { "searchText": "artificial intelligence" }

# Run the Actor and wait for it to finish
run = client.actor("webdata_labs/eu-tenders-api").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 '{
  "searchText": "artificial intelligence"
}' |
apify call webdata_labs/eu-tenders-api --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EU Tenders API - Normalized TED Public Procurement",
        "description": "[💵 $3.00 / 1K] One clean English schema for EU public tenders from TED. Buyer, CPV sector, value, deadline, country, award status - normalized from raw 24-language eForms, not a raw notice dump.",
        "version": "0.1",
        "x-build-id": "CzcAPeXRuuHh1peWv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/webdata_labs~eu-tenders-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-webdata_labs-eu-tenders-api",
                "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/webdata_labs~eu-tenders-api/runs": {
            "post": {
                "operationId": "runs-sync-webdata_labs-eu-tenders-api",
                "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/webdata_labs~eu-tenders-api/run-sync": {
            "post": {
                "operationId": "run-sync-webdata_labs-eu-tenders-api",
                "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": {
                    "searchText": {
                        "title": "Keyword search",
                        "type": "string",
                        "description": "Full-text search across the notice (title, description). Example: 'artificial intelligence', 'road construction', 'cloud hosting'."
                    },
                    "cpv": {
                        "title": "CPV code(s)",
                        "type": "string",
                        "description": "Common Procurement Vocabulary code(s), comma-separated. Use a trailing * for a whole sector (e.g. '72*' = all IT services, '45*' = all construction work, '85*' = health). Combined with OR."
                    },
                    "country": {
                        "title": "Buyer country",
                        "type": "string",
                        "description": "Limit to buyers in these countries. Accepts 2-letter (DE, FR, PL) or TED 3-letter (DEU, FRA) codes, comma-separated. Leave empty for all of the EU/EEA."
                    },
                    "noticeKind": {
                        "title": "Notice kind",
                        "enum": [
                            "all",
                            "opportunities",
                            "awards"
                        ],
                        "type": "string",
                        "description": "Filter by stage: open opportunities you can still bid on, awards (who won what), or all notice types.",
                        "default": "all"
                    },
                    "publishedAfter": {
                        "title": "Published after",
                        "type": "string",
                        "description": "Only notices published on/after this date (YYYY-MM-DD). Defaults to 2026-01-01 when no other filter is set."
                    },
                    "publishedBefore": {
                        "title": "Published before",
                        "type": "string",
                        "description": "Only notices published on/before this date (YYYY-MM-DD)."
                    },
                    "query": {
                        "title": "Expert query (advanced)",
                        "type": "string",
                        "description": "Optional raw TED expert query. If set, it overrides all the simple filters above. Example: 'classification-cpv=72* AND buyer-country=DEU AND publication-date>=20260601'."
                    },
                    "maxItems": {
                        "title": "Max notices",
                        "minimum": 1,
                        "maximum": 20000,
                        "type": "integer",
                        "description": "Maximum number of notices to return, newest first.",
                        "default": 200
                    },
                    "includeRaw": {
                        "title": "Include raw notice",
                        "type": "boolean",
                        "description": "Attach the original unnormalized TED eForms record under 'raw' for auditing. Off by default to keep rows clean.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Optional. The TED API is a public official endpoint and works without a proxy; enable Apify Proxy only for very large batches.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
