# MSHA Mine Safety Scraper (`automation-lab/msha-mine-safety-scraper`) Actor

Extract official MSHA mine, inspection, violation, accident, and penalty assessment data for compliance and risk analysis.

- **URL**: https://apify.com/automation-lab/msha-mine-safety-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.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.
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

## MSHA Mine Safety Scraper

Extract public Mine Safety and Health Administration (MSHA) records from official government datasets.

Use this actor to build repeatable exports of mine profiles, inspections, violations, accidents, injuries, and penalty assessments without clicking through MSHA's reporting interface.

The actor downloads MSHA Open Government Data zip files, reads the pipe-delimited records, applies your filters, and saves normalized rows to the Apify dataset.

It is designed for compliance teams, industrial researchers, insurance analysts, ESG due-diligence teams, and data engineers who need mine safety intelligence in a clean API-ready format.

### What does MSHA Mine Safety Scraper do?

MSHA Mine Safety Scraper turns public MSHA bulk files into a filtered dataset.

It supports five high-value source datasets:

- 🏭 Mines
- 🔎 Inspections
- ⚠️ Violations
- 🚑 Accidents and injuries
- 💵 Assessed violations / penalties

Each output row includes `sourceUrl` and `scrapedAt` so your downstream workflow can audit where the record came from.

The actor is HTTP-first and does not require Playwright, browser automation, login credentials, or an API key.

### Who is it for?

#### Compliance teams

Monitor recent violations, penalties, and accident history for mines and operators.

#### Insurance underwriters

Review mine safety history before quoting or renewing coverage.

#### ESG and supply-chain analysts

Screen mining suppliers for enforcement, injury, and compliance risk.

#### Industrial sales teams

Find active mines and operators in target states or commodities.

#### Researchers and journalists

Download official government safety records into a structured dataset.

#### Data engineers

Schedule repeatable MSHA exports and connect them to BI tools, warehouses, or risk models.

### Why use this actor?

MSHA provides public data, but raw downloads are large, pipe-delimited, and split across separate datasets.

This actor handles the repetitive work:

- ✅ Downloads official MSHA files
- ✅ Parses pipe-delimited text inside zip archives
- ✅ Normalizes important fields across datasets
- ✅ Filters by mine ID, names, state, and date range
- ✅ Emits clean JSON records through Apify
- ✅ Works with scheduled runs, API calls, webhooks, and integrations

### Data sources

The actor uses official MSHA Open Government Data files:

- `Mines.zip`
- `Inspections.zip`
- `Violations.zip`
- `Accidents.zip`
- `AssessedViolations.zip`

These files are hosted by MSHA under `arlweb.msha.gov/OpenGovernmentData/DataSets/`.

No private data is accessed.

No scraping of logged-in pages is performed.

### Supported dataset types

#### mines

Mine profile and operator/controller metadata.

#### inspections

Inspection events, dates, activity types, and inspection hours where available.

#### violations

Citation and order records, regulations, significant-and-substantial flags, proposed penalties, amounts due, and payment fields.

#### accidents

Accident, injury, equipment, occupation, activity, and narrative fields.

#### assessments

Assessed violation and penalty records from `AssessedViolations.zip`.

### Data table

| Field | Description |
| --- | --- |
| `datasetType` | Source dataset type: mines, inspections, violations, accidents, or assessments |
| `mineId` | MSHA mine identifier |
| `mineName` | Mine name where present |
| `operatorName` | Current operator, event operator, or violator name |
| `controllerName` | Mine controller name where present |
| `state` | State code when provided by the source dataset |
| `county` | County name for mine records |
| `mineType` | Surface, underground, facility, or other MSHA mine type |
| `mineStatus` | Current mine status |
| `eventNo` | Inspection or enforcement event number |
| `violationNo` | MSHA violation number |
| `violationIssueDate` | Violation issue date in ISO format |
| `proposedPenalty` | Proposed penalty amount when present |
| `accidentDate` | Accident date in ISO format |
| `degreeInjury` | MSHA degree of injury text |
| `assessmentCaseNo` | Penalty assessment case number |
| `currentAssessmentAmount` | Current assessment amount |
| `sourceUrl` | Official MSHA dataset URL |
| `scrapedAt` | Timestamp when this actor saved the row |

