# FCC ULS License Holder Scraper (`automation-lab/fcc-uls-license-holder-scraper`) Actor

📡 Extract FCC ULS license holder contacts, call signs, FRNs, radio service codes, statuses, and expiration dates from public FCC ZIP archives.

- **URL**: https://apify.com/automation-lab/fcc-uls-license-holder-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.02 / 1,000 license holder saveds

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

## FCC ULS License Holder Scraper

Extract FCC Universal Licensing System (ULS) license-holder contacts from public FCC ZIP archives.

The actor downloads official `data.fcc.gov` ULS archives, scans the pipe-delimited public files, and returns clean rows with call signs, FRNs, licensee names, addresses, phone numbers, emails, radio service codes, license status, grant dates, and expiration dates.

### What does FCC ULS License Holder Scraper do?

It turns FCC ULS download archives into a usable lead and compliance dataset.

- 📡 Reads FCC public ULS ZIP files.
- 🧾 Extracts license holder and contact records from `EN.dat`.
- ✅ Enriches records with license status and dates from `HD.dat`.
- 🎯 Filters by state, exact call sign, call sign prefix, status, and radio service code.
- 📦 Exports JSON, CSV, Excel, XML, RSS, or HTML through Apify datasets.

### Who is it for?

This scraper is designed for teams that need radio-license contact data without manually downloading and joining FCC files.

#### Telecom consultants and market researchers

- Build state-specific prospect lists from active license holders.
- Compare local radio-service footprints by call sign, FRN, state, or service code.
- Export repeatable CSV/Excel datasets for client reports and market sizing.

#### Wireless vendors and tower teams

- Find licensed operators that may need radios, antennas, maintenance, or site services.
- Research tower/site acquisition opportunities with call sign and license-status context.
- Keep sales lists focused with state, status, service-code, and maximum-result filters.

#### Compliance and data operations teams

- Check license statuses, grant dates, and expiration dates from official FCC archive files.
- Enrich internal FRN, call sign, customer, or asset databases with public ULS contact fields.
- Schedule recurring Apify runs to refresh compliance dashboards and downstream workflows.

### Why use this actor?

FCC ULS data is public, but the raw ZIP archives are large and structured for database ingestion rather than spreadsheet users.

This actor gives you a practical API-ready workflow:

- no browser automation,
- no login,
- no FCC website scraping,
- no manual ZIP extraction,
- no local scripts to maintain,
- and no need to parse pipe-delimited records yourself.

### What data can you extract?

| Field | Description |
| --- | --- |
| `callsign` | FCC call sign |
| `frn` | FCC Registration Number |
| `licenseeName` | License holder or organization name |
| `radioServiceCode` | FCC radio service code from `HD.dat` |
| `licenseStatus` | FCC status code with a readable label when known |
| `grantDate` | License grant date |
| `expirationDate` | License expiration date |
| `contactName` | Contact or attention name when present |
| `phone` | Public phone number from ULS entity record |
| `email` | Public email address from ULS entity record |
| `address` | Public street address |
| `city` | Licensee city |
| `state` | Licensee state |
| `zipCode` | Licensee ZIP/postal code |
| `sourceArchive` | FCC archive used for provenance |
| `sourceUrl` | Direct ZIP URL used for the run |

### How much does it cost to extract FCC ULS license holders?

The actor uses pay-per-event pricing.

- A small start fee is charged once per run.
- A per-item event is charged for each license-holder row saved.
- Use `maxItems` and filters to keep first tests small.
- Larger FCC archives can take longer, so start with the default Paging archive.

Apify shows the exact estimated cost before and after each run.

### Quick start

1. Open the actor on Apify.
2. Keep the default `l_paging` archive for a fast first run.
3. Add a state filter such as `CA` or `TX`.
4. Keep `maxItems` at `100` for the first test.
5. Run the actor.
6. Download the dataset as CSV, Excel, JSON, or XML.

### Input options

#### FCC ULS archive

Choose the FCC archive to scan.

The default `l_paging` archive is small and good for testing. Other options include Amateur, GMRS, Land Mobile, Aircraft, Cellular, Coast, FRC, Market, MDS/ITFS, Microwave, and Ship.

#### Custom archive URL

Use this only when you have a direct FCC ZIP URL that is not in the dropdown.

#### Licensee states

Enter two-letter state codes such as `CA`, `TX`, or `FL`.

Leave the list empty to scan all states.

#### Exact call sign

Use this when you want one known license.

Example: `KAA209`.

#### Call sign prefix

Use this for prefix searches.

Example: `KN` returns call signs that start with `KN`.

#### License status codes

Common FCC status codes include:

- `A` active
- `C` canceled
- `E` expired
- `T` terminated

Leave empty to include all statuses.

#### Radio service codes

Filter to FCC service codes such as `CD`, `IG`, `MG`, `MW`, or `YG`.

Leave empty to include all service codes in the selected archive.

#### Maximum license holders

Controls the maximum number of dataset rows.

Use a low number for tests and a larger number for production exports.

