# TDLR Texas License Search Scraper (`crawlerbros/tdlr-texas-license-scraper`) Actor

Search Texas Dept. of Licensing and Regulation (TDLR) licenses across 80+ regulated trades: cosmetology, barbering, electricians, HVAC, and more. Search by name or license number, filter by trade and status, get expiration dates and contact info.

- **URL**: https://apify.com/crawlerbros/tdlr-texas-license-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Lead generation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## TDLR Texas License Search Scraper

Search **Texas Department of Licensing and Regulation (TDLR)** license records — cosmetology, barbering, electricians, HVAC/A-C technicians, tow truck operators, elevator inspectors, property tax professionals, auctioneers, and 80+ other regulated trades under the TDLR umbrella. Search by license holder or business name, or jump straight to a license number. Get license status, expiration date, trade category, and contact/address info. HTTP-only against TDLR's own official public license dataset — no login, no CAPTCHA, no proxy required.

### Data source & limitations

TDLR's interactive search UI (`tdlr.texas.gov/LicenseSearch`) is currently unreachable from standard internet infrastructure (a persistent connection-level block, not a CAPTCHA or rate limit). This actor instead uses **TDLR's own official bulk license dataset**, published directly by TDLR on the Texas Open Data Portal (`data.texas.gov`) as a public, structured API — the same underlying license records the search UI draws from, refreshed on a regular schedule by TDLR. No functionality is lost: name search, license number lookup, and trade-category filtering all work the same way.

### What this actor does

- **Two modes:** search by license holder / business `name`, or direct `license number` lookup
- **84 TDLR-defined trade categories** as a filterable dropdown (cosmetology, barbering, electricians, HVAC, tow trucks, elevators, property tax, auctioneers, and more)
- **Filters:** trade category, license status (active/expired), Texas county
- **Note:** TDLR numbers licenses per trade category — the same license number can appear across multiple categories; use the trade-category filter to disambiguate
- **Empty fields are omitted** — a field only appears when TDLR actually published that data for the license

### Output per license

- `licenseNumber` — TDLR license number
- `licenseType` — TDLR trade category (e.g. `Cosmetology Operator`, `Electrical Contractor`)
- `licenseSubtype` — TDLR's internal subtype/tier code, when published
- `ownerName` — individual or business owner name
- `businessName` — business/DBA name
- `businessAddressLine1`, `businessAddressLine2`, `businessCityStateZip`, `businessCounty`, `businessPhone`
- `mailingAddressLine1`, `mailingAddressLine2`, `mailingCityStateZip`, `mailingCounty`, `ownerPhone`
- `latitude`, `longitude` — geocoded business location, when published
- `expirationDate` — ISO date the license expires/expired
- `licenseStatus` — `active` or `expired`, derived by comparing `expirationDate` to today
- `continuingEducationRequired` — `true`/`false`, when TDLR publishes a continuing-education flag for the license
- `sourceUrl` — a live, queryable link to the official record on the Texas Open Data Portal
- `recordType: "license"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `byName` | `byName` or `byLicenseNumber` |
| `nameQuery` | string | `Smith` | License holder or business name (mode=byName); matches either field |
| `licenseNumber` | string | `11484` | TDLR license number (mode=byLicenseNumber) |
| `licenseType` | select | – | One of 84 TDLR trade categories |
| `countyFilter` | string | – | Texas county name (e.g. `Harris`), matches business or mailing county |
| `statusFilter` | select | – | `active` or `expired` |
| `maxItems` | int | `20` | Hard cap on emitted license records (1–5000) |

#### Example: search by name

```json
{
  "mode": "byName",
  "nameQuery": "Smith",
  "maxItems": 20
}
````

#### Example: active cosmetology operators in Harris County

```json
{
  "mode": "byName",
  "nameQuery": "Garcia",
  "licenseType": "Cosmetology Operator",
  "countyFilter": "Harris",
  "statusFilter": "active",
  "maxItems": 50
}
```

#### Example: direct license number lookup

```json
{
  "mode": "byLicenseNumber",
  "licenseNumber": "11484",
  "licenseType": "A/C Contractor"
}
```

#### Example: browse a trade category

```json
{
  "mode": "byName",
  "nameQuery": "a",
  "licenseType": "Tow Truck Operator (Consent Tow)",
  "maxItems": 100
}
```

### Use cases

- **Contractor vetting** — confirm an electrician, HVAC tech, or contractor's TDLR license is active before hiring
- **Compliance & HR** — verify cosmetology/barbering staff licenses across multiple salon locations
- **Towing & auto industry** — check tow truck operator or auto parts recycler licensing status
- **Property tax industry** — validate property tax consultant/appraiser credentials
- **Lead & vendor validation** — confirm a business's TDLR license number resolves to a real, active license
- **Market research** — enumerate licensed businesses by trade category and county