### How much does it cost to scrape MSHA mine safety data?

This actor uses pay-per-event pricing.

A small start event is charged once per run.

A per-item event is charged for each dataset row saved.

Current formula-derived BRONZE item price is about $0.000031 per extracted record, with tier discounts for higher Apify plans. The start event is $0.005 per run.

The default Apify free tier may include platform credits, but final billing depends on your Apify plan and the live actor pricing shown on the Store page.

For best cost control, start with one dataset type and a small `maxItems` value.

### How to use it

1. Choose one or more dataset types.
2. Add optional filters such as state, mine ID, operator name, or date range.
3. Set `maxItems` to cap the export size.
4. Run the actor.
5. Download results as JSON, CSV, Excel, XML, or via the Apify API.

### Input options

#### datasetTypes

Array of MSHA datasets to scan.

Example: `["mines", "violations"]`

#### state

Two-letter state code such as `WV`, `PA`, `KY`, `NV`, or `AZ`.

Some MSHA source files do not include a direct state column. In those cases, the actor does not reject otherwise matching rows just because the state field is absent.

#### mineId

Exact MSHA mine ID. Leading zeros are ignored for matching.

#### mineName

Case-insensitive substring filter for mine names.

#### operatorName

Case-insensitive substring filter for operator or violator names.

#### controllerName

Case-insensitive substring filter for controller names.

#### startDate and endDate

ISO dates such as `2024-01-01`.

The actor maps these to relevant MSHA date fields for each dataset.

#### maxItems

Maximum records to save across all selected datasets.

Use a low value for testing and a higher value for production exports.

### Example input

```json
{
  "datasetTypes": ["violations"],
  "state": "WV",
  "startDate": "2024-01-01",
  "maxItems": 100
}
````

### Example output

```json
{
  "datasetType": "violations",
  "mineId": "4601436",
  "mineName": "Example Mine",
  "operatorName": "Example Operator LLC",
  "eventNo": "1234567",
  "violationNo": "9876543",
  "violationIssueDate": "2024-05-12",
  "regulation": "75.400",
  "proposedPenalty": 942,
  "sourceUrl": "https://arlweb.msha.gov/OpenGovernmentData/DataSets/Violations.zip",
  "scrapedAt": "2026-07-02T00:00:00.000Z"
}
```

### Tips for better results

- Start with a focused dataset type.
- Use `mineId` when you need exact history for a single mine.
- Use `operatorName` for due-diligence workflows.
- Use date filters for inspections, violations, accidents, and assessments.
- Increase `maxItems` after confirming the filters produce the data you expect.

### Common workflows

#### Mine risk screening

Run `mines`, `violations`, `accidents`, and `assessments` for a target mine ID.

#### Operator compliance monitoring

Run `inspections`, `violations`, and `assessments` with an operator name filter.

#### State-level market research

Run `mines` with a state code to build a list of mines and operators in that region.

#### Accident trend analysis

Run `accidents` with a date range and export the dataset to a BI tool.

### Integrations

You can connect this actor to:

- Google Sheets for compliance dashboards
- BigQuery or Snowflake for mine safety data warehouses
- Slack or email alerts through Apify webhooks
- CRM enrichment for industrial sales teams
- Risk models for underwriting and ESG screening

### API usage with Node.js

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/msha-mine-safety-scraper').call({
  datasetTypes: ['violations'],
  startDate: '2024-01-01',
  maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage with Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/msha-mine-safety-scraper').call(run_input={
    'datasetTypes': ['accidents'],
    'startDate': '2023-01-01',
    'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl "https://api.apify.com/v2/acts/automation-lab~msha-mine-safety-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"datasetTypes":["mines"],"state":"WV","maxItems":100}'
```

