# Licitaciones Feed — Buenos Aires Government Tenders Scraper (`mfapitools/licitaciones-feed`) Actor

CABA-only public procurement / licitaciones scraper over Buenos Aires Compras (BAC) open-data CSV. Two modes: query (search with filters) and sync (return new tenders since last run). CC-BY-4.0 licensed data. Honest about ~7-17 week data lag.

- **URL**: https://apify.com/mfapitools/licitaciones-feed.md
- **Developed by:** [Mariano Ferreras](https://apify.com/mfapitools) (community)
- **Categories:** Business, Automation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 tender matcheds

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Licitaciones Feed — Buenos Aires Public Procurement Tenders

> **Pay-per-event — zero monthly fee, zero subscription.** Search and monitor **public tenders Argentina** from **Buenos Aires Compras** (BAC) — the official procurement platform for the City of Buenos Aires. Track **licitaciones** and **compras publicas** with OCDS-structured data, keyword search, and sync mode for new tenders. Pay per matched tender. No rental. No idle fees.

---

### What it does

This actor provides a searchable feed of **licitaciones CABA** (Buenos Aires City government procurement tenders — not national) from the official **Buenos Aires Compras** open-data CSV. It serves two use cases in one actor: ad-hoc keyword search (`query` mode) and scheduled monitoring (`sync` mode) that detects only new tenders since your last run. Source data is CC-BY-4.0 licensed and published quarterly on the Buenos Aires government CDN — fully compliant, no proxy needed, no anti-bot risk. There are 2 other procurement actors covering Argentina: `karmic_mastodon/licitaciones-latam` (5 users, covers 6 LATAM countries including Argentina) and our own BAC-specific focus.

If you're looking for Buenos Aires City procurement data specifically, this gives you structured JSON with OCDS identifiers, procuring entities, amounts, deadlines, and tender categories at pay-per-event pricing. Integrate it with your supplier lead-gen pipeline for pennies per result.

**Source:** [Buenos Aires Compras OCDS](https://data.buenosaires.gob.ar/dataset/buenos-aires-compras) — flattened OCDS CSV at `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-economia-y-finanzas/buenos-aires-compras/bac_anual.csv`.

---

### How it works

Two modes:

#### `query` (default)

Downloads `bac_anual.csv` (~55MB), parses all records, applies your filters (keywords, buyer, amount range, status, date range), and returns matching tenders. Each returned tender triggers a `tender-matched` event charge.

#### `sync`

Downloads `bac_anual.csv`, compares it against stored KVS state (`licitaciones-feed-state`). If the file hasn't changed (same `Last-Modified` header), exits with "no new data". If changed, returns only the new OCIDs (tenders not seen in previous runs) and updates the KVS. Each new tender triggers a `tender-new` event charge.

---

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `mode` | enum | `"query"` | `"query"` or `"sync"` |
| `sources` | string[] | `["bac"]` | Currently only `"bac"` |
| `keywords` | string[] | `[]` | Case-insensitive OR match against title + description |
| `buyerName` | string | — | Substring match on procuring entity |
| `minAmount` | number | 0 | Minimum amount (ARS) |
| `maxAmount` | number | — | Maximum amount (ARS). 0 = no limit. |
| `status` | enum | `"active"` | `"active"`, `"complete"`, or `"all"` |
| `publishedAfter` | string | — | ISO date filter (published on or after) |
| `publishedBefore` | string | — | ISO date filter (published on or before) |
| `maxResults` | int | 50 | Max results (1–1000) |
| `slackWebhookUrl` | string (secret) | — | Slack incoming webhook URL. If set, sends a summary after runs with matched/new tenders. |
| `discordWebhookUrl` | string (secret) | — | Discord channel webhook URL. Same trigger as Slack. |
| `notifyOnEmpty` | boolean | `false` | Also notify when a run finds zero matched/new tenders |

---

### Output (per tender)

| Field | Type | Description |
|-------|------|-------------|
| `source` | string | Always `"bac"` |
| `ocid` | string | OCDS identifier (e.g. `ocds-bulbcf-10002-0321-LPU26-1-0`) |
| `processNumber` | string | BAC process number (e.g. `10002-0321-LPU26`) |
| `title` | string | Tender title |
| `description` | string | Tender description (may be empty) |
| `buyer` | string | Procuring entity name |
| `buyerId` | string\|null | Buyer government unit code |
| `amount` | number | Tender value in ARS (many BAC entries are 0.0) |
| `currency` | string | Currency (always `"ARS"`) |
| `status` | string | Mapped: `"active"`, `"complete"`, `"cancelled"` |
| `procurementMethod` | string\|null | e.g. `"LICITACION PUBLICA"` |
| `category` | string\|null | e.g. `"goods"`, `"services"` |
| `publishedAt` | ISO\|null | Tender period start date |
| `deadline` | ISO\|null | Tender period end date |
| `url` | string\|null | Pliego details URL on BAC portal |
| `sourceLastModified` | string | HTTP Last-Modified of the CSV |
| `ingestedAt` | ISO | When this record was processed |

---

### Pricing

This actor uses **pay-per-event** pricing. You are never charged for zero-result queries, unchanged sync runs, or failed downloads.

| Event | Price | When charged |
|-------|-------|-------------|
| `tender-matched` | **$0.007** | Per tender returned in `query` mode (no charge for 0 results) |
| `tender-new` | **$0.02** | Per new tender detected in `sync` mode |

At $0.007–0.02 per tender, a 500-tender query costs $3.50–10. Monitoring **licitaciones CABA** weekly costs well under $1/month even in active periods.

---

### Use cases

- **Procurement monitoring** — daily sync to catch new **licitaciones** and **compras publicas** in Buenos Aires
- **Market research** — keyword-search active tenders by category or buyer across **public tenders Argentina** (CABA)
- **Supplier lead gen** — find tenders matching specific goods/services; plug into your **proveedores del estado** pipeline
- **Agent / LLM tool** — plug into an MCP toolchain for **contrataciones del estado** and **government procurement Argentina** data

---

### Use with AI agents (MCP)

This actor is available as a tool for AI assistants via the Apify MCP server. Agents can call it to **search Buenos Aires public procurement tenders** directly — no Apify console needed, just a single function call.

#### MCP setup

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

#### Example agent prompts

- "Find all active IT services tenders from Buenos Aires Compras"
- "Check for new licitaciones in CABA since yesterday"
- "Pull all procurement tenders from the Buenos Aires health ministry over $1M ARS"

The actor returns structured OCDS JSON with the same fields shown above. Agentic workflows (Claude Code, Cursor, any MCP-compatible AI) can search **government procurement Argentina** tenders and match them against your product catalog in the same run.

***

### Slack / Discord alerts

Set `slackWebhookUrl` and/or `discordWebhookUrl` in the input and the actor will POST a compact summary at the end of any run that returns matched (`query`) or new (`sync`) tenders — no extra actor, no polling, no Apify task webhook config needed. This is the natural pairing for `sync` mode on a daily schedule: run it once a day and get pinged only when something new shows up.

**Behavior guarantees:**

- Leave both fields empty → zero change in behavior, no network calls.
- By default, a run with **zero** matched/new tenders sends **no** notification. Set `notifyOnEmpty: true` to also get a "nothing found" ping (useful to confirm your schedule is still alive).
- A webhook failure (bad URL, channel deleted, Slack/Discord outage) is logged as a warning and **never fails the run** — your dataset output and PPE charge are unaffected either way.
- Only up to 5 tenders are listed by name in the message body (the rest are summarized as "+N más" — the full list is always in the Apify dataset).
- Amount totals only count tenders with `amount > 0`, since BAC frequently reports `0.0` — the message says how many of the listed tenders had a real amount.

#### Setup: Slack

1. Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create New App** → **From scratch**.
2. Pick a name (e.g. "Licitaciones CABA") and your workspace.
3. In the app's sidebar, open **Incoming Webhooks** → toggle it **On**.
4. Click **Add New Webhook to Workspace**, pick the channel, **Allow**.
5. Copy the URL (looks like `https://hooks.slack.com/services/T000/B000/XXXXXXXX`) into this actor's `slackWebhookUrl` input field.

#### Setup: Discord

1. In Discord, open the target channel's **Settings → Integrations → Webhooks**.
2. Click **New Webhook**, name it, pick the channel, **Copy Webhook URL**.
3. Paste the URL (looks like `https://discord.com/api/webhooks/000000/XXXXXXXX`) into this actor's `discordWebhookUrl` input field.

Both fields are marked as secret inputs on the Apify platform (masked in the console UI and encrypted at rest) — but treat the URL like a password regardless: anyone who has it can post messages to your channel.

#### Example message (Slack, `sync` mode, 2 new tenders)

```
🆕 2 licitaciones nuevas — Buenos Aires Compras (BAC)
Monto total (1 con monto informado): $2.500.000 ARS

• Señales de Radio
• Mantenimiento Edilicio — $2.500.000 ARS
```

(Titles render as clickable links to the tender's `url` when one is available — shown as plain text here.)

#### Example message (Discord, `query` mode, 2 matched tenders)

```
🔎 2 licitaciones encontradas — Buenos Aires Compras (BAC)

┌─────────────────────────────────────────┐
│ Licitaciones encontradas                 │
│                                           │
│ Señales de Radio                         │
│ Monto no informado                       │
│                                           │
│ Mantenimiento Edilicio                   │
│ Ver pliego — $2.500.000 ARS              │
│                                           │
│ Monto total (1 con monto informado):     │
│ $2.500.000 ARS                           │
└─────────────────────────────────────────┘
```

(The box above represents a Discord embed — "Ver pliego" is a clickable link to the tender's `url`.)

***

### Limitations (v1)

- **Data lag (critical):** BAC publishes quarterly; the CSV on CDN may lag **7–17 weeks** behind live tenders. This is a *historical search / slow alert* product, not a real-time feed.
- **CABA only:** no national COMPR.AR (ToS conflict), no Mendoza (6.5 months stale).
- **Amounts often 0.0:** many BAC entries have `tender/value/amount = 0.0`. Filter with caution.
- **No award/contract data:** v1 covers only the tender stage (awards/contracts live in `bac.csv`, 2.5GB — v2 candidate).
- **Webhook alerts are best-effort:** Slack/Discord delivery never blocks or fails a run (see [Slack / Discord alerts](#slack--discord-alerts) above); the Apify dataset is always the source of truth.
- **No items flattening:** nested `tender/items` data is skipped in v1.

***

### Attribution

Data source: Buenos Aires Compras — `https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-economia-y-finanzas/buenos-aires-compras/bac_anual.csv`. Licensed under CC-BY-4.0. Government open data published by the City of Buenos Aires.

***

### Changelog

See [CHANGELOG.md](./CHANGELOG.md).

# Actor input Schema

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

query = search with filters now; sync = return tenders new/changed since last run

## `sources` (type: `array`):

Data sources. Currently only CABA Buenos Aires Compras (bac).

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

Case-insensitive OR match against title and description

## `buyerName` (type: `string`):

Substring match on procuring entity name

## `minAmount` (type: `number`):

Filter tenders with amount >= this value. Note: many BAC entries have amount=0.0

## `maxAmount` (type: `number`):

Filter tenders with amount <= this value. 0 means no upper limit.

## `status` (type: `string`):

active = planning/tender stage; complete = awarded/closed; all = both

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

ISO date. Only tenders published on or after this date.

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

ISO date. Only tenders published on or before this date.

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

Maximum number of tenders to return

## `slackWebhookUrl` (type: `string`):

Optional. Slack incoming webhook URL (Slack app → Incoming Webhooks). When set, sends a summary message after any run that finds new/matching tenders. Never share this URL — anyone with it can post to your channel.

## `discordWebhookUrl` (type: `string`):

Optional. Discord channel webhook URL (Channel Settings → Integrations → Webhooks). When set, sends a summary message after any run that finds new/matching tenders. Never share this URL — anyone with it can post to your channel.

## `notifyOnEmpty` (type: `boolean`):

Also send a Slack/Discord notification when a run finds zero new/matching tenders. Off by default (no notification on empty results).

## Actor input object example

```json
{
  "mode": "query",
  "sources": [
    "bac"
  ],
  "keywords": [],
  "minAmount": 0,
  "status": "active",
  "maxResults": 50,
  "notifyOnEmpty": false
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("mfapitools/licitaciones-feed").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("mfapitools/licitaciones-feed").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 '{}' |
apify call mfapitools/licitaciones-feed --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Licitaciones Feed — Buenos Aires Government Tenders Scraper",
        "description": "CABA-only public procurement / licitaciones scraper over Buenos Aires Compras (BAC) open-data CSV. Two modes: query (search with filters) and sync (return new tenders since last run). CC-BY-4.0 licensed data. Honest about ~7-17 week data lag.",
        "version": "0.1",
        "x-build-id": "ludireIPUtwIj1T7r"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mfapitools~licitaciones-feed/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mfapitools-licitaciones-feed",
                "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/mfapitools~licitaciones-feed/runs": {
            "post": {
                "operationId": "runs-sync-mfapitools-licitaciones-feed",
                "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/mfapitools~licitaciones-feed/run-sync": {
            "post": {
                "operationId": "run-sync-mfapitools-licitaciones-feed",
                "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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "query",
                            "sync"
                        ],
                        "type": "string",
                        "description": "query = search with filters now; sync = return tenders new/changed since last run",
                        "default": "query"
                    },
                    "sources": {
                        "title": "Sources",
                        "type": "array",
                        "description": "Data sources. Currently only CABA Buenos Aires Compras (bac).",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "bac"
                        ]
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Case-insensitive OR match against title and description",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "buyerName": {
                        "title": "Buyer Name",
                        "type": "string",
                        "description": "Substring match on procuring entity name"
                    },
                    "minAmount": {
                        "title": "Minimum Amount (ARS)",
                        "type": "number",
                        "description": "Filter tenders with amount >= this value. Note: many BAC entries have amount=0.0",
                        "default": 0
                    },
                    "maxAmount": {
                        "title": "Maximum Amount (ARS)",
                        "type": "number",
                        "description": "Filter tenders with amount <= this value. 0 means no upper limit."
                    },
                    "status": {
                        "title": "Tender Status",
                        "enum": [
                            "active",
                            "complete",
                            "all"
                        ],
                        "type": "string",
                        "description": "active = planning/tender stage; complete = awarded/closed; all = both",
                        "default": "active"
                    },
                    "publishedAfter": {
                        "title": "Published After",
                        "type": "string",
                        "description": "ISO date. Only tenders published on or after this date."
                    },
                    "publishedBefore": {
                        "title": "Published Before",
                        "type": "string",
                        "description": "ISO date. Only tenders published on or before this date."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of tenders to return",
                        "default": 50
                    },
                    "slackWebhookUrl": {
                        "title": "Slack Webhook URL",
                        "type": "string",
                        "description": "Optional. Slack incoming webhook URL (Slack app → Incoming Webhooks). When set, sends a summary message after any run that finds new/matching tenders. Never share this URL — anyone with it can post to your channel."
                    },
                    "discordWebhookUrl": {
                        "title": "Discord Webhook URL",
                        "type": "string",
                        "description": "Optional. Discord channel webhook URL (Channel Settings → Integrations → Webhooks). When set, sends a summary message after any run that finds new/matching tenders. Never share this URL — anyone with it can post to your channel."
                    },
                    "notifyOnEmpty": {
                        "title": "Notify on Empty Results",
                        "type": "boolean",
                        "description": "Also send a Slack/Discord notification when a run finds zero new/matching tenders. Off by default (no notification on empty results).",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
