CMS Medicare DRG Grouper
Centers for Medicare & Medicaid Services · Health
CMS MS-DRG (Medicare Severity Diagnosis Related Groups) grouper assigns DRG codes based on ICD-10-CM diagnoses and ICD-10-PCS procedures. Essential for inpatient hospital reimbursement calculations, case mix index, and hospital billing.
Authentication
Sample Requests
Query CMS Inpatient Prospective Payment System DRG data
Hover any highlighted part to learn what it does
curl -X GET "https://www.cms.gov/medicare/payment/prospective-payment-systems/acute-inpatient-pps?limit=10&offset=0"
import requests
params = {
"limit": "10",
"offset": "0"
}
response = requests.get(
"https://www.cms.gov/medicare/payment/prospective-payment-systems/acute-inpatient-pps",
params=params,
)
print(response.json())const url = new URL('https://www.cms.gov/medicare/payment/prospective-payment-systems/acute-inpatient-pps');
url.searchParams.set('limit', '10');
url.searchParams.set('offset', '0');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://www.cms.gov/medicare/payment/prospective-payment-systems/acute-inpatient-pps")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("offset", "0")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://www.cms.gov/medicare/payment/prospective-payment-systems/acute-inpatient-pps")
uri.query = URI.encode_www_form({
"limit" => "10",
"offset" => "0"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://www.cms.gov/medicare/payment/prospective-payment-systems/acute-inpatient-pps?" . http_build_query([
"limit" => "10",
"offset" => "0"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- No authentication required — public CMS software download
- Download the MS-DRG Grouper software from https://www.cms.gov (free for non-commercial use)
- For web-based grouping, use the 3M or Optum encoder APIs (paid) that implement the CMS logic
- The CMS FY2025 definition manual lists all valid DRG codes with relative weights
- DRG lookup via IPPS API: GET https://data.cms.gov/api/1/datastore/query/ipps-drg
What can you build with CMS Medicare DRG Grouper?
CMS Medicare DRG Grouper is a Health API. Developers commonly use health APIs for:
- accessing medical reference data and drug information
- building patient-facing health tracking apps
- integrating with EHR and telemedicine platforms
- looking up ICD codes and clinical terminology
- powering wellness and fitness applications
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. CMS Medicare DRG Grouper is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?