# Minnesota DLI Professional License Scraper (`haketa/minnesota-dli-license-scraper`) Actor

Scrape contractor and tradesman license records from Minnesota DLI (Department of Labor and Industry). Downloads bulk CSV regulant lists — residential contractors, electricians, plumbers, roofers, mechanical bond holders and more. No browser needed, direct file download.

- **URL**: https://apify.com/haketa/minnesota-dli-license-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Minnesota DLI Contractor & Tradesman License Scraper

### What does Minnesota DLI License Scraper do?

Minnesota DLI License Scraper extracts **contractor and tradesman license records** from the [Minnesota Department of Labor and Industry (DLI)](https://www.dli.mn.gov/). It downloads bulk CSV exports and returns structured data including license numbers, business names, license types/subtypes, status, phone numbers, enforcement actions, and renewal flags.

The scraper covers **10 license categories**: electricians, plumbers, residential contractors, contractor registrations, mechanical contractor bond holders, boiler engineers, high pressure piping installers, residential roofers, manufactured home installers, and elevator mechanics — totaling **200,000+ records** across all categories.

No browser required. No API keys. No login. Just direct CSV download and parsing.

### Why scrape Minnesota DLI license data?

Minnesota has one of the **strictest contractor licensing regimes** in the United States. The state operates a Contractor Recovery Fund that requires all residential contractors to be licensed, and HVAC contractors must post a **$25,000 surety bond** — making bond verification a unique data point unavailable from most other state regulators.

Here's why this data is valuable:

- 🏗️ **Subcontractor due diligence** — Verify contractor license status and registration before awarding contracts in the Minneapolis/St. Paul metro area
- 🛡️ **Insurance underwriting** — Validate license status and mechanical contractor bond coverage for HVAC contractors
- 📞 **Marketing & lead generation** — Build targeted lead lists of active electricians, plumbers, roofers, and contractors filtered by category, location, and phone number
- 📊 **Workforce analytics** — Analyze license distribution, enforcement actions, and renewal patterns across Minnesota counties
- 🔄 **Compliance monitoring** — Schedule monthly runs to track expirations, revocations, new issuances, and enforcement action changes
- ⚡ **Enforcement tracking** — The `enforcementAction` flag uniquely identifies contractors with active disciplinary actions

The Apify platform adds **scheduling, API access, webhook integrations, and proxy rotation** — turning a one-time scrape into an automated compliance monitoring pipeline.

### How to scrape Minnesota DLI license data

1. Go to the [Minnesota DLI License Scraper](https://apify.com/haketa/minnesota-dli-license-scraper) on Apify Store
2. Click **Try for free** to open the Actor in Apify Console
3. Select which categories to scrape (or leave empty for all 10)
4. Optionally enable **Download ZIP** mode for faster full scrapes
5. Choose a status filter — **Issued (Active) Only** to get current licenses, or **All Statuses** to include expired/revoked
6. Set **Max Records** (0 = unlimited) and click **Start**
7. Download your dataset in **JSON, CSV, Excel, or XML** format — or connect it via API to your own systems

Each category downloads in 1–3 seconds. No proxies needed.

### What data can you extract from Minnesota DLI?

| Field | Description | Example |
|---|---|---|
| License Number | DLI license number (2-letter prefix + digits) | `RT660070` |
| License Type | License category | `Electrical` |
| License Subtype | Specific license classification | `Registered Unlicensed Power Limited Technician` |
| Entity Type | Business or Personal | `Personal`, `Business` |
| Business Name | Firm name (when entity = Business) | `MIDWEST TV & APPLIANCE LLC` |
| Individual Name | Person name (when entity = Personal) | `MATT LOKKEN` |
| DBA | Doing Business As trade name | `BROADWAY HEATING & AIR CONDITIONING` |
| Status | License status | `Issued`, `EXPIRED`, `Voluntary Termination` |
| Issue Date | Original issue date (YYYY-MM-DD) | `2012-12-07` |
| Expiration Date | Expiration date (YYYY-MM-DD) | `2026-05-31` |
| Address | Full street address | `6688 Talmadge RD` |
| City | City | `Eau Claire` |
| State | State abbreviation | `WI` |
| ZIP Code | ZIP code | `54701` |
| Phone | Phone number | `7158351540` |
| Enforcement Action | Active disciplinary action flag | `0` (none), `1` (active) |
| Renewal in Progress | Currently renewing | `Yes` or null |

### Minnesota DLI license categories explained

| Category | Description | Records |
|---|---|---|
| `Electrical` | Electricians — journeyman, master, contractor, power limited technician | ~107,000 |
| `Plumbing` | Plumbers — journeyman, master, contractor | ~40,000+ |
| `Residential_Contractors` | Residential building contractors & remodelers | ~30,000+ |
| `Contractor_Registrations` | Registered contractors (lower barrier than full license) | ~20,000+ |
| `Mechanical_Contractor_Bond` | HVAC contractor bond records ($25K bond requirement) | ~5,200 |
| `Boiler` | Boiler engineers & operators | varies |
| `High_Pressure_Piping` | High pressure piping installers | varies |
| `Residential_Roofer` | Residential roofing contractors | varies |
| `Manufactured_Home_Installer` | Manufactured/mobile home installers | varies |
| `Elevator` | Elevator contractors & mechanics | varies |

#### Minnesota license number prefixes

All Minnesota DLI license numbers follow the pattern **2-letter prefix + digits**. The prefix identifies the license type:

`BC` (Building Contractor), `PM` (Master Plumber), `PJ` (Journeyman Plumber), `EL` (Electrical Contractor), `EM` (Master Electrician), `EJ` (Journeyman Electrician), `CR` (Contractor Registration), `RR` (Residential Roofer), `RT` (Registered Technician), `MB` (Mechanical Bond)

#### Understanding Minnesota license status

In Minnesota's system, **"Issued"** is the equivalent of "Active" in other states. Other status values include: `Expired`, `EXPIRED`, `Voluntary Termination`, `Revoked`, `Suspended`, `Pending`, `Cancelled`. Note that the casing is inconsistent in DLI's source data — the Actor preserves the original values.

### Output example

```json
{
  "licenseNumber": "MB005562",
  "licenseType": "Mechanical Contractor Bond",
  "licenseSubtype": "Mechanical Contractor Bond",
  "sourceCategory": "Mechanical_Contractor_Bond",
  "entityType": "Business",
  "businessName": "MIDWEST TV & APPLIANCE LLC",
  "individualName": null,
  "name": "MIDWEST TV & APPLIANCE LLC",
  "dba": null,
  "responsibleIndividual": null,
  "status": "Issued",
  "issueDate": "2010-11-19",
  "expirationDate": "2028-03-23",
  "address": "PO BOX 429",
  "city": "LA CROSSE",
  "state": "WI",
  "zipCode": "54602",
  "county": null,
  "phone": null,
  "email": null,
  "bondAmount": null,
  "bondCompany": null,
  "enforcementAction": "0",
  "renewalInProgress": null,
  "scrapedAt": "2026-04-21T20:11:16.326Z"
}
````

### How much does it cost to scrape Minnesota DLI?

Minnesota DLI License Scraper uses a **pay-per-result** pricing model. You only pay for the records you extract:

| Plan | Price per 1,000 records | Full scrape (~200K records) | Example: Mech. Bond only (~5.2K) |
|---|---|---|---|
| Free (No discount) | $2.00 | ~$400 | ~$10.40 |
| Bronze | $1.80 | ~$360 | ~$9.36 |
| Silver | $1.50 | ~$300 | ~$7.80 |
| Gold | $1.20 | ~$240 | ~$6.24 |

The Actor itself runs on **~0.001 CU per run** — the file download and parsing cost is negligible. You can try it for free with a limited number of records on the Apify Free plan.

### Input configuration

Click on the [Input tab](https://apify.com/haketa/minnesota-dli-license-scraper/input-schema) for full details. Key parameters:

| Parameter | Default | Description |
|---|---|---|
| Categories | `["Mechanical_Contractor_Bond", "Residential_Roofer"]` | DLI categories to scrape. Leave empty for all 10 |
| Download ZIP | `false` | Download combined ZIP instead of individual CSVs |
| Status Filter | `all` | `issued` = active licenses only |
| Max Records | `200` | Record cap. Set `0` for unlimited |
| Request Delay | `200` ms | Delay between file downloads |

### Integrations and API access

You can connect Minnesota DLI License Scraper with almost any cloud service or web app via the Apify platform's built-in [integrations](https://apify.com/integrations). Connect with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. You can also access datasets programmatically via the [Apify API](https://docs.apify.com/api).

### FAQ

#### Is it legal to scrape Minnesota DLI data?

Minnesota DLI publishes license data as **public records** in downloadable CSV format at a fixed URL. No login, no terms of service agreement, and no CAPTCHA. This Actor downloads the same files any browser would access. The data contains business names, addresses, and professional license information — all public record under Minnesota's Data Practices Act.

#### How often is DLI data updated?

DLI updates CSV export files regularly. For compliance monitoring, we recommend scheduling monthly runs using Apify's [scheduling feature](https://docs.apify.com/platform/schedules).

#### Why are bondAmount and bondCompany always null?

DLI's current CSV exports do not include bond detail columns. Bond amount and surety company information is only available through the [iMS portal](https://ims.dli.mn.gov/) for individual lookups. These fields are retained in the schema for forward compatibility.

#### What does enforcementAction mean?

The `enforcementAction` field is a flag from DLI: `"0"` means no active enforcement action, `"1"` means the license has an active disciplinary action. This is a unique data point — most state license databases don't expose enforcement flags in bulk exports.

#### Can I download all categories at once?

Yes! Either leave the `categories` input empty (downloads all 10 individually) or enable **Download ZIP** mode, which fetches a single combined ZIP file and extracts all CSVs. ZIP mode is faster for full scrapes.

#### Where can I get support?

For issues or feature requests, use the **Issues tab** on the Actor page. I actively monitor feedback and respond promptly. For custom solutions, feel free to reach out.

### Other license scrapers

Looking for license data from other states? Check out:

- 🏛️ [Virginia DPOR License Scraper](https://apify.com/haketa/virginia-dpor-license-scraper) — 45K+ contractor and tradesman license records from Virginia with email addresses and specialty codes

# Actor input Schema

## `categories` (type: `array`):

DLI license categories to scrape. Each category downloads a separate CSV file. Available: 'Electrical', 'Plumbing', 'Residential\_Contractors', 'Contractor\_Registrations', 'Mechanical\_Contractor\_Bond', 'Boiler', 'High\_Pressure\_Piping', 'Residential\_Roofer', 'Manufactured\_Home\_Installer', 'Elevator'. Leave empty to scrape all categories.

## `useZip` (type: `boolean`):

Download the combined ZIP file containing all categories instead of individual CSV files. Overrides the categories selection. Faster for full scrapes.

## `statusFilter` (type: `string`):

Filter records by license status. 'issued' = only active/issued licenses, 'all' = include expired/revoked/suspended.

## `maxRecords` (type: `integer`):

Maximum total records to save across all categories. Set 0 for unlimited.

## `requestDelay` (type: `integer`):

Delay between file downloads in milliseconds.

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

Optional proxy settings. Usually not needed — DLI serves public files without restrictions.

## Actor input object example

```json
{
  "categories": [
    "Mechanical_Contractor_Bond",
    "Residential_Roofer"
  ],
  "useZip": false,
  "statusFilter": "all",
  "maxRecords": 200,
  "requestDelay": 200,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `licenseNumber` (type: `string`):

DLI license number (2-letter prefix + digits)

## `licenseType` (type: `string`):

License type from DLI

## `licenseSubtype` (type: `string`):

License subtype / specialty

## `sourceCategory` (type: `string`):

DLI file category (Electrical, Plumbing etc.)

## `entityType` (type: `string`):

B = Business, P = Person

## `businessName` (type: `string`):

Company/firm name (when entityType = B)

## `individualName` (type: `string`):

Person name (when entityType = P)

## `name` (type: `string`):

Merged name — business or individual based on entity type

## `dba` (type: `string`):

Doing Business As name

## `responsibleIndividual` (type: `string`):

Qualifying person for firm license

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

License status (Issued = active, Expired, Revoked etc.)

## `issueDate` (type: `string`):

Original issue date (YYYY-MM-DD)

## `expirationDate` (type: `string`):

Expiration date (YYYY-MM-DD)

## `address` (type: `string`):

Full address (Addr1 + Addr2 merged)

## `city` (type: `string`):

City

## `state` (type: `string`):

State abbreviation

## `zipCode` (type: `string`):

ZIP code

## `county` (type: `string`):

County name

## `phone` (type: `string`):

Phone number

## `email` (type: `string`):

Email address

## `bondAmount` (type: `string`):

Bond amount (Mechanical Contractor Bond only)

## `bondCompany` (type: `string`):

Surety/bond company name

## `enforcementAction` (type: `string`):

Active enforcement action flag

## `renewalInProgress` (type: `string`):

Whether renewal is currently in progress

## `scrapedAt` (type: `string`):

ISO timestamp when record was scraped

# 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 = {
    "categories": [
        "Mechanical_Contractor_Bond",
        "Residential_Roofer"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/minnesota-dli-license-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "categories": [
        "Mechanical_Contractor_Bond",
        "Residential_Roofer",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/minnesota-dli-license-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "categories": [
    "Mechanical_Contractor_Bond",
    "Residential_Roofer"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call haketa/minnesota-dli-license-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Minnesota DLI Professional License Scraper",
        "description": "Scrape contractor and tradesman license records from Minnesota DLI (Department of Labor and Industry). Downloads bulk CSV regulant lists — residential contractors, electricians, plumbers, roofers, mechanical bond holders and more. No browser needed, direct file download.",
        "version": "0.0",
        "x-build-id": "4ln1viXmf8ryucWeP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/haketa~minnesota-dli-license-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-haketa-minnesota-dli-license-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/haketa~minnesota-dli-license-scraper/runs": {
            "post": {
                "operationId": "runs-sync-haketa-minnesota-dli-license-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/haketa~minnesota-dli-license-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-haketa-minnesota-dli-license-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "categories": {
                        "title": "License Categories",
                        "type": "array",
                        "description": "DLI license categories to scrape. Each category downloads a separate CSV file. Available: 'Electrical', 'Plumbing', 'Residential_Contractors', 'Contractor_Registrations', 'Mechanical_Contractor_Bond', 'Boiler', 'High_Pressure_Piping', 'Residential_Roofer', 'Manufactured_Home_Installer', 'Elevator'. Leave empty to scrape all categories.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "useZip": {
                        "title": "Download ZIP (All Categories)",
                        "type": "boolean",
                        "description": "Download the combined ZIP file containing all categories instead of individual CSV files. Overrides the categories selection. Faster for full scrapes.",
                        "default": false
                    },
                    "statusFilter": {
                        "title": "License Status Filter",
                        "enum": [
                            "issued",
                            "all"
                        ],
                        "type": "string",
                        "description": "Filter records by license status. 'issued' = only active/issued licenses, 'all' = include expired/revoked/suspended.",
                        "default": "all"
                    },
                    "maxRecords": {
                        "title": "Max Records",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum total records to save across all categories. Set 0 for unlimited.",
                        "default": 200
                    },
                    "requestDelay": {
                        "title": "Request Delay (ms)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Delay between file downloads in milliseconds.",
                        "default": 200
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy settings. Usually not needed — DLI serves public files without restrictions."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