### Example input

```json
{
  "archive": "l_paging",
  "states": ["CA"],
  "licenseStatuses": ["A"],
  "maxItems": 100
}
````

### Example output

```json
{
  "callsign": "KMA616",
  "frn": "",
  "licenseeName": "Robert La Rue Properties, LLC",
  "radioServiceCode": "CD",
  "licenseStatus": "A - Active",
  "grantDate": "05/29/2019",
  "expirationDate": "04/01/2029",
  "city": "Stockton",
  "state": "CA",
  "email": "robert@telecomtowers.net"
}
```

### Tips for better results

- Start with `l_paging` to confirm your workflow.
- Add state filters for smaller, faster exports.
- Use `licenseStatuses: ["A"]` when you only need active licenses.
- Increase `candidateBufferMultiplier` if a very selective status/service run returns too few rows.
- Use a custom archive URL only for FCC ULS ZIP files with standard `EN.dat` and `HD.dat` records.

### Integrations

Use this actor in lead-generation and compliance workflows.

- Send active license holders to a CRM.
- Monitor expiring licenses by scheduled runs.
- Join FRNs with your internal customer database.
- Export state-specific contact lists for sales teams.
- Build compliance dashboards from recurring Apify dataset exports.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/fcc-uls-license-holder-scraper').call({
  archive: 'l_paging',
  states: ['CA'],
  licenseStatuses: ['A'],
  maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/fcc-uls-license-holder-scraper').call(run_input={
    'archive': 'l_paging',
    'states': ['CA'],
    'licenseStatuses': ['A'],
    'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~fcc-uls-license-holder-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"archive":"l_paging","states":["CA"],"licenseStatuses":["A"],"maxItems":100}'
```

### MCP usage

Use Apify MCP to run this scraper from Claude Code or Claude Desktop.

MCP endpoint:

```text
https://mcp.apify.com/?tools=automation-lab/fcc-uls-license-holder-scraper
```

Claude Code setup:

```bash
claude mcp add apify-fcc-uls --transport http "https://mcp.apify.com/?tools=automation-lab/fcc-uls-license-holder-scraper"
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify-fcc-uls": {
      "url": "https://mcp.apify.com/?tools=automation-lab/fcc-uls-license-holder-scraper"
    }
  }
}
```

Example prompts:

- "Extract 100 active FCC ULS paging license holders in California."
- "Find active FCC GMRS license holders in Texas and return emails when available."
- "Run the FCC ULS License Holder Scraper for call signs starting with KAA."

### Scheduling

Schedule the actor to monitor license status changes over time.

A common workflow is:

1. Run weekly for one state.
2. Export to a dataset or webhook.
3. Compare FRN and call sign values with the prior run.
4. Flag new, canceled, or expiring licenses.

### Data source

The actor uses FCC public ULS complete archive downloads from:

```text
https://data.fcc.gov/download/pub/uls/complete/
```

The actor does not use the interactive FCC License View website.

### Limitations

Version 0.1 focuses on license-holder/contact records.

It does not yet join every ULS location, antenna, frequency, or emission file. Those fields are useful for engineering workflows and can be added later as separate output modes.

### Troubleshooting

#### Why did my run return fewer rows than maxItems?

Your filters may be too selective, or the candidate buffer may have stopped before enough status/service matches were found. Try removing status/service filters or increasing `candidateBufferMultiplier`.

#### Why are some emails or FRNs blank?

The FCC public record may not include those values for every entity. The actor preserves blank fields instead of inventing data.

#### Why does a large archive take longer?

Some FCC archives are hundreds of megabytes. The actor streams the ZIP file, but the source still has to be downloaded and scanned.

### Legality

The actor downloads public FCC ULS files from the official FCC data host. You are responsible for using the data lawfully, respecting privacy and communications rules, and complying with any applicable lead-generation regulations.

### Is it legal to scrape FCC ULS data?

Yes, this actor uses public FCC data downloads rather than private accounts or login-only pages. You should still review your intended downstream use with your legal or compliance team.

### Related scrapers

Explore other automation-lab actors for lead generation and public-record workflows:

- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/google-maps-business-scraper
- https://apify.com/automation-lab/yelp-business-scraper
- https://apify.com/automation-lab/linkedin-company-url-finder

### Changelog

#### 0.1

Initial private build.

### Support

If you need additional ULS joins such as frequency, antenna, coordinates, or location records, open an Apify issue with the exact FCC service code and fields you need.

### FAQ

#### Can I filter by licensee name?

Not in v0.1. Use state, call sign, status, and radio service filters. Licensee-name filtering is planned for a future version.

#### Can I export to Excel?

Yes. Apify datasets can be downloaded as Excel, CSV, JSON, XML, RSS, and HTML.

#### Does this need proxies?

No. The actor reads public FCC downloads directly.

#### Does this use a browser?

No. It is an HTTP-only actor.

#### Can I use my own FCC ZIP URL?

Yes, if it contains standard ULS `EN.dat` and `HD.dat` files.

