> For the complete documentation index, see [llms.txt](https://docs.dataplex-consulting.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dataplex-consulting.com/data-catalog/cms-nppes-provider-dataset.md).

# CMS NPPES Provider Dataset

### About the Dataset

The CMS NPPES Provider Dataset is a comprehensive collection of relational tables tracking all Centers for Medicare & Medicaid Services (CMS) National Plan and Provider Enumeration System (NPPES) unique identification numbers (NPI) and attributes for covered health providers. Available on the Snowflake Marketplace, this dataset offers:

* Address and contact information
* License numbers across states
* Other identifiers
* Business names
* Provider taxonomies
* A full taxonomy table broken down by code, grouping, and classification

The dataset is updated weekly with delta changes and undergoes a full refresh monthly, ensuring up-to-date information.

{% hint style="info" %}
**Get Full Access** | [Snowflake Marketplace](https://app.snowflake.com/marketplace/listing/GZT1Z125KD9/dataplex-consulting-data-products-cms-nppes-provider-dataset) | [Databricks](https://checkout.dataplex-consulting.com/b/7sY8wI3n5eKs7rW9y4bQY02) | [Databricks Marketplace](https://dbc-57d84859-e152.cloud.databricks.com/marketplace/provider/listings/43ddafa7-17bf-439b-be48-ce48e2785c23?o=3249760874003130) | [Free Trial](https://trial.dataplex-consulting.com)
{% endhint %}

### Dataset Features

* **Comprehensive Coverage**: Includes all HIPAA-covered healthcare providers
* **Regular Updates**: Weekly delta updates and monthly full refreshes
* **Rich Provider Information**: Detailed attributes for each provider
* **Normalized Structure**: Organized into relational tables for efficient querying

### Data Quality and Maintenance

Dataplex Consulting & Data Products prioritizes data quality through:

* Automated data quality checks in all pipelines
* Daily monitoring of ingestion and ETL jobs
* Timely delivery of high-quality data designed for seamless ingestion

### Business Applications

Users can query various provider attributes, including:

* Specialization
* Location
* Address
* Taxonomy
* Licenses
* Identifiers
* Contact data

### Example Use Cases

1. Identify all active providers with a specific primary taxonomy
2. Find all dental providers in a particular city
3. Retrieve all license numbers and states for a specific provider
4. Discover recently deactivated providers

{% hint style="success" %}
**Ready to access NPI Registry data?**

Questions? [Contact our team](mailto:support@dataplex-consulting.com) for a walkthrough.
{% endhint %}

| Platform       | Action                                                                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Snowflake**  | [Get on Marketplace →](https://app.snowflake.com/marketplace/listing/GZT1Z125KD9/dataplex-consulting-data-products-cms-nppes-provider-dataset)          |
| **Databricks** | [Subscribe →](https://checkout.dataplex-consulting.com/b/7sY8wI3n5eKs7rW9y4bQY02) \| [Start 14-Day Free Trial →](https://trial.dataplex-consulting.com) |

### Data Structure

The dataset is organized into several interconnected tables:

* PROVIDERS
* PROVIDERS\_ADDRESSES
* PROVIDERS\_LICENSES
* PROVIDERS\_IDENTIFIERS
* PROVIDERS\_TAXONOMIES — per-NPI taxonomy rows. Each row carries `PROVIDER_LICENSE_NUMBER` + `PROVIDER_LICENSE_STATE_CODE` for the license associated with that taxonomy. The same license can repeat across rows when one state license covers several specialties; nullable for taxonomies without an associated license (e.g., student or training-program codes).
* TAXONOMIES

#### Entity Relationship Diagram

![CMS NPPES Provider Entity Relationship](/files/2DJG1eUPTH0KTMZy9Gex)

### Platform Schema Reference

This dataset is available on both Snowflake and Databricks. The table names are the same, but the schema prefix differs:

| Platform       | Schema    | Example             |
| -------------- | --------- | ------------------- |
| **Snowflake**  | `dwv`     | `dwv.providers`     |
| **Databricks** | `npi_dwv` | `npi_dwv.providers` |

The examples below show queries for both platforms using tabs.

### Sample Queries

#### 1. Find providers with a specific primary taxonomy

{% tabs %}
{% tab title="Snowflake" %}

```sql
SELECT p.npi,
       p.entity_type_value AS entity_type,
       p.provider_organization_name,
       p.provider_enumeration_date,
       p.provider_first_name,
       p.provider_other_last_name,
       p.provider_gender_code,
       p.authorized_official_telephone_number
FROM dwv.providers p
JOIN dwv.providers_taxonomies pt ON p.id = pt.provider_id
JOIN dwv.taxonomies t ON pt.taxonomy_id = t.id
WHERE pt.primary
  AND t.code = '315D00000X';
```

{% endtab %}

{% tab title="Databricks" %}

```sql
SELECT p.npi,
       p.entity_type_value AS entity_type,
       p.provider_organization_name,
       p.provider_enumeration_date,
       p.provider_first_name,
       p.provider_other_last_name,
       p.provider_gender_code,
       p.authorized_official_telephone_number
FROM npi_dwv.providers p
JOIN npi_dwv.providers_taxonomies pt ON p.id = pt.provider_id
JOIN npi_dwv.taxonomies t ON pt.taxonomy_id = t.id
WHERE pt.primary
  AND t.code = '315D00000X';
```

{% endtab %}
{% endtabs %}

#### 2. Show every taxonomy a provider holds with its associated license

Each row in `PROVIDERS_TAXONOMIES` carries the license number + state for that taxonomy. No JOIN to `PROVIDERS_LICENSES` needed.

{% tabs %}
{% tab title="Snowflake" %}

```sql
SELECT p.npi,
       p.provider_last_name AS last_name,
       p.provider_first_name AS first_name,
       t.code AS taxonomy_code,
       t.classification,
       t.specialization,
       pt.primary AS is_primary_taxonomy,
       pt.provider_license_number,
       pt.provider_license_state_code
FROM dwv.providers p
JOIN dwv.providers_taxonomies pt ON p.id = pt.provider_id
JOIN dwv.taxonomies t ON pt.taxonomy_id = t.id
WHERE p.npi = 1649563966
ORDER BY pt.primary DESC, t.code;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
SELECT p.npi,
       p.provider_last_name AS last_name,
       p.provider_first_name AS first_name,
       t.code AS taxonomy_code,
       t.classification,
       t.specialization,
       pt.primary AS is_primary_taxonomy,
       pt.provider_license_number,
       pt.provider_license_state_code
FROM npi_dwv.providers p
JOIN npi_dwv.providers_taxonomies pt ON p.id = pt.provider_id
JOIN npi_dwv.taxonomies t ON pt.taxonomy_id = t.id
WHERE p.npi = 1649563966
ORDER BY pt.primary DESC, t.code;
```

{% endtab %}
{% endtabs %}

#### 3. Query dental providers in Houston, Texas

{% tabs %}
{% tab title="Snowflake" %}

```sql
SELECT p.npi,
       p.entity_type_value AS entity_type,
       p.provider_organization_name,
       p.provider_enumeration_date,
       p.provider_first_name,
       p.provider_last_name,
       p.provider_gender_code,
       p.authorized_official_telephone_number,
       pa.address_type,
       pa.street1,
       pa.street2,
       pa.city,
       pa.state,
       t.classification AS taxonomy_classification,
       t.grouping AS taxonomy_grouping
FROM dwv.providers p
JOIN dwv.providers_taxonomies pt ON p.id = pt.provider_id
JOIN dwv.taxonomies t ON pt.taxonomy_id = t.id
JOIN dwv.providers_addresses pa ON p.id = pa.provider_id
WHERE pa.state = 'TX'
  AND pa.city = 'HOUSTON'
  AND t.display_name LIKE '%Dentist%';
```

{% endtab %}

{% tab title="Databricks" %}

```sql
SELECT p.npi,
       p.entity_type_value AS entity_type,
       p.provider_organization_name,
       p.provider_enumeration_date,
       p.provider_first_name,
       p.provider_last_name,
       p.provider_gender_code,
       p.authorized_official_telephone_number,
       pa.address_type,
       pa.street1,
       pa.street2,
       pa.city,
       pa.state,
       t.classification AS taxonomy_classification,
       t.grouping AS taxonomy_grouping
FROM npi_dwv.providers p
JOIN npi_dwv.providers_taxonomies pt ON p.id = pt.provider_id
JOIN npi_dwv.taxonomies t ON pt.taxonomy_id = t.id
JOIN npi_dwv.providers_addresses pa ON p.id = pa.provider_id
WHERE pa.state = 'TX'
  AND pa.city = 'HOUSTON'
  AND t.display_name LIKE '%Dentist%';
```

{% endtab %}
{% endtabs %}

***

## Get Started

{% hint style="success" %}
**NPI Registry Data Access**

### Choose Your Platform

{% endhint %}

| Platform       | Get Access                                                                                                                                                                                                                                 | Free Trial                                                         |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| **Snowflake**  | [Get on Marketplace →](https://app.snowflake.com/marketplace/listing/GZT1Z125KD9/dataplex-consulting-data-products-cms-nppes-provider-dataset)                                                                                             | Available via Marketplace                                          |
| **Databricks** | [Subscribe →](https://checkout.dataplex-consulting.com/b/7sY8wI3n5eKs7rW9y4bQY02) or [Marketplace →](https://dbc-57d84859-e152.cloud.databricks.com/marketplace/provider/listings/43ddafa7-17bf-439b-be48-ce48e2785c23?o=3249760874003130) | [Start 14-Day Free Trial →](https://trial.dataplex-consulting.com) |

|                  |                                                         |
| ---------------- | ------------------------------------------------------- |
| **Includes**     | All provider tables, weekly updates, full documentation |
| **Support**      | Email support included                                  |
| **Cancellation** | Cancel anytime, no long-term commitment                 |

### Support and Contact

For questions or assistance with the CMS NPI Provider Dataset, please contact:

Email: <support@dataplex-consulting.com>

### About Dataplex

Dataplex Consulting & Data Products delivers turnkey, analytics-ready data products that make complex public and commercial data easy to use across modern data platforms. Our data pipelines include automated quality checks and active monitoring to ensure timely, reliable, and well-structured data that is ready for downstream analytics, machine learning, and operational use.

In addition to data products, Dataplex provides data engineering and analytics consulting services to organizations of all sizes. We bring deep, hands-on experience supporting both early-stage companies and large enterprises, helping teams build scalable data platforms, improve data reliability, and become more data-driven.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dataplex-consulting.com/data-catalog/cms-nppes-provider-dataset.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
