# Mercado Livre Brasil BOOST Scraper 🇧🇷 + Analytics (Português) (`mia_miah/mercado-livre-market-scanner`) Actor

Extraia resultados de busca do Mercado Livre Brasil com dados limpos e tipados — preços, parcelamento, marcadores de anúncio patrocinado, envio Full, vendedores — além de resumo instantâneo do mercado, posicionamento de SKU, ranking e alertas de queda de preço.

- **URL**: https://apify.com/mia\_miah/mercado-livre-market-scanner.md
- **Developed by:** [Mia Miah](https://apify.com/mia_miah) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 products

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

## Mercado Livre Brasil BOOST Scraper 🇧🇷 + Analytics (Português)

![Mercado Livre](https://img.shields.io/badge/Mercado%20Livre-Brasil-FFE600?style=for-the-badge&labelColor=2D3277)
![Dados tipados](https://img.shields.io/badge/dados-tipados-3483FA?style=for-the-badge)
![Análise incluída](https://img.shields.io/badge/análise%20de%20mercado-incluída-00A650?style=for-the-badge)

**Extraia buscas do Mercado Livre com dados prontos para usar — e receba a análise do mercado junto, sem custo extra.**

Preço numérico, parcelas estruturadas, frete FULL como `true`/`false`. Mais: distribuição de preços do nicho, posição do seu produto no ranking e alertas quando um concorrente baixa o preço.

---

### 📦 O que cada execução entrega

| | Registro | O que é |
|---|---|---|
| 🛒 | **`product`** | Uma linha por anúncio, com **posição no ranking**, preço, desconto, parcelas, frete, vendedor, avaliação e **quantidade vendida** |
| 📊 | **`market_summary`** | Raio-X do nicho: mediana e faixa de preços, % patrocinados, % FULL, concentração de vendedores, **categoria da busca** |
| 🎯 | **`positioning_report`** | Onde **seu SKU** está: posição, percentil de preço, comparação com os líderes |
| 🔄 | **`delta_report`** | O que mudou desde a última execução: quedas de preço, novos concorrentes, saídas |
| 🚨 | **`alert`** | Disparos automáticos → dataset **e** webhook (n8n, Make, Slack) |

> ### 📍 Onde encontrar cada coisa
>
> | Local | Conteúdo |
> |---|---|
> | **Dataset padrão** (o que abre após a execução) | só os **produtos**, em tabela limpa |
> | **Dataset `ml-scanner-reports`** (aba *Storage → Datasets*) | análise de mercado, posicionamento, deltas e alertas |
>
> Separados de propósito: assim cada tabela mostra as colunas certas, sem campos vazios.
> O dataset de relatórios **se mantém entre execuções**, virando um histórico das suas
> análises e alertas ao longo do tempo.

---

### ⚡ Por que este e não outro

| Scrapers comuns | **Este actor** |
|---|---|
| `"novoPreco": "173,76"` | `"price": { "amount": 173.76 }` |
| `"precoDiscount": "9% OFF"` | `"discountPercent": 9` |
| `"installments": "5x 34,75 sem juros"` | `{ "count": 5, "amount": 34.75, "interestFree": true }` |
| `"enviadoDe": "Enviado pelo {vpp_full_icon}"` 🐛 | `"shipping": { "full": true, "free": true }` |
| ❌ Sem posição no ranking | ✅ `"position": 7` + flag de patrocinado |
| ❌ Só uma lista de linhas | ✅ Lista **+ análise + posicionamento + alertas** |

---

### 🛒 Exemplo — produto

```json
{
    "type": "product",
    "position": 7,
    "sku": "MLB4290861023",
    "title": "Tênis De Corrida Masculino Leve Confortável",
    "url": "https://produto.mercadolivre.com.br/MLB-4290861023-...",
    "imageUrl": "https://http2.mlstatic.com/D_Q_NP_2X_808882-CBT975097.webp",
    "price": { "amount": 173.76, "currency": "BRL" },
    "originalPrice": { "amount": 190.97, "currency": "BRL" },
    "discountPercent": 9,
    "installments": { "count": 5, "amount": 34.75, "interestFree": true },
    "shipping": { "free": true, "full": true, "arrivesTomorrow": false },
    "isSponsored": false,
    "isInternational": false,
    "shippedFrom": null,
    "highlight": "MAIS VENDIDO",
    "seller": { "name": "NIKE", "officialStore": true },
    "rating": { "stars": 4.6, "count": 2059 },
    "salesCount": 1000,
    "totalResults": 59629,
    "scrapedAt": "2026-07-25T07:49:03.229Z"
}
````

> 💡 **`salesCount`** usa as faixas do próprio Mercado Livre: `1000` significa **mais de 1.000 vendidos**. Ótimo para separar quem realmente vende de quem apenas aparece bem posicionado.

> 🖼️ **`imageUrl`** é o link direto do CDN do Mercado Livre, exatamente como a página serve — nenhuma imagem é baixada, reprocessada ou re-hospedada.

> 💡 **Sobre `seller.name`:** em anúncios de loja oficial vem o nome da marca (`NIKE`, `PUMA`, `ON RUNNING`); em vendedores comuns, o nome da loja. Alguns anúncios chegam com `null` — o Mercado Livre nem sempre exibe o vendedor na busca, e a frequência varia por categoria.

### 📊 Exemplo — análise de mercado

```json
{
    "type": "market_summary",
    "keyword": "tenis de corrida masculino",
    "itemsAnalyzed": 30,
    "totalResultsDeclared": 59629,
    "price": { "min": 46.22, "q1": 99.92, "median": 191.88, "q3": 238, "max": 854.99, "avg": 201.69 },
    "sharePct": { "sponsored": 36.7, "fullShipping": 33.3, "freeShipping": 96.7, "officialStores": 43.3 },
    "sellers": { "unique": 17, "top5SharePct": 43.3 },
    "avgRatingStars": 4.63
}
```

> 💡 **Leitura rápida:** mediana de **R$ 191,88**, mercado pulverizado (17 vendedores, top-5 com 43%) e **36,7% dos resultados são anúncios pagos** — ou seja, é caro brigar por essa palavra-chave.

> 📁 **Categoria e domínio da busca** (`searchCategoryId`, `searchDomainId`, `searchCategoryPath`) ficam aqui, no resumo — e não em cada produto, porque uma mesma busca pode devolver anúncios de categorias diferentes.

### 🎯 Exemplo — seu posicionamento

```json
{
    "type": "positioning_report",
    "mySku": "MLB6530106550",
    "position": 2,
    "myPrice": { "amount": 145.4, "currency": "BRL" },
    "pricePercentile": 45,
    "priceVsMedianPct": -1.6,
    "iAmFull": false,
    "marketFullSharePct": 70
}
```

> 💡 Você está em **2º lugar**, com preço **1,6% abaixo da mediana** — mas **70% dos concorrentes usam FULL** e você não. Aí está a alavanca.

### 🚨 Exemplo — alerta

```json
{
    "type": "alert",
    "alertType": "PRICE_BELOW_THRESHOLD",
    "sku": "MLB4111260625",
    "title": "Tenis Academia Masculino Corrida Musculação",
    "price": 58.41,
    "threshold": 80,
    "url": "https://produto.mercadolivre.com.br/MLB-4111260625-..."
}
```

**Tipos de alerta:** 💰 preço abaixo do seu limite · 📉 concorrente baixou preço · 🆕 novo no top 10 · 📊 sua posição mudou · ⚠️ seu anúncio saiu da busca

***

### 🎬 Como usar

| Passo | Ação |
|---|---|
| **1** | Escreva suas **palavras-chave** (uma análise por palavra-chave) |
| **2** | *Opcional:* informe **seu SKU** (`MLB4290861023`) → relatório de posicionamento |
| **3** | *Opcional:* defina **alerta de preço** e **URL de webhook** |
| **4** | Agende em **Schedules** → o histórico e os alertas se constroem sozinhos |
| **5** | Exporte em **JSON / CSV / Excel** ou consuma pela API |

```json
{
    "keywords": ["tenis de corrida masculino"],
    "maxItemsPerKeyword": 100,
    "mySku": "MLB4290861023",
    "priceAlertBelow": 120,
    "alertWebhookUrl": "https://hooks.n8n.cloud/webhook/abc"
}
```

> ℹ️ **Quantos produtos esperar:** o Mercado Livre para de servir anúncios novos depois de
> cerca de duas páginas, então cada palavra-chave rende **até ~85 produtos únicos** — mesmo
> que a busca declare dezenas de milhares de resultados. A execução detecta isso e encerra
> sozinha. Para cobrir mais mercado, use **mais palavras-chave** (inclusive variações),
> não um número maior de itens.

***

### 💡 Para que serve

- 📈 **Monitorar preços** — alertas no seu Slack quando o concorrente baixa
- 🎯 **Acompanhar seu ranking** — saiba quando cai de posição, e por quê
- 🔎 **Pesquisar um nicho** — preço médio e concorrência antes de investir
- 🤖 **Alimentar IA e automações** — JSON limpo, pronto para MCP e n8n
- 🚨 **Flagrar desconto falso** — o histórico revela o "de R$ 190" que nunca existiu

***

### 📬 Suporte

Dúvidas, ou precisa de um campo que não existe? Abra uma **Issue** na aba do actor — respondo rápido, e o roadmap é guiado por quem usa.

***

<sub>Coleta apenas **dados públicos** das páginas de busca do Mercado Livre — sem login, sem dados pessoais. Você é responsável por usar os dados conforme a legislação aplicável e os termos do Mercado Livre.</sub>

<sub>*English: typed Mercado Livre Brasil search scraper with built-in market analytics, SKU rank tracking and price alerts. Docs in Portuguese; JSON field names in English.*</sub>

# Actor input Schema

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

Keywords to scan on Mercado Livre Brasil (one market report per keyword). Ex: 'tenis de corrida masculino'.

## `maxItemsPerKeyword` (type: `integer`):

How many search results to collect per keyword. Mercado Livre stops serving new listings after ~2 pages, so a search yields at most ~85 unique products no matter how many you ask for — the run simply stops early when nothing new comes back. The minimum is 50 because a single page already costs the same whether you take 10 or 60.

## `sortBy` (type: `string`):

Mirror of Mercado Livre's own sort options. 'relevance' is what buyers see (best for rank tracking).

## `mySku` (type: `string`):

Optional. Your Mercado Livre item ID (e.g. MLB4290861023). When set, the run also outputs a positioning report: your rank, price percentile and comparison vs. category leaders.

## `priceAlertBelow` (type: `integer`):

Optional absolute threshold in BRL. Fires an alert (dataset + webhook) if any product in the results is priced below this value.

## `enableDelta` (type: `boolean`):

Compares this run with the previous run of the same keyword (stored per user) and outputs what changed: price drops, new competitors in top 10, rank shifts, disappeared items. Becomes active from the 2nd run onwards.

## `alertWebhookUrl` (type: `string`):

Optional. Alerts are POSTed as JSON to this URL (n8n, Make, your API...). Slack incoming webhooks are detected automatically and receive a formatted message with clickable products instead of raw JSON.

## `failOnEmpty` (type: `boolean`):

Off by default: a keyword with no results is a valid outcome, not an error. Turn it ON for scheduled monitoring — the run then ends as FAILED when zero products are collected, so Apify's failure notifications actually fire if Mercado Livre changes its layout or blocks the request.

## `saveSnapshotOnEmpty` (type: `boolean`):

If a page parses to zero products (layout change / blocking), stores the raw HTML in the key-value store for inspection.

## Actor input object example

```json
{
  "keywords": [
    "tenis de corrida masculino"
  ],
  "maxItemsPerKeyword": 100,
  "sortBy": "relevance",
  "enableDelta": true,
  "failOnEmpty": false,
  "saveSnapshotOnEmpty": true
}
```

# 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 = {
    "keywords": [
        "tenis de corrida masculino"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mia_miah/mercado-livre-market-scanner").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 = { "keywords": ["tenis de corrida masculino"] }

# Run the Actor and wait for it to finish
run = client.actor("mia_miah/mercado-livre-market-scanner").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 '{
  "keywords": [
    "tenis de corrida masculino"
  ]
}' |
apify call mia_miah/mercado-livre-market-scanner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=mia_miah/mercado-livre-market-scanner",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mercado Livre Brasil BOOST Scraper 🇧🇷 + Analytics (Português)",
        "description": "Extraia resultados de busca do Mercado Livre Brasil com dados limpos e tipados — preços, parcelamento, marcadores de anúncio patrocinado, envio Full, vendedores — além de resumo instantâneo do mercado, posicionamento de SKU, ranking e alertas de queda de preço.",
        "version": "0.1",
        "x-build-id": "FZOcRdj3KvrmZiEA6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mia_miah~mercado-livre-market-scanner/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mia_miah-mercado-livre-market-scanner",
                "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/mia_miah~mercado-livre-market-scanner/runs": {
            "post": {
                "operationId": "runs-sync-mia_miah-mercado-livre-market-scanner",
                "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/mia_miah~mercado-livre-market-scanner/run-sync": {
            "post": {
                "operationId": "run-sync-mia_miah-mercado-livre-market-scanner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "🔍 Palavras-chave / Keywords",
                        "type": "array",
                        "description": "Keywords to scan on Mercado Livre Brasil (one market report per keyword). Ex: 'tenis de corrida masculino'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItemsPerKeyword": {
                        "title": "📦 Max products per keyword",
                        "minimum": 50,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many search results to collect per keyword. Mercado Livre stops serving new listings after ~2 pages, so a search yields at most ~85 unique products no matter how many you ask for — the run simply stops early when nothing new comes back. The minimum is 50 because a single page already costs the same whether you take 10 or 60.",
                        "default": 100
                    },
                    "sortBy": {
                        "title": "↕️ Sort order",
                        "enum": [
                            "relevance",
                            "price_asc",
                            "price_desc"
                        ],
                        "type": "string",
                        "description": "Mirror of Mercado Livre's own sort options. 'relevance' is what buyers see (best for rank tracking).",
                        "default": "relevance"
                    },
                    "mySku": {
                        "title": "🎯 My SKU (positioning mode)",
                        "type": "string",
                        "description": "Optional. Your Mercado Livre item ID (e.g. MLB4290861023). When set, the run also outputs a positioning report: your rank, price percentile and comparison vs. category leaders."
                    },
                    "priceAlertBelow": {
                        "title": "🚨 Alert if any competitor price drops below (R$)",
                        "type": "integer",
                        "description": "Optional absolute threshold in BRL. Fires an alert (dataset + webhook) if any product in the results is priced below this value."
                    },
                    "enableDelta": {
                        "title": "🔁 Enable delta & history mode",
                        "type": "boolean",
                        "description": "Compares this run with the previous run of the same keyword (stored per user) and outputs what changed: price drops, new competitors in top 10, rank shifts, disappeared items. Becomes active from the 2nd run onwards.",
                        "default": true
                    },
                    "alertWebhookUrl": {
                        "title": "📣 Webhook URL for alerts",
                        "type": "string",
                        "description": "Optional. Alerts are POSTed as JSON to this URL (n8n, Make, your API...). Slack incoming webhooks are detected automatically and receive a formatted message with clickable products instead of raw JSON."
                    },
                    "failOnEmpty": {
                        "title": "❗ Fail the run when nothing is collected",
                        "type": "boolean",
                        "description": "Off by default: a keyword with no results is a valid outcome, not an error. Turn it ON for scheduled monitoring — the run then ends as FAILED when zero products are collected, so Apify's failure notifications actually fire if Mercado Livre changes its layout or blocks the request.",
                        "default": false
                    },
                    "saveSnapshotOnEmpty": {
                        "title": "🩺 Save debug snapshot when page yields 0 items",
                        "type": "boolean",
                        "description": "If a page parses to zero products (layout change / blocking), stores the raw HTML in the key-value store for inspection.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
