# NPPES NPI Healthcare Provider Crawler (`jungle_synthesizer/nppes-npi-crawler`) Actor

Crawl healthcare provider records from the CMS NPPES NPI Registry. Extract NPI numbers, names, credentials, specialties, taxonomy codes, practice addresses, and phone numbers. Filter by state, specialty, city, ZIP, and provider type. Ideal for pharma sales, medical devices, and provider directories.

- **URL**: https://apify.com/jungle\_synthesizer/nppes-npi-crawler.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation, Business, Other
- **Stats:** 2 total users, 1 monthly users, 83.3% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## NPPES NPI Healthcare Provider Crawler

Extract healthcare provider records from the [CMS NPPES NPI Registry](https://npiregistry.cms.hhs.gov/search), the official federal database of 2.5M+ National Provider Identifiers. Returns NPI numbers, names, credentials, specialties, taxonomy codes, practice addresses, phone numbers, license information, and gender for individual providers and healthcare organizations across all 50 US states.

---

### Features

- Queries the official CMS NPPES REST API (v2.1) for structured JSON data -- no HTML scraping
- Filter by state, specialty/taxonomy code, city, ZIP code, provider type, or provider name
- Returns 25+ fields per record including practice and mailing addresses with formatted phone numbers
- Supports both individual providers (NPI-1: doctors, nurses, therapists) and organizations (NPI-2: hospitals, clinics, labs)
- State-only searches automatically enumerate through name prefixes to work around the API's minimum-criteria requirement
- No proxy required -- the NPPES API is a free, open government service with no authentication or rate limiting

---

### Who Uses NPI Provider Data?

- **Pharma sales teams** -- Build targeted call lists of physicians by specialty and geography
- **Medical device companies** -- Identify orthopedic surgeons, radiologists, or other specialists in target markets
- **Healthcare SaaS platforms** -- Enrich provider directories with verified NPI numbers and taxonomy codes
- **Insurance companies** -- Validate provider credentials and network participation
- **Market researchers** -- Analyze provider density, specialty distribution, and practice patterns by region
- **Recruiting firms** -- Find healthcare professionals by specialty, location, and credential type

---

### How It Works

1. **Configure filters** -- Select states, specialties, cities, or ZIP codes. Combine filters to narrow results.
2. **API queries** -- The crawler builds optimized queries against the CMS NPPES API, paginating through results in batches of 200.
3. **Data transformation** -- Raw API responses are normalized: phone numbers formatted as (XXX) XXX-XXXX, ZIP codes hyphenated, taxonomy codes mapped to human-readable descriptions.
4. **Export** -- Clean JSON records land in your Apify dataset. Set `maxItems` to control volume.

---

### Input

#### Search by state and specialty

```json
{
  "states": ["AZ"],
  "taxonomyCode": "207R00000X",
  "maxItems": 100
}
````

#### Search by ZIP code

```json
{
  "zip": "85016",
  "maxItems": 50
}
```

#### Search by city and state

```json
{
  "states": ["WY"],
  "city": "Cheyenne",
  "maxItems": 100
}
```

#### Search by provider name

```json
{
  "states": ["CA"],
  "lastName": "Smith",
  "providerType": "NPI-1",
  "maxItems": 50
}
```

#### Search organizations only

```json
{
  "states": ["TX"],
  "providerType": "NPI-2",
  "taxonomyCode": "261QM1300X",
  "maxItems": 100
}
```

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| states | array | `["AZ"]` | One or more US state codes. Filters by practice address state. |
| taxonomyCode | string | all | NUCC taxonomy code for specialty filtering (e.g., `207R00000X` for Internal Medicine). |
| city | string | -- | City name. Works best combined with a state filter. |
| zip | string | -- | ZIP code. Can be used as the sole filter. |
| providerType | string | all | `NPI-1` for individuals (doctors, nurses), `NPI-2` for organizations (hospitals, clinics). |
| lastName | string | -- | Provider last name. Supports `*` wildcard with 2+ leading characters (e.g., `Smi*`). |
| organizationName | string | -- | Organization name search. |
| maxItems | integer | 100 | Maximum records to return. |
| proxyConfiguration | object | no proxy | Proxy settings. Government API typically needs no proxy. |

#### Search Criteria Rules

The NPPES API requires at least two search criteria. A state alone is not sufficient. Valid combinations:

- State + specialty (taxonomyCode)
- State + city
- State + last name or organization name
- ZIP code alone
- State alone (the crawler auto-generates name prefix queries to satisfy the API requirement)

***

### Output Fields

```json
{
  "npi": "1234567890",
  "provider_type": "NPI-1",
  "first_name": "JANE",
  "last_name": "SMITH",
  "credential": "MD",
  "organization_name": "",
  "taxonomy_code": "207R00000X",
  "taxonomy_description": "Internal Medicine",
  "specialty": "Internal Medicine",
  "license_number": "MD12345",
  "license_state": "AZ",
  "address_practice": "1234 E CAMELBACK RD",
  "city_practice": "PHOENIX",
  "state_practice": "AZ",
  "zip_practice": "85016-2345",
  "phone_practice": "(602) 555-0100",
  "fax_practice": "(602) 555-0101",
  "address_mailing": "PO BOX 1234",
  "city_mailing": "PHOENIX",
  "state_mailing": "AZ",
  "zip_mailing": "85001-1234",
  "phone_mailing": "(602) 555-0100",
  "gender": "F",
  "sole_proprietor": "NO",
  "enumeration_date": "2005-06-15",
  "last_update_date": "2024-01-20",
  "other_identifiers": ["MEDICAID: 123456: (AZ)"]
}
```

| Field | Description |
|-------|-------------|
| npi | 10-digit National Provider Identifier |
| provider\_type | `NPI-1` (individual) or `NPI-2` (organization) |
| first\_name | Provider first name (individuals only) |
| last\_name | Provider last name (individuals only) |
| credential | Professional credential: MD, DO, NP, PA, DDS, etc. |
| organization\_name | Organization legal name (organizations only) |
| taxonomy\_code | NUCC Healthcare Provider Taxonomy Code |
| taxonomy\_description | Human-readable taxonomy description |
| specialty | Primary specialty derived from taxonomy |
| license\_number | State license number |
| license\_state | State that issued the license |
| address\_practice | Practice location street address |
| city\_practice | Practice city |
| state\_practice | Practice state abbreviation |
| zip\_practice | Practice ZIP code (formatted as XXXXX-XXXX) |
| phone\_practice | Practice phone formatted as (XXX) XXX-XXXX |
| fax\_practice | Practice fax number |
| address\_mailing | Mailing street address |
| city\_mailing | Mailing city |
| state\_mailing | Mailing state |
| zip\_mailing | Mailing ZIP code |
| phone\_mailing | Mailing phone number |
| gender | M or F (individuals only) |
| sole\_proprietor | YES, NO, or X |
| enumeration\_date | Date NPI was assigned (YYYY-MM-DD) |
| last\_update\_date | Date record was last updated (YYYY-MM-DD) |
| other\_identifiers | Array of other IDs (Medicaid, Medicare, etc.) as formatted strings |

***

### Supported Taxonomy Codes

The taxonomy dropdown includes the most common healthcare provider specialties:

| Code | Specialty |
|------|-----------|
| 207R00000X | Internal Medicine |
| 208D00000X | General Practice |
| 207Q00000X | Family Medicine |
| 207V00000X | Obstetrics & Gynecology |
| 2084P0800X | Psychiatry |
| 207X00000X | Orthopedic Surgery |
| 207Y00000X | Otolaryngology |
| 208600000X | Surgery |
| 2085R0001X | Radiology |
| 207RG0100X | Gastroenterology |
| 204E00000X | Oral & Maxillofacial Surgery |
| 1223G0001X | General Dentistry |
| 363L00000X | Nurse Practitioner |
| 363A00000X | Physician Assistant |
| 152W00000X | Optometrist |
| 367500000X | Certified Registered Nurse Anesthetist |
| 261QM1300X | Medical Lab |
| 332B00000X | Durable Medical Equipment Supplier |

You can also enter any valid NUCC taxonomy code not listed in the dropdown by using the API directly.

***

### Performance

- **Speed:** ~200 records per second. A 100-record run completes in under 5 seconds.
- **Memory:** 256 MB default. Sufficient for runs of any size since data streams through in batches.
- **No proxy cost:** The NPPES API is a free government service. No Apify proxy credits are consumed.
- **Pricing:** Pay-per-event at $0.001 per record ($1 per 1,000 records) plus $0.10 per actor start.

***

### Data Source

All data comes from the [CMS National Plan & Provider Enumeration System (NPPES)](https://npiregistry.cms.hhs.gov/search), maintained by the Centers for Medicare & Medicaid Services (CMS), a division of the U.S. Department of Health and Human Services. The NPPES NPI Registry is updated continuously as providers create or modify their records. The database contains 2.5M+ active NPI records.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `providerType` (type: `string`):

Filter by provider type. NPI-1 = Individual providers (doctors, nurses). NPI-2 = Organizations (hospitals, clinics, labs).

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

Select one or more U.S. states to search. Filters by practice address state. Requires at least one additional filter (city, ZIP, taxonomy, or name).

## `taxonomyCode` (type: `string`):

Filter by NUCC taxonomy code for provider specialty. Common codes: 207R (Internal Medicine), 208D (General Practice), 207Q (Family Medicine). Leave empty for all specialties.

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

Filter by city name. Works best combined with a state filter.

## `zip` (type: `string`):

Filter by ZIP code (practice address). Can be used alone or with other filters.

## `lastName` (type: `string`):

Search by provider last name (individual providers only). Supports partial match with \* wildcard (e.g. 'Smi\*').

## `organizationName` (type: `string`):

Search by organization name (organizational providers only). Supports partial match.

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

Maximum number of provider records to return.

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

Select proxies. The NPPES API is a government service and typically does not require proxies.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "states": [
    "AZ"
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "providerType": "",
    "states": [
        "AZ"
    ],
    "taxonomyCode": "",
    "city": "",
    "zip": "",
    "lastName": "",
    "organizationName": "",
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/nppes-npi-crawler").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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "providerType": "",
    "states": ["AZ"],
    "taxonomyCode": "",
    "city": "",
    "zip": "",
    "lastName": "",
    "organizationName": "",
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/nppes-npi-crawler").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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "providerType": "",
  "states": [
    "AZ"
  ],
  "taxonomyCode": "",
  "city": "",
  "zip": "",
  "lastName": "",
  "organizationName": "",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call jungle_synthesizer/nppes-npi-crawler --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jungle_synthesizer/nppes-npi-crawler",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NPPES NPI Healthcare Provider Crawler",
        "description": "Crawl healthcare provider records from the CMS NPPES NPI Registry. Extract NPI numbers, names, credentials, specialties, taxonomy codes, practice addresses, and phone numbers. Filter by state, specialty, city, ZIP, and provider type. Ideal for pharma sales, medical devices, and provider directories.",
        "version": "1.0",
        "x-build-id": "qPC5MORwXhxJtTgm8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~nppes-npi-crawler/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-nppes-npi-crawler",
                "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/jungle_synthesizer~nppes-npi-crawler/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-nppes-npi-crawler",
                "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/jungle_synthesizer~nppes-npi-crawler/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-nppes-npi-crawler",
                "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": [
                    "sp_intended_usage",
                    "sp_improvement_suggestions"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "providerType": {
                        "title": "Provider Type",
                        "enum": [
                            "",
                            "NPI-1",
                            "NPI-2"
                        ],
                        "type": "string",
                        "description": "Filter by provider type. NPI-1 = Individual providers (doctors, nurses). NPI-2 = Organizations (hospitals, clinics, labs)."
                    },
                    "states": {
                        "title": "State Filter",
                        "type": "array",
                        "description": "Select one or more U.S. states to search. Filters by practice address state. Requires at least one additional filter (city, ZIP, taxonomy, or name).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "AL",
                                "AK",
                                "AZ",
                                "AR",
                                "CA",
                                "CO",
                                "CT",
                                "DE",
                                "DC",
                                "FL",
                                "GA",
                                "HI",
                                "ID",
                                "IL",
                                "IN",
                                "IA",
                                "KS",
                                "KY",
                                "LA",
                                "ME",
                                "MD",
                                "MA",
                                "MI",
                                "MN",
                                "MS",
                                "MO",
                                "MT",
                                "NE",
                                "NV",
                                "NH",
                                "NJ",
                                "NM",
                                "NY",
                                "NC",
                                "ND",
                                "OH",
                                "OK",
                                "OR",
                                "PA",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UT",
                                "VT",
                                "VA",
                                "WA",
                                "WV",
                                "WI",
                                "WY"
                            ],
                            "enumTitles": [
                                "Alabama",
                                "Alaska",
                                "Arizona",
                                "Arkansas",
                                "California",
                                "Colorado",
                                "Connecticut",
                                "Delaware",
                                "District of Columbia",
                                "Florida",
                                "Georgia",
                                "Hawaii",
                                "Idaho",
                                "Illinois",
                                "Indiana",
                                "Iowa",
                                "Kansas",
                                "Kentucky",
                                "Louisiana",
                                "Maine",
                                "Maryland",
                                "Massachusetts",
                                "Michigan",
                                "Minnesota",
                                "Mississippi",
                                "Missouri",
                                "Montana",
                                "Nebraska",
                                "Nevada",
                                "New Hampshire",
                                "New Jersey",
                                "New Mexico",
                                "New York",
                                "North Carolina",
                                "North Dakota",
                                "Ohio",
                                "Oklahoma",
                                "Oregon",
                                "Pennsylvania",
                                "Rhode Island",
                                "South Carolina",
                                "South Dakota",
                                "Tennessee",
                                "Texas",
                                "Utah",
                                "Vermont",
                                "Virginia",
                                "Washington",
                                "West Virginia",
                                "Wisconsin",
                                "Wyoming"
                            ]
                        }
                    },
                    "taxonomyCode": {
                        "title": "Taxonomy / Specialty Code",
                        "enum": [
                            "",
                            "207R00000X",
                            "208D00000X",
                            "207Q00000X",
                            "207V00000X",
                            "2084P0800X",
                            "207X00000X",
                            "207Y00000X",
                            "208600000X",
                            "2085R0001X",
                            "207RG0100X",
                            "204E00000X",
                            "1223G0001X",
                            "363L00000X",
                            "363A00000X",
                            "152W00000X",
                            "367500000X",
                            "261QM1300X",
                            "332B00000X"
                        ],
                        "type": "string",
                        "description": "Filter by NUCC taxonomy code for provider specialty. Common codes: 207R (Internal Medicine), 208D (General Practice), 207Q (Family Medicine). Leave empty for all specialties."
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "Filter by city name. Works best combined with a state filter."
                    },
                    "zip": {
                        "title": "ZIP Code",
                        "type": "string",
                        "description": "Filter by ZIP code (practice address). Can be used alone or with other filters."
                    },
                    "lastName": {
                        "title": "Last Name",
                        "type": "string",
                        "description": "Search by provider last name (individual providers only). Supports partial match with * wildcard (e.g. 'Smi*')."
                    },
                    "organizationName": {
                        "title": "Organization Name",
                        "type": "string",
                        "description": "Search by organization name (organizational providers only). Supports partial match."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of provider records to return.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies. The NPPES API is a government service and typically does not require proxies."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