### MCP integration

Use the Apify MCP server to call this actor from Claude Desktop, Claude Code, or other MCP clients.

MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/msha-mine-safety-scraper
```

Claude Code setup:

```bash
claude mcp add apify-msha "https://mcp.apify.com/?tools=automation-lab/msha-mine-safety-scraper"
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-msha": {
      "url": "https://mcp.apify.com/?tools=automation-lab/msha-mine-safety-scraper"
    }
  }
}
```

Example prompts:

- "Run the MSHA Mine Safety Scraper for recent West Virginia violations."
- "Get accident records from MSHA since 2023 and summarize injury categories."
- "Export mine records for Pennsylvania and list the top operators."

### Scheduling

Schedule this actor daily, weekly, or monthly in Apify.

Common schedules:

- Weekly operator compliance monitor
- Monthly insurance portfolio refresh
- Quarterly ESG supplier screening
- Annual research dataset rebuild

### Webhooks

Attach an Apify webhook to notify your system when a run succeeds.

You can send completed dataset links to Slack, email, Zapier, Make, or a custom API endpoint.

### Performance notes

MSHA bulk files can be large.

The actor stops as soon as it reaches `maxItems`, but it still needs to download selected zip files before parsing.

For fastest test runs, select `mines` first or use exact filters.

For broad enforcement exports, expect larger downloads for violations and assessments.

### Limitations

- The actor depends on MSHA public bulk file availability.
- Some source datasets do not include every normalized output field.
- State filtering applies only when the source row includes a state field.
- The actor does not infer state by joining non-mine datasets to the mines dataset during the same run.
- Very broad exports may take longer because MSHA files are large.

### Troubleshooting

#### Why did I get fewer rows than expected?

Your filters may be too narrow, or the selected source dataset may not contain that field. Try removing optional filters or increasing `maxItems`.

#### Why is the state field missing on some rows?

Some MSHA enforcement datasets do not include a state column. Use mine ID joins downstream if state is required for every event record.

#### Why did the run download a large file?

MSHA publishes some datasets as large zip files. This actor downloads the official file and streams records until enough matching rows are found.

### Data quality

Dates are converted from MSHA `MM/DD/YYYY` values to ISO `YYYY-MM-DD` where possible.

Currency and numeric fields are converted to numbers when source values are parseable.

Empty, unknown, and placeholder values are removed from output rows.

### Legality

This actor extracts public government data from official MSHA datasets.

You are responsible for using the data in compliance with applicable laws, regulations, and Apify terms.

Do not use the data for unlawful discrimination, harassment, or unsafe operational decisions without appropriate verification.

### Related scrapers

Related Automation Lab actors you may use with this dataset:

- https://apify.com/automation-lab/osha-inspections-scraper
- https://apify.com/automation-lab/epa-echo-scraper
- https://apify.com/automation-lab/epa-tri-scraper
- https://apify.com/automation-lab/fra-railroad-accidents-scraper

### FAQ

#### Is this an official MSHA product?

No. It is an independent Apify actor that extracts public MSHA datasets.

#### Do I need an MSHA account?

No. The actor uses public bulk files.

#### Can I scrape all records?

Yes, set a high `maxItems` value and choose the datasets you need. Large exports may take longer.

#### Can I filter by operator?

Yes. Use `operatorName` for case-insensitive operator or violator matching.

#### Can I filter by mine ID?

Yes. Use `mineId` for exact matching.

#### Can I use it for monitoring?

Yes. Schedule runs and compare new dataset records against prior runs in your own storage.

#### Does it use proxies?

No proxy is required for normal operation.

#### Does it use a browser?

No. It uses HTTP downloads and local parsing.

### Changelog

#### 0.1

Initial version with mines, inspections, violations, accidents, and assessed violations support.

# Actor input Schema

## `datasetTypes` (type: `array`):

MSHA public datasets to download and normalize. Each selected dataset is scanned until maxItems is reached.

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

Two-letter state code for mine records, for example WV, PA, KY, NV, or AZ. Leave empty for all states.

## `mineId` (type: `string`):

Optional exact MSHA mine ID. Leading zeros are ignored.

## `mineName` (type: `string`):

Optional case-insensitive mine name text filter.

## `operatorName` (type: `string`):

Optional case-insensitive operator or violator name filter.

## `controllerName` (type: `string`):

Optional case-insensitive mine controller name filter.

## `startDate` (type: `string`):

Include records with a relevant MSHA date on or after this date. Applies to inspection, violation, accident, and assessment dates.

## `endDate` (type: `string`):

Include records with a relevant MSHA date on or before this date.

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

Maximum normalized records to save across all selected datasets.

## Actor input object example

```json
{
  "datasetTypes": [
    "mines",
    "violations"
  ],
  "state": "WV",
  "startDate": "2024-01-01",
  "maxItems": 20
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "datasetTypes": [
        "mines",
        "violations"
    ],
    "state": "WV",
    "startDate": "2024-01-01",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/msha-mine-safety-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 = {
    "datasetTypes": [
        "mines",
        "violations",
    ],
    "state": "WV",
    "startDate": "2024-01-01",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/msha-mine-safety-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 '{
  "datasetTypes": [
    "mines",
    "violations"
  ],
  "state": "WV",
  "startDate": "2024-01-01",
  "maxItems": 20
}' |
apify call automation-lab/msha-mine-safety-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/msha-mine-safety-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MSHA Mine Safety Scraper",
        "description": "Extract official MSHA mine, inspection, violation, accident, and penalty assessment data for compliance and risk analysis.",
        "version": "0.1",
        "x-build-id": "YvcG94GDpgJu0oLUC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~msha-mine-safety-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-msha-mine-safety-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/automation-lab~msha-mine-safety-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-msha-mine-safety-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/automation-lab~msha-mine-safety-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-msha-mine-safety-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": {
                    "datasetTypes": {
                        "title": "📚 Dataset types",
                        "type": "array",
                        "description": "MSHA public datasets to download and normalize. Each selected dataset is scanned until maxItems is reached.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "mines",
                                "inspections",
                                "violations",
                                "accidents",
                                "assessments"
                            ],
                            "enumTitles": [
                                "Mines",
                                "Inspections",
                                "Violations",
                                "Accidents and injuries",
                                "Assessed violations / penalties"
                            ]
                        },
                        "default": [
                            "mines",
                            "violations"
                        ]
                    },
                    "state": {
                        "title": "State code",
                        "minLength": 2,
                        "maxLength": 2,
                        "type": "string",
                        "description": "Two-letter state code for mine records, for example WV, PA, KY, NV, or AZ. Leave empty for all states."
                    },
                    "mineId": {
                        "title": "MSHA mine ID",
                        "type": "string",
                        "description": "Optional exact MSHA mine ID. Leading zeros are ignored."
                    },
                    "mineName": {
                        "title": "Mine name contains",
                        "type": "string",
                        "description": "Optional case-insensitive mine name text filter."
                    },
                    "operatorName": {
                        "title": "Operator name contains",
                        "type": "string",
                        "description": "Optional case-insensitive operator or violator name filter."
                    },
                    "controllerName": {
                        "title": "Controller name contains",
                        "type": "string",
                        "description": "Optional case-insensitive mine controller name filter."
                    },
                    "startDate": {
                        "title": "Start date",
                        "type": "string",
                        "description": "Include records with a relevant MSHA date on or after this date. Applies to inspection, violation, accident, and assessment dates."
                    },
                    "endDate": {
                        "title": "End date",
                        "type": "string",
                        "description": "Include records with a relevant MSHA date on or before this date."
                    },
                    "maxItems": {
                        "title": "Maximum records",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum normalized records to save across all selected datasets.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