### FAQ

**What is the data source?**
The Texas Department of Licensing and Regulation's official license dataset, published on the Texas Open Data Portal (`data.texas.gov`). This actor is an independent, third-party tool and is not affiliated with or endorsed by TDLR or the State of Texas.

**Why not scrape the TDLR search website directly?**
The interactive search UI was unreachable during testing (a persistent connection-level block affecting all external access, not a CAPTCHA or IP rate limit). The Texas Open Data Portal serves the identical underlying license records as a stable, public API, so no data or functionality is lost.

**How fresh is the data?**
The Texas Open Data Portal dataset is refreshed by TDLR on a regular cadence (typically daily). It is not a live real-time feed of the search UI, but it reflects the same licensing records.

**Why do some records lack `licenseType`?**
A small number of dataset rows don't have a trade category populated by TDLR itself; those fields are simply omitted rather than shown as blank.

**Why can the same license number return multiple records?**
TDLR assigns license numbers per trade category rather than globally, so a number like `11484` can independently belong to an A/C Technician, an A/C Contractor, a Master Electrician, and a Property Tax Consultant. Use `licenseType` to narrow to a specific one.

**Does this actor need a login, CAPTCHA solve, or proxy?**
No. The Texas Open Data Portal is fully public. The actor uses Apify's free `AUTO` proxy group only as a courtesy fallback.

**How is `licenseStatus` determined?**
It's derived by comparing the license's `expirationDate` to the current date — `active` if the expiration date is today or later, `expired` otherwise. TDLR's dataset does not publish a separate status field.

# Actor input Schema

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

How to look up licenses.

## `nameQuery` (type: `string`):

Matches either the individual owner name or the business name (e.g. `Smith` or `Star Electrical`). Case-insensitive partial match. Optional if `licenseType` and/or `countyFilter` is set — leaving it blank then browses all licenses matching those filters.

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

The TDLR license number, e.g. `11484`. Note: TDLR numbers licenses per trade category, so the same number can be shared across different license types — use `licenseType` to disambiguate.

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

Only emit licenses of this TDLR-defined trade category. Leave unset for all types.

## `countyFilter` (type: `string`):

Only emit licenses whose business or mailing county matches (e.g. `Harris`, `Travis`, `Dallas`). Case-insensitive exact match against TDLR's own county name.

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

Only emit licenses that are currently active or expired, based on the license expiration date. Leave unset for both.

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

Order results are fetched/emitted in. Defaults to license number.

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

Hard cap on emitted license records.

## Actor input object example

```json
{
  "mode": "byName",
  "nameQuery": "Smith",
  "licenseNumber": "11484",
  "licenseType": "",
  "statusFilter": "",
  "sortBy": "licenseNumber",
  "maxItems": 20
}
```

# Actor output Schema

## `licenses` (type: `string`):

Dataset containing all scraped TDLR license records.

