# Monitor ESG BR por CNPJ — Lista Suja + IBAMA (`paulovitor18/esg-delta-monitor-br`) Actor

Monitora risco socioambiental por CNPJ: cruza a Lista Suja do trabalho escravo (MTE) com autos e embargos ambientais do IBAMA e reporta o que mudou desde a ultima execucao. Ideal para due diligence continua de fornecedores. Pague por resultado.

- **URL**: https://apify.com/paulovitor18/esg-delta-monitor-br.md
- **Developed by:** [MoreLock](https://apify.com/paulovitor18) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

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

## Monitor ESG BR por CNPJ — Lista Suja + IBAMA (delta entre execuções)

Você passa uma lista de CNPJs de fornecedores e este Actor diz, por empresa, se há risco socioambiental — e o que mudou desde a última vez que rodou. Ele cruza a **Lista Suja do trabalho escravo** (o Cadastro de Empregadores do MTE) com os **autos de infração e embargos ambientais do IBAMA**. Se um fornecedor entrou na lista, levou um novo auto ou teve um embargo, você fica sabendo na execução seguinte.

A ideia é rodar agendado. A cada execução você recebe duas coisas: o retrato de risco atual de cada CNPJ e o diff em relação ao estado anterior. É assim que a lei europeia CSDDD cobra a due diligence de fornecedores — monitoramento contínuo, não uma foto tirada uma vez.

> 🇺🇸 English version → [Brazil ESG Supply-Chain Monitor](https://apify.com/paulovitor18/brazil-esg-supply-chain-monitor)

### Visão geral

São duas fontes públicas oficiais consolidadas num registro de risco por CNPJ.

A **Lista Suja (MTE)** é o cadastro de empregadores flagrados submetendo trabalhadores a condições análogas à escravidão. Sai duas vezes por ano (Portaria Interministerial MTE/MDHC/MIR nº 18/2024). Constar nela é o sinal mais grave que este Actor reporta.

Os **autos de infração do IBAMA** vêm dos dados abertos do órgão, atualizados diariamente, junto com os termos de embargo ligados a cada auto. Cobrem flora, fauna, poluição e outras violações, com valor da multa, município, gravidade e situação (vigente ou cancelado).

O casamento é sempre por documento (CNPJ/CPF), nunca por nome — então nunca cola uma empresa homônima. Se quiser, ele também casa pela raiz de 8 dígitos do CNPJ, para pegar filiais e outras empresas do mesmo grupo.

### Funcionalidades

- **Delta entre execuções.** A primeira run grava o baseline; as seguintes reportam só o que mudou (`ADDED`, `REMOVED`, `MODIFIED`). Duas execuções sem novidade devolvem um delta vazio, sem repetir tudo de novo.
- **Nível de risco composto:** `CRITICAL` para Lista Suja, `HIGH` para embargo ambiental ativo, `MEDIUM` para auto vigente, `LOW` só com autos cancelados, `NONE` para quem está limpo.
- **Retrato atual e eventos de mudança** saem no mesmo dataset (`record_type: snapshot` ou `change`).
- **Watchlist de qualquer tamanho**, com ou sem pontuação nos documentos.
- **Documento inválido não é cobrado** (ver Preço).

### Exemplo de entrada

```json
{
  "watchCnpjs": ["03.246.366/0001-33", "10.199.645/0001-59"],
  "mode": "auto",
  "includeListaSuja": true,
  "includeIbama": true,
  "matchByRoot": false,
  "stateStoreName": "esg-monitor-state"
}
````

### Exemplo de saída (dado real)

Retrato de um CNPJ com auto ambiental e embargo:

```json
{
  "record_type": "snapshot",
  "cnpj": "03.246.366/0001-33",
  "tipo_pessoa": "PJ",
  "nome": "AGROPECUARIA VERSCHOOR LTDA",
  "risk_level": "HIGH",
  "on_lista_suja": false,
  "ibama": {
    "total_autos": 1,
    "autos_vigentes": 1,
    "autos_cancelados": 0,
    "embargos_ativos": 1,
    "valor_total_multas": 15000,
    "autos": [
      {
        "num_auto": "QRNYPP1Q",
        "cancelado": false,
        "tipo_infracao": "Flora",
        "valor": 15000,
        "municipio": "PALMEIRA",
        "uf": "PR",
        "termo_embargo": "7NUXQG58",
        "data_auto": "2026-01-07 14:04:19"
      }
    ]
  },
  "screened_at": "2026-07-09T18:00:00.000Z"
}
```

Um evento de mudança, quando o CNPJ entra na Lista Suja entre uma execução e a seguinte:

```json
{
  "record_type": "change",
  "cnpj": "03.246.366/0001-33",
  "source": "lista_suja",
  "change_type": "ADDED",
  "record_key": "03246366000133",
  "fields": { "empregador": "AGROPECUARIA VERSCHOOR LTDA", "uf": "PR", "data_inclusao": "06/04/2026" },
  "detected_at": "2026-07-09T18:00:00.000Z"
}
```

### Parâmetros

| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
| `watchCnpjs` | array | 2 CNPJs de exemplo | CNPJs/CPFs a vigiar (com ou sem pontuação). |
| `mode` | string | `auto` | `auto` = baseline na 1ª run, delta nas seguintes. `baseline` = re-emite tudo e regrava. |
| `includeListaSuja` | boolean | `true` | Consultar a Lista Suja do trabalho escravo (MTE). |
| `includeIbama` | boolean | `true` | Varrer autos + embargos do IBAMA (baixa ~120 MB/run). |
| `matchByRoot` | boolean | `false` | Casar autos do IBAMA também pela raiz de 8 dígitos do CNPJ. |
| `stateStoreName` | string | `esg-monitor-state` | Key-value store nomeado do baseline. Use um nome distinto por watchlist. |

### Dicas

- Agende o Actor pelos Schedules da Apify. Diário acompanha o IBAMA de perto (ele muda todo dia); semanal costuma bastar para carteiras menos críticas.
- Dê um `stateStoreName` diferente para cada watchlist ou cliente, para não misturar o histórico de delta de um monitoramento com o de outro.
- A Lista Suja só muda em abril e outubro. Novidade nela é rara, mas quando acontece é grave.
- Ligue o `matchByRoot` quando quiser enxergar o grupo econômico inteiro por trás de um CNPJ, não só a filial.

### Casos de uso

- Due diligence contínua de fornecedores, para times de compliance ESG e de compras.
- Baseline no onboarding: rode uma vez antes de fechar contrato com um fornecedor novo.
- Acompanhamento de carteira de crédito ou seguro pela exposição socioambiental.
- Auditoria de cadeia de suprimentos para exportadores que respondem à due diligence europeia (CSDDD).
- Alerta reputacional quando um fornecedor-chave leva um embargo ou entra na lista.
- Camada socioambiental somada ao seu cadastro de empresas (KYB).

### Perguntas frequentes

**As fontes são oficiais?** São. A Lista Suja é o Cadastro de Empregadores do Ministério do Trabalho e Emprego; o IBAMA vem da plataforma de dados abertos do próprio órgão.

**Com que frequência os dados mudam?** A Lista Suja, duas vezes por ano. O IBAMA, todo dia. Por isso ele roda agendado.

**Casa por nome?** Nunca. O match é só por documento (CNPJ/CPF), o que elimina o falso-positivo de empresa homônima.

**E se o CNPJ estiver limpo?** Você recebe um retrato com `risk_level: NONE`. A verificação foi feita, e "sem risco" é uma resposta legítima.

**O que é o delta?** A diferença em relação à execução anterior. Se nada mudou entre duas runs, o delta volta vazio, sem repetir o que já estava lá.

**Preciso de proxy?** Não. As fontes são semi-abertas e o Actor não usa proxy residencial.

### Preço

O modelo é pague-por-resultado (pay-per-event), pensado para quem roda o monitor de forma recorrente:

- **`monitor_run`** — cobrado uma vez por execução que processa a watchlist. Cobre o download e a varredura das fontes.
- **`cnpj_screened`** — cobrado por CNPJ/CPF verificado.
- **`risk_change_detected`** — cobrado por mudança material de verdade (`ADDED`, `REMOVED`, `MODIFIED`). A run de baseline e as runs sem novidade não geram esse evento.

Documento inválido, ou uma run sem nenhum documento válido, não é cobrado. Você paga pela verificação e pelo sinal que ele te dá.

### Actors relacionados

- [Consulta CNPJ em Lote — Dados da Receita Federal](https://apify.com/paulovitor18/cnpj-bulk-lookup)
- [Brazil Due Diligence — CNPJ + Reclame Aqui](https://apify.com/paulovitor18/brazil-company-due-diligence)
- [Consulta de Protesto SP — CENPROT por CPF/CNPJ](https://apify.com/paulovitor18/protesto-sp-consulta)

### Changelog

- **1.0** — Lançamento: Lista Suja (MTE) + IBAMA autos/embargos, delta entre execuções, nível de risco composto, match por CNPJ e por raiz.

### Contato

Dúvida, sugestão ou algum problema? Abra uma issue na aba **Issues** do Actor.

# Actor input Schema

## `watchCnpjs` (type: `array`):

Lista de CNPJs (ou CPFs) dos fornecedores/empresas a monitorar. Aceita com ou sem pontuacao. O casamento e feito SEMPRE por documento, nunca por nome — nunca cola empresa homonima.

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

auto = primeira execucao vira baseline, seguintes reportam so o delta. baseline = forca re-emitir o estado completo e regravar o baseline.

## `includeListaSuja` (type: `boolean`):

Consulta o Cadastro de Empregadores (Lista Suja) do Ministerio do Trabalho e Emprego.

## `includeIbama` (type: `boolean`):

Varre os autos de infracao ambiental do IBAMA (dados abertos) e sinaliza termos de embargo vinculados. Baixa ~120 MB por execucao.

## `matchByRoot` (type: `boolean`):

Alem do CNPJ completo, casa autos do IBAMA por raiz de 8 digitos (grupo economico / outras filiais da mesma matriz). Fenomeno de risco costuma ser do grupo.

## `stateStoreName` (type: `string`):

Key-value store nomeado onde o baseline e guardado entre execucoes. Use um nome distinto por watchlist/agendamento para isolar o historico de delta. Mantenha o mesmo nome nas execucoes recorrentes do mesmo monitor.

## `debugForceListaFail` (type: `boolean`):

Uso interno de teste: simula queda de gov.br + Wayback para exercitar o fallback de cache. Nao usar em producao.

## Actor input object example

```json
{
  "watchCnpjs": [
    "03.246.366/0001-33",
    "10.199.645/0001-59"
  ],
  "mode": "auto",
  "includeListaSuja": true,
  "includeIbama": true,
  "matchByRoot": false,
  "stateStoreName": "esg-monitor-state",
  "debugForceListaFail": false
}
```

# Actor output Schema

## `screening` (type: `string`):

Itens emitidos nesta execucao: um snapshot por CNPJ/CPF vigiado + um item por mudanca de risco detectada, no formato descrito em dataset\_schema.json.

## `resumo` (type: `string`):

Contadores da execucao: documentos vigiados, invalidos, mudancas reais, edicao/fonte da Lista Suja e status de verificacao das fontes.

# 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 = {
    "watchCnpjs": [
        "03.246.366/0001-33",
        "10.199.645/0001-59"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("paulovitor18/esg-delta-monitor-br").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 = { "watchCnpjs": [
        "03.246.366/0001-33",
        "10.199.645/0001-59",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("paulovitor18/esg-delta-monitor-br").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 '{
  "watchCnpjs": [
    "03.246.366/0001-33",
    "10.199.645/0001-59"
  ]
}' |
apify call paulovitor18/esg-delta-monitor-br --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=paulovitor18/esg-delta-monitor-br",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Monitor ESG BR por CNPJ — Lista Suja + IBAMA",
        "description": "Monitora risco socioambiental por CNPJ: cruza a Lista Suja do trabalho escravo (MTE) com autos e embargos ambientais do IBAMA e reporta o que mudou desde a ultima execucao. Ideal para due diligence continua de fornecedores. Pague por resultado.",
        "version": "1.0",
        "x-build-id": "nlTpbKYRe69NR61bR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/paulovitor18~esg-delta-monitor-br/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-paulovitor18-esg-delta-monitor-br",
                "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/paulovitor18~esg-delta-monitor-br/runs": {
            "post": {
                "operationId": "runs-sync-paulovitor18-esg-delta-monitor-br",
                "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/paulovitor18~esg-delta-monitor-br/run-sync": {
            "post": {
                "operationId": "run-sync-paulovitor18-esg-delta-monitor-br",
                "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": [
                    "watchCnpjs"
                ],
                "properties": {
                    "watchCnpjs": {
                        "title": "CNPJs/CPFs a vigiar",
                        "type": "array",
                        "description": "Lista de CNPJs (ou CPFs) dos fornecedores/empresas a monitorar. Aceita com ou sem pontuacao. O casamento e feito SEMPRE por documento, nunca por nome — nunca cola empresa homonima.",
                        "default": [
                            "03.246.366/0001-33",
                            "10.199.645/0001-59"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "mode": {
                        "title": "Modo de execucao",
                        "enum": [
                            "auto",
                            "baseline"
                        ],
                        "type": "string",
                        "description": "auto = primeira execucao vira baseline, seguintes reportam so o delta. baseline = forca re-emitir o estado completo e regravar o baseline.",
                        "default": "auto"
                    },
                    "includeListaSuja": {
                        "title": "Incluir Lista Suja (trabalho escravo / MTE)",
                        "type": "boolean",
                        "description": "Consulta o Cadastro de Empregadores (Lista Suja) do Ministerio do Trabalho e Emprego.",
                        "default": true
                    },
                    "includeIbama": {
                        "title": "Incluir IBAMA (autos + embargos ambientais)",
                        "type": "boolean",
                        "description": "Varre os autos de infracao ambiental do IBAMA (dados abertos) e sinaliza termos de embargo vinculados. Baixa ~120 MB por execucao.",
                        "default": true
                    },
                    "matchByRoot": {
                        "title": "Casar tambem pela raiz do CNPJ (8 digitos)",
                        "type": "boolean",
                        "description": "Alem do CNPJ completo, casa autos do IBAMA por raiz de 8 digitos (grupo economico / outras filiais da mesma matriz). Fenomeno de risco costuma ser do grupo.",
                        "default": false
                    },
                    "stateStoreName": {
                        "title": "Nome do armazenamento de estado (delta)",
                        "type": "string",
                        "description": "Key-value store nomeado onde o baseline e guardado entre execucoes. Use um nome distinto por watchlist/agendamento para isolar o historico de delta. Mantenha o mesmo nome nas execucoes recorrentes do mesmo monitor.",
                        "default": "esg-monitor-state"
                    },
                    "debugForceListaFail": {
                        "title": "(interno) forcar falha das fontes da Lista Suja",
                        "type": "boolean",
                        "description": "Uso interno de teste: simula queda de gov.br + Wayback para exercitar o fallback de cache. Nao usar em producao.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