#### What is the best first run?

Use `l_paging`, one state such as `CA`, active status `A`, and `maxItems` set to `100`.

# Actor input Schema

## `archive` (type: `string`):

Complete ULS archive to scan. The default Paging archive is small and fast; choose Amateur, GMRS, Cellular, Microwave, or Land Mobile archives for broader lead lists.

## `customArchiveUrl` (type: `string`):

Optional direct URL to a FCC ULS ZIP file. Leave empty to use the selected archive from data.fcc.gov.

## `states` (type: `array`):

Optional two-letter state codes from EN.dat licensee addresses, for example CA, TX, FL. Empty means all states.

## `callsign` (type: `string`):

Return only one exact FCC call sign, for example KAA209. This overrides broad prospecting workflows.

## `callsignPrefix` (type: `string`):

Return licenses whose call sign starts with this prefix, for example KN or WQ.

## `licenseStatuses` (type: `array`):

Optional FCC status code filters from HD.dat. Common values: A active, C canceled, E expired, T terminated.

## `radioServiceCodes` (type: `array`):

Optional FCC radio service filters such as CD, CF, IG, MG, YG, or MW. Empty means all services in the selected archive.

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

Maximum dataset rows to save. Increase for larger lead lists after testing your filters.

## `candidateBufferMultiplier` (type: `integer`):

Advanced: how many EN.dat candidate rows to keep before HD.dat status/service matching. Raise this for very selective status filters.

## Actor input object example

```json
{
  "archive": "l_paging",
  "states": [
    "CA"
  ],
  "licenseStatuses": [
    "A"
  ],
  "maxItems": 20,
  "candidateBufferMultiplier": 50
}
```

# 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 = {
    "archive": "l_paging",
    "states": [
        "CA"
    ],
    "licenseStatuses": [
        "A"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/fcc-uls-license-holder-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 = {
    "archive": "l_paging",
    "states": ["CA"],
    "licenseStatuses": ["A"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/fcc-uls-license-holder-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 '{
  "archive": "l_paging",
  "states": [
    "CA"
  ],
  "licenseStatuses": [
    "A"
  ],
  "maxItems": 20
}' |
apify call automation-lab/fcc-uls-license-holder-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FCC ULS License Holder Scraper",
        "description": "📡 Extract FCC ULS license holder contacts, call signs, FRNs, radio service codes, statuses, and expiration dates from public FCC ZIP archives.",
        "version": "0.1",
        "x-build-id": "j4xvq5Q4ACAXcgqvc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~fcc-uls-license-holder-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-fcc-uls-license-holder-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~fcc-uls-license-holder-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-fcc-uls-license-holder-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~fcc-uls-license-holder-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-fcc-uls-license-holder-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": {
                    "archive": {
                        "title": "FCC ULS archive",
                        "enum": [
                            "l_paging",
                            "l_amat",
                            "l_gmrs",
                            "l_LMbcast",
                            "l_LMcomm",
                            "l_LMpriv",
                            "l_aircr",
                            "l_cell",
                            "l_coast",
                            "l_frc",
                            "l_market",
                            "l_mdsitfs",
                            "l_micro",
                            "l_ship"
                        ],
                        "type": "string",
                        "description": "Complete ULS archive to scan. The default Paging archive is small and fast; choose Amateur, GMRS, Cellular, Microwave, or Land Mobile archives for broader lead lists.",
                        "default": "l_paging"
                    },
                    "customArchiveUrl": {
                        "title": "Custom FCC archive URL",
                        "type": "string",
                        "description": "Optional direct URL to a FCC ULS ZIP file. Leave empty to use the selected archive from data.fcc.gov."
                    },
                    "states": {
                        "title": "Licensee states",
                        "type": "array",
                        "description": "Optional two-letter state codes from EN.dat licensee addresses, for example CA, TX, FL. Empty means all states.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "callsign": {
                        "title": "Exact call sign",
                        "type": "string",
                        "description": "Return only one exact FCC call sign, for example KAA209. This overrides broad prospecting workflows."
                    },
                    "callsignPrefix": {
                        "title": "Call sign prefix",
                        "type": "string",
                        "description": "Return licenses whose call sign starts with this prefix, for example KN or WQ."
                    },
                    "licenseStatuses": {
                        "title": "License status codes",
                        "type": "array",
                        "description": "Optional FCC status code filters from HD.dat. Common values: A active, C canceled, E expired, T terminated.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "radioServiceCodes": {
                        "title": "Radio service codes",
                        "type": "array",
                        "description": "Optional FCC radio service filters such as CD, CF, IG, MG, YG, or MW. Empty means all services in the selected archive.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum license holders",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum dataset rows to save. Increase for larger lead lists after testing your filters.",
                        "default": 20
                    },
                    "candidateBufferMultiplier": {
                        "title": "Candidate buffer multiplier",
                        "minimum": 2,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Advanced: how many EN.dat candidate rows to keep before HD.dat status/service matching. Raise this for very selective status filters.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