# 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 = {
    "mode": "byName",
    "nameQuery": "Smith",
    "licenseNumber": "11484",
    "licenseType": "",
    "statusFilter": "",
    "sortBy": "licenseNumber",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/tdlr-texas-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 = {
    "mode": "byName",
    "nameQuery": "Smith",
    "licenseNumber": "11484",
    "licenseType": "",
    "statusFilter": "",
    "sortBy": "licenseNumber",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/tdlr-texas-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 '{
  "mode": "byName",
  "nameQuery": "Smith",
  "licenseNumber": "11484",
  "licenseType": "",
  "statusFilter": "",
  "sortBy": "licenseNumber",
  "maxItems": 20
}' |
apify call crawlerbros/tdlr-texas-license-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TDLR Texas License Search Scraper",
        "description": "Search Texas Dept. of Licensing and Regulation (TDLR) licenses across 80+ regulated trades: cosmetology, barbering, electricians, HVAC, and more. Search by name or license number, filter by trade and status, get expiration dates and contact info.",
        "version": "1.0",
        "x-build-id": "oPHbkNzHnY1QwpHFY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~tdlr-texas-license-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-tdlr-texas-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/crawlerbros~tdlr-texas-license-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-tdlr-texas-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/crawlerbros~tdlr-texas-license-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-tdlr-texas-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "byName",
                            "byLicenseNumber"
                        ],
                        "type": "string",
                        "description": "How to look up licenses.",
                        "default": "byName"
                    },
                    "nameQuery": {
                        "title": "License holder / business name (mode=byName)",
                        "type": "string",
                        "description": "Matches either the individual owner name or the business name (e.g. `Smith` or `Star Electrical`). Case-insensitive partial match. Optional if `licenseType` and/or `countyFilter` is set — leaving it blank then browses all licenses matching those filters.",
                        "default": "Smith"
                    },
                    "licenseNumber": {
                        "title": "License number (mode=byLicenseNumber)",
                        "type": "string",
                        "description": "The TDLR license number, e.g. `11484`. Note: TDLR numbers licenses per trade category, so the same number can be shared across different license types — use `licenseType` to disambiguate."
                    },
                    "licenseType": {
                        "title": "Filter by license type / trade category",
                        "enum": [
                            "",
                            "A/C CE Provider",
                            "A/C Contractor",
                            "A/C Technician",
                            "Appliance Installation Contractor",
                            "Appliance Installer",
                            "Apprentice Electrician",
                            "Apprentice Sign Electrician",
                            "Associate Auctioneer",
                            "Auctioneer",
                            "Auctioneer CE Provider",
                            "Barber School",
                            "Behavior Analyst",
                            "Behavior Analyst Assistant",
                            "Boiler Authorized Inspection Agency",
                            "Boiler Inspectors",
                            "Class A Barber",
                            "Cosmetology CE Provider",
                            "Cosmetology Esthetician",
                            "Cosmetology Eyelash Extension Specialist",
                            "Cosmetology Hair Weaving Specialist",
                            "Cosmetology Hair Weaving Specialist/Esthetician",
                            "Cosmetology Junior College",
                            "Cosmetology Manicurist",
                            "Cosmetology Manicurist/Esthetician",
                            "Cosmetology Operator",
                            "Cosmetology Private School",
                            "Cosmetology Vocational/High School",
                            "CS AMATEUR PROMOTER (Business)",
                            "CS CONTESTANT",
                            "CS JUDGE",
                            "CS MANAGER",
                            "CS PROMOTER (Business)",
                            "CS REFEREE",
                            "Devices",
                            "Distributor/Wholesaler",
                            "Electrical Contractor",
                            "Electrical Sign Contractor",
                            "Electrician Apprenticeship Program",
                            "Electrician CE Provider",
                            "Elevator Contractor",
                            "Elevator Responsible Party",
                            "Elevator Responsible Party CE Provider",
                            "Esthetician Establishment",
                            "Eyelash Extension Establishment",
                            "Full Service Establishment",
                            "Hair Weaving  Establishment",
                            "Journeyman Electrician",
                            "Journeyman Industrial Electrician",
                            "Journeyman Lineman Electrician",
                            "Journeyman Sign Electrician",
                            "Licensed Breeder",
                            "Maintenance Electrician",
                            "Manicurist Establishment",
                            "Manicurist/Esthetician Establishment",
                            "Master Electrician",
                            "Master Sign Electrician",
                            "Mini Establishment",
                            "Mobile Establishment",
                            "Professional Employer Organization",
                            "Professional Employer Organization (Limited license)",
                            "Property Tax Appraiser",
                            "Property Tax Assessor/Collector",
                            "Property Tax Collector",
                            "Property Tax Consultant",
                            "Property Tax Consultant CE Provider",
                            "Property Tax Professional CE Provider",
                            "Property Tax Professional Core Education Provider",
                            "Qualified Elevator Inspector",
                            "Registered Accessibility Specialist",
                            "Registered Accessibility Specialist CE Provider",
                            "Residential Wireman",
                            "Service Company",
                            "Service Contract Provider",
                            "Service Technician",
                            "Supplier",
                            "Tow Operator CE Provider",
                            "Tow Truck Operator (Consent Tow)",
                            "Tow Truck Operator (Incident Management)",
                            "Tow Truck Operator (Private Property)",
                            "Used Auto Parts Recycler",
                            "VSF Employee",
                            "Water Well Driller/Pump Installer",
                            "Water Well Driller/Pump Installer Apprentice",
                            "Water Well Driller/Pump Installer CE Provider"
                        ],
                        "type": "string",
                        "description": "Only emit licenses of this TDLR-defined trade category. Leave unset for all types.",
                        "default": ""
                    },
                    "countyFilter": {
                        "title": "Filter by Texas county (optional)",
                        "type": "string",
                        "description": "Only emit licenses whose business or mailing county matches (e.g. `Harris`, `Travis`, `Dallas`). Case-insensitive exact match against TDLR's own county name."
                    },
                    "statusFilter": {
                        "title": "Filter by license status",
                        "enum": [
                            "",
                            "active",
                            "expired"
                        ],
                        "type": "string",
                        "description": "Only emit licenses that are currently active or expired, based on the license expiration date. Leave unset for both.",
                        "default": ""
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "licenseNumber",
                            "ownerName",
                            "businessName",
                            "expirationDate"
                        ],
                        "type": "string",
                        "description": "Order results are fetched/emitted in. Defaults to license number.",
                        "default": "licenseNumber"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on emitted license records.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
