Centers for Medicare & Medicaid Services Data API1.0.0OAS3
What's new
Attention: On September 29, 2026, Data.CMS.gov published its Public API Open Data Catalog at [/data.json] using the new DCAT-US v3.0 standard. The legacy DCAT-US 1.1 catalog endpoint will continue to be available until March 31, 2027 and can now be found at: [/v1-1-data.json].
DCAT-US v3.0 is the federal metadata standard for open data catalogs and replaces the legacy DCAT-US 1.1 standard. This update aligns with requirements established under the Office of Management and Budget (OMB) Memorandum M-25-05 and supports the goals of the Evidence Act and government-wide open data policies by improving the consistency, interoperability, and discoverability of CMS data assets.
For more information about the updated DCAT-US v3.0 standards, including code examples, download our API FAQ document.
API documentation
Explore the documentation and examples to integrate with our Public API Open Data Catalog.
Our FAQ document contains answers to common questions and sample code for frequently used tasks. It is available as an accessible PDF and as a machine-readable text file for coding agents.
API integrations
Our API responses are in a JSON format. To integrate your endpoint requests with the data.cms.gov Public API, follow these steps:
- Find your Dataset & its Unique Identifier
- Search for your dataset and visit its 'overview' page. Click on ‘Access API’ and then on the ‘API Docs for the Dataset’ link.
- Integrate your Dataset Endpoint Paths
- Dataset API endpoints have this structure: data.cms.gov/data-api/v1/dataset/{{dataset_id}}/data. Use this URL with your dataset ID obtained from Step 1.
- Integrate your API Endpoint Requests
- The system uses the JSONAPI query syntax.
- The simplest, most common filter is a key-value filter: ?filter[field_name]=value&filter[field_other]=value.
- Examples
Exact match search on 1 column
To filter ‘‘Medicare Fee-For-Service Public Provider Enrollment’ Dataset, by column ‘PROVIDER_TYPE_DESC’, use the following request: data.cms.gov/data-api/v1/dataset/2457ea29-fc82-48b0-86ec-3b0755de7515/data?filter[PROVIDER_TYPE_DESC]=PRACTITIONER%20-%20GENERAL%20PRACTICE
- ‘Contains’ search on 1 column
To filter the ‘Medicare Fee-For-Service Public Provider Enrollment’ Dataset and find all rows that contain ‘SUPPLIER’ in the ‘PROVIDER_TYPE_DESC’ column, the request is:
data.cms.gov/data-api/v1/dataset/2457ea29-fc82-48b0-86ec-3b0755de7515/data?filter[example][condition][path]=PROVIDER_TYPE_DESC&filter[example][condition][operator]=CONTAINS&filter[example][condition][value]=SUPPLIER Combination search on 2 columns To filter the ‘Medicare Fee-For-Service Public Provider Enrollment’ Dataset and find all rows that contain ‘PRACTITIONER’ in the ‘PROVIDER_TYPE_DESC’ column where the 'STATE_CD' is 'MD', the request is: data.cms.gov/data-api/v1/dataset/2457ea29-fc82-48b0-86ec-3b0755de7515/data?filter[filter-1][condition][path]=PROVIDER_TYPE_DESC&filter[filter-1][condition][operator]=CONTAINS&filter[filter-1][condition][value]=PRACTITIONER&filter[filter-2][condition][path]=STATE_CD&filter[filter-2][condition][operator]==&filter[filter-2][condition][value]=MD
Refer to the Drupal documentation for more information on filtering API requests.
- Examples
- Integrate your API Endpoint Requests to support paging
- API Responses are paged and support a max page size of 5000 rows. Use the size & offset query parameters to page through the data, as shown below:
- 1st example: this request returns the first 50 rows of a dataset: data.cms.gov/data-api/v1/dataset/2457ea29-fc82-48b0-86ec-3b0755de7515/data?size=50&offset=0
- 2nd example: this request returns the next 50 rows (51 - 100):
data.cms.gov/data-api/v1/dataset/2457ea29-fc82-48b0-86ec-3b0755de7515/data?size=50&offset=50
- API Responses are paged and support a max page size of 5000 rows. Use the size & offset query parameters to page through the data, as shown below:
Additional information
The Application Programming Interface (API) offers access to the Centers for Medicare & Medicaid Services public data allowing you to interactively analyze our datasets in real-time. Our APIs are organized around REST and have predictable resource-oriented URLs, accept form-encoded requests and returns JSON & JSON:API encoded responses and uses standard HTTP response codes.

