Medicaid Rate API
Programmatic access to Medicaid reimbursement rates across eight states. Look up outpatient fee schedules, inpatient DRG payments, and provider data in real time.
Why the API
Automate
Build rate lookups into your everyday pricing workflows.
Scale
Batch-price hundreds of claims in one call. Most responses in under one second.
Integrate
RESTful JSON. Any language, any platform.
Getting Started
Request access
Fill out the form and we'll set up your account. Usually same-day.
Get your API key
We'll send you an API key. Evaluating? We offer trial keys on request.
Start querying
Hit the endpoints. Rates back in milliseconds.
Authentication
All requests need a Bearer token in the Authorization header. Keys are scoped to specific states; a request against a state not on your key returns 403 state_not_enabled. Don't have a key? Request access.
Base URL: https://api.staterates.health/api/v1
The key must go in the Authorization header, not the URL; we reject ?api_key=… with 400 api_key_in_query so keys never end up in access logs or browser history.
Follow best practices to keep your keys safe. Don't embed secret API keys in source code or client-side applications. Instead, use your server platform's secrets vault to provide keys to your server-side applications. If your platform doesn't offer a secrets vault, set your keys in environment variables.
curl "https://api.staterates.health/api/v1/ca/outpatient/rate?billing_code=99213&npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
import os
import time
import requests
API_KEY = os.environ["STATERATES_API_KEY"]
URL = "https://api.staterates.health/api/v1/tx/inpatient/rate/batch"
def price_claims(claims, max_retries=5):
headers = {"Authorization": f"Bearer {API_KEY}"}
for attempt in range(max_retries):
resp = requests.post(URL, headers=headers,
json={"requests": claims}, timeout=30)
if resp.status_code == 429:
time.sleep(2 ** attempt) # 1s, 2s, 4s, 8s, 16s
continue
resp.raise_for_status()
return resp.json()
raise RuntimeError("rate-limited after all retries")
claims = [{
"npi": "1831128974", "billing_code": "593-4", "soi": 4,
"length_of_stay": 10, "discharge_date": "2026-03-01",
}]
print(price_claims(claims))/ca/outpatient/rateCalifornia Outpatient Rates
Look up a Medi-Cal outpatient rate by HCPCS code and provider. The returned rate reflects the applicable conversion factor, HOPD multiplier, and modifier adjustments.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS procedure code (e.g., 99213). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | OSHPD ID: California hospital identifier. |
provider_name1 required | string | Provider name (partial match, min 2 characters). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
provider_type | string | State Rates provider classification. Values: hospital, physician_office, surgical_clinic, free_clinic, podiatrist, nurse_anesthetist, other_clinic. If omitted, resolved from provider's taxonomy. |
procedure_type | string | Medi-Cal procedure type. Values: Allied Health and other programs, Anesthesia, Assistant Surgeon, Diagnostic and Treatment (EPSDT), Early and Periodic Screening, Expanded Access to Primary Care (EAPC), Injection, Justice Involved, Local Educational Agency, Medi-Cal Waiver, Medicine, Multipurpose Senior Services Program (MSSP), Palliative Care, Pathology and Clinical Laboratory, Podiatrist, Primary Surgeon, Psychology Services for Mental Health Expansion, Radiology, Targeted Rate Increase, Vision Care. Valid values vary by billing code; if omitted, the most common type is selected automatically. |
service_type | string | Medi-Cal service type. Values: ABORTION, ANESTHESIOLOGY, ANESTHESIOLOGY (OB), Family Planning Services, FIXED PRICE, GYN, INJECTIONS, MEDICINE, MEDICINE EMERGENCY, OB (C-SECTION), OB (VAGINAL DELIVERY), OTHER OB, OTHER SURGERY, PATHOLOGY, PODIATRY MEDICINE, PODIATRY PRIMARY CARE I & II - ADULT, PODIATRY PRIMARY CARE I & II - CHILD, PODIATRY RADIOLOGY, PODIATRY SURGERY, PRIMARY CARE I, PRIMARY CARE II - ADULT, PRIMARY CARE II - CHILD, RADIOLOGY, SURGERY FIXED PRICE, SURGERY (LAPAROSCOPY GYN), TUBAL STERILIZATIONS, WELL CHILD EXAMS. Valid values vary by procedure type; if omitted, selected automatically. |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
family_planning_primary_dx | boolean | True if billed with a primary family planning diagnosis code. Adds 90.9% to the rate for qualifying E&M codes. |
emergency_room | boolean | True to use ER pricing. ER rates use a higher conversion factor with no HOPD add-on or cutback. |
modifier | string | HCPCS modifier. Values: 26 (Professional Component), TC (Technical Component). |
anesthesia_minutes | integer | Anesthesia time in minutes (anesthesia codes only). Any part of 15 minutes counts as one time unit; nurse anesthetist rates subtract one base unit and hospital providers receive the HOPD add-on automatically. Without it, anesthesia responses return the base units and conversion factor with no dollar amount. |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | OSHPD ID (hospitals) or Medi-Cal Provider Number (professionals). |
provider_name | string | Provider name. |
matched_npi | string | The NPI you searched by, when it is one of this hospital's other Medi-Cal-enrolled NPIs rather than the one in npi. Null when you searched by npi itself. |
provider_type | string | State Rates provider classification used for rate lookup. Values: hospital, physician_office, surgical_clinic, free_clinic, podiatrist, nurse_anesthetist, other_clinic. |
provider_type_label | string | Human-readable label for the State Rates provider classification (e.g., Hospital, Physician Office). |
cbsa_code | string | Core Based Statistical Area code. |
cbsa_description | string | CBSA area description. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
basic_rate | decimal | Basic rate (unit value) from fee schedule. |
conversion_factor | decimal | Conversion factor applied to basic rate. |
modifier | string | HCPCS modifier applied (e.g., 26, TC). |
modifier_adjustment | decimal | Modifier adjustment factor (e.g., 0.29 for 26, 0.71 for TC). |
cutback_ind | integer | Cutback indicator (1 = 20% reduction applied to hospital/surgical clinic rates). |
hopd_multiplier | float | Hospital Outpatient Department add-on multiplier (1.4344) when applied. |
family_planning_multiplier | float | Family Planning add-on multiplier (1.909) when applied. |
anesthesia_base_units | decimal | Published anesthesia base units (anesthesia codes only). Payment = (base units + time units) × conversion factor; the nurse anesthetist base-unit reduction appears in calculation_method. |
time_units_used | integer | Time units derived from anesthesia_minutes (any part of 15 minutes = 1 unit). |
anesthesia_minutes_used | integer | Anesthesia minutes used to derive time units (echoed from request). |
emergency_room | boolean | True if emergency room conversion factor was applied. |
procedure_type_used | string | Procedure type used for pricing. |
service_type_used | string | Service type used for pricing. |
is_default_selection | boolean | True if the API auto-selected the procedure/service type because none was specified. |
available_procedure_types | string[] | Other procedure types available for this code. Only present when defaults were used. |
available_service_types | string[] | Other service types available for this code. Only present when defaults were used. |
is_manually_priced | boolean | True if code has no fee schedule rate; payment determined per claim. |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
child_patient_used | boolean | Echo of child_patient. True when submitted as true; null otherwise. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ca/outpatient/rate?\ billing_code=99213&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"state_provider_id": "106380013",
"provider_name": "COMMUNITY HOSPITAL",
"provider_type": "hospital",
"provider_type_label": "Hospital",
"cbsa_code": "31084",
"cbsa_description": "Los Angeles-Long Beach-Anaheim, CA",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"payment_rate": "75.50",
"payment_rate_type": "fee_schedule",
"calculation_method": "4.07 (Basic Rate) × 18.55 (Conversion Factor)",
"basic_rate": "4.07",
"conversion_factor": "18.55",
"modifier": null,
"modifier_adjustment": null,
"cutback_ind": null,
"hopd_multiplier": null,
"family_planning_multiplier": null,
"anesthesia_base_units": null,
"time_units_used": null,
"anesthesia_minutes_used": null,
"emergency_room": null,
"procedure_type_used": "Medicine",
"service_type_used": "PRIMARY CARE I",
"is_default_selection": true,
"available_procedure_types": [
"Medicine",
"Targeted Rate Increase"
],
"available_service_types": [
"PRIMARY CARE I",
"PRIMARY CARE II - ADULT",
"MEDICINE"
],
"is_manually_priced": false,
"date_of_service_used": "2026-08-01",
"child_patient_used": null,
"effective_start_date": "2025-01-01",
"effective_end_date": null
}
]/ca/outpatient/rate/batchLook up multiple rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"npi": "1234567890",
"billing_code": "99213"
},
{
"npi": "1234567890",
"billing_code": "99214",
"child_patient": true
}
]
}/ca/inpatient/rateCalifornia Inpatient Claims
Look up a Medi-Cal APR-DRG inpatient payment rate, with adjustments for transfers, cost outliers, and interim claims. The admission date determines the effective rate period.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code (e.g., 593-4 for DRG 593, SOI 4). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | OSHPD ID: California hospital identifier. |
provider_name1 required | string | Hospital name (partial match). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
admit_date | string | Admission date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. California uses the admission date to determine which rate period applies. |
transfer_claim | boolean | Transfer claim. Discharge status 02, 05, 63, 65, 66, 82, 85, 91, 93, or 94 (transferred to another facility). |
interim_claim | boolean | Discharge status = 30 (interim claim). Uses per-diem calculation. |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
length_of_stay | integer | Length of stay in days. If omitted, defaults to the national average LOS for this APR-DRG. |
total_charges | decimal | Total charges from the claim. If omitted, charges are estimated for outlier calculations. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | OSHPD ID: California hospital identifier. |
provider_name | string | Provider name. |
matched_npi | string | The NPI you searched by, when it is one of this hospital's other Medi-Cal-enrolled NPIs rather than the one in npi. Null when you searched by npi itself. |
street_address | string | Hospital street address. |
city | string | Hospital city. |
zip_code | string | Hospital ZIP code. |
county | string | Hospital county. |
cbsa_code | string | CBSA code. |
cbsa_description | string | CBSA area description. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
apr_drg | string | APR-DRG code. |
soi | integer | Severity of Illness level (1–4). |
drg_base_rate | decimal | Hospital-specific DRG base rate (wage-adjusted). |
payment_relative_weight | float | Payment relative weight (casemix weight × policy adjustor). |
casemix_adjustment_factor | float | Hospital casemix adjustment factor. |
policy_adjustor_used | string | Policy adjustor letter used. Values: A, B, C, D (based on age and NICU status). |
policy_adjustor_value | float | Policy adjustor numeric value. |
designated_nicu | boolean | Whether the hospital is a designated NICU facility. |
designated_public_hospital | boolean | Whether this is a Designated Public Hospital. DPHs are reimbursed through certified public expenditures, not APR-DRG; the calculated amount is a reference value. |
advisories | array | Informational advisories (code + message), e.g. DPH_REFERENCE_PRICING on Designated Public Hospitals. Omitted from the response when there are none. |
estimated_cost | decimal | Estimated cost (total_charges × cost_to_charge_ratio). |
drg_base_payment | decimal | Base DRG payment before adjustments. |
transfer_adjustment_applied | boolean | Whether transfer adjustment was applied. |
transfer_adjusted_amount | decimal | Payment after transfer adjustment. |
outlier_adjustment_applied | boolean | Whether cost outlier adjustment was applied. |
outlier_adjustment_amount | decimal | Outlier adjustment amount. |
cost_to_charge_ratio | float | Hospital cost-to-charge ratio. |
outlier_threshold | float | Outlier threshold amount ($99,000). |
marginal_cost_percentage | float | Marginal cost percentage applied to outlier excess (0.53). |
charge_cap_applied | boolean | Whether payment was capped to total charges (lesser-of rule). |
is_interim_claim | boolean | Whether calculated as an interim claim. |
interim_per_diem_amount | float | Per diem rate for interim claim calculation. |
length_of_stay_used | integer | Length of stay used in calculation. |
national_average_los | decimal | National average LOS for this APR-DRG. |
total_charges_used | decimal | Total charges used (actual or estimated). |
total_charges_source | string | Whether charges were 'actual' or 'estimated'. |
admit_date_used | date | The admit date the rate was priced against, echoed from the request. When you omit admit_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ca/inpatient/rate?\ billing_code=593-4&\ npi=1234567890&\ length_of_stay=10&\ total_charges=150000" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"state_provider_id": "106194016",
"provider_name": "CHILDRENS HOSPITAL LOS ANGELES",
"street_address": "4650 SUNSET BLVD",
"city": "LOS ANGELES",
"zip_code": "90027",
"county": "LOS ANGELES",
"cbsa_code": "31084",
"cbsa_description": "Los Angeles-Long Beach-Anaheim, CA",
"billing_code": "593-4",
"billing_code_type": "APR-DRG",
"billing_code_description": "NEONATE BIRTHWT 750-999G W/O MAJOR PROCEDURE",
"payment_rate": "194522.35",
"payment_rate_type": "claim",
"calculation_method": "standard_drg_payment",
"apr_drg": "593",
"soi": 4,
"drg_base_rate": "8950.25",
"payment_relative_weight": 20.506,
"casemix_adjustment_factor": 1,
"policy_adjustor_used": "A",
"policy_adjustor_value": 1.0294,
"designated_nicu": true,
"estimated_cost": "216945.00",
"drg_base_payment": "183492.50",
"transfer_adjustment_applied": false,
"transfer_adjusted_amount": null,
"outlier_adjustment_applied": true,
"outlier_adjustment_amount": "11029.85",
"cost_to_charge_ratio": 0.445,
"outlier_threshold": 99000,
"marginal_cost_percentage": 0.53,
"charge_cap_applied": false,
"is_interim_claim": false,
"interim_per_diem_amount": null,
"length_of_stay_used": 10,
"national_average_los": "24.80",
"total_charges_used": "150000.00",
"total_charges_source": "actual",
"admit_date_used": "2026-08-01",
"effective_start_date": "2025-07-01",
"effective_end_date": null
}
]/ca/inpatient/rate/batchLook up multiple CA inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "593-4",
"npi": "1234567890"
},
{
"billing_code": "194-1",
"npi": "9876543210",
"length_of_stay": 5,
"total_charges": "85000",
"child_patient": true
}
]
}/ca/providers/searchCalifornia Provider Search
Search for California Medicaid providers by NPI, OSHPD ID, name, location, or taxonomy. Returns provider details with outpatient and inpatient rate availability.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
state_provider_id | string | OSHPD ID or Medi-Cal Provider Number. |
provider_name | string | Provider name (partial match, min 2 characters). |
city | string | City (partial match). |
zip_code | string | ZIP code (exact match). |
taxonomy | string | Taxonomy code filter. |
provider_type | string | State Rates provider classification. Values: hospital, physician_office, surgical_clinic, free_clinic, podiatrist, nurse_anesthetist, other_clinic. |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳state_provider_id | string | OSHPD ID or Medi-Cal Provider Number. |
↳provider_name | string | Provider name. |
↳provider_type | string | State Rates provider classification. |
↳provider_type_label | string | Human-readable label for the State Rates provider classification. |
↳entity_type | string | Individual or Organization. |
↳primary_taxonomy | string | Primary taxonomy code. |
↳city | string | City. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳street_address | string | Street address. |
↳cbsa_code | string | CBSA code. |
↳cbsa_description | string | CBSA area description. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
↳alternate_npis | string[] | Hospitals only: the other NPIs Medi-Cal enrolls this hospital under. Searching by any of them finds this row; npi stays the primary. |
↳matched_npi | string | The NPI you searched by, when it is one of this hospital's alternate NPIs rather than the one in npi. Null otherwise. |
total_results | integer | Total number of results found. |
limit_applied | integer | Limit applied to results. |
curl "https://staterates.health/api/v1/ca/providers/search?\ provider_name=community&\ city=los+angeles" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1234567890",
"state_provider_id": "106380013",
"provider_name": "COMMUNITY HOSPITAL OF LONG BEACH",
"provider_type": "hospital",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": "282N00000X",
"city": "LONG BEACH",
"state": "CA",
"zip_code": "90806",
"street_address": "1720 TERMINO AVE",
"cbsa_code": "31084",
"cbsa_description": "Los Angeles-Long Beach-Anaheim, CA",
"op_rates": true,
"ip_rates": true,
"alternate_npis": [
"1093718645"
],
"matched_npi": null
}
],
"total_results": 1,
"limit_applied": 100
}/fl/outpatient/rateFlorida Outpatient Rates
Look up a Florida Medicaid outpatient rate. HCPCS are used for professional claims, sourced from fee schedules. Hospital outpatient claims use provider-specific EAPG rates for payment.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS code (e.g., 99213) or EAPG code (e.g., 00002). |
billing_code_type | string | Code type filter. Values: HCPCS, EAPG. If omitted, returns results for all matching types. |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | FL Provider Base ID. |
provider_name1 required | string | Provider name (partial match). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
provider_type | string | State Rates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC. |
modifier | string | Modifier for component selection. Values: 26 (Professional), TC (Technical). |
place_of_service | string | Place of service. Values: facility, non_facility. Facility POS codes (19, 21, 22, 23, 24) use the facility rate. Defaults to non-facility. |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. |
paf_* | boolean | EAPG Payment Adjustor Flags (hospital only): paf_multiple_significant, paf_same_significant, paf_clinical_significant, paf_packaging, paf_repeat_ancillary, paf_bilateral, paf_terminated. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | FL Provider Base ID. |
provider_name | string | Provider name. |
provider_type | string | State Rates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC. |
provider_type_label | string | Human-readable label for the State Rates provider classification. |
fl_provider_type_code | string | Florida's own 2-digit provider type code from source files (e.g., 25 = Physician M.D., 26 = Physician D.O., 35 = APRN, 62 = Physician Assistant). |
fl_provider_type_code_description | string | Florida's description for the provider type code. |
fl_specialty_code | string | Florida's own provider specialty code from source files (e.g., 01 = General Practice, 65 = Maternal Fetal Medicine). |
fl_specialty_description | string | Florida's description for the specialty code. |
hospital_class | string | Hospital category (EAPG only). |
street_address | string | Provider street address. |
city | string | Provider city. |
county | string | Provider county. |
zip_code | string | Provider ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
modifier | string | Modifier applied (sourced from the matched rate row, not request input). |
modifier_adjustment | decimal | Derived ratio for PCI/TCI rows (pci/fsi or tci/fsi); runtime multiplier for the MODIFIER_ADJUSTMENTS carve-out (50/52/53/54/55/56/62/80). NULL on base / state-modifier rows. |
place_of_service | string | 'non_facility' / 'facility' on PRACTITIONER rows where the source has the distinction; NULL on PCI/TCI / lab / EAPG rows. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
is_manually_priced | boolean | True when Florida publishes 'By Report' instead of an amount. The code is covered, but payment is set case by case after medical review, so payment_rate is null and rate_found is false. |
prior_auth_required | boolean | Prior authorization required. |
specialty_multiplier | float | Specialty-based rate multiplier. |
age_multiplier_applied | decimal | Age multiplier if applied. |
provider_type_multiplier_applied | decimal | Provider type multiplier (0.80 for APRN/PA). |
eapg_weight | decimal | EAPG relative weight (hospital only). |
eapg_base_rate | decimal | Hospital-specific EAPG base rate. |
eapg_policy_adjustor | decimal | Hospital policy adjustor. |
eapg_childrens_addon | decimal | Children's hospital add-on. |
paf_multiple_significant | decimal | PAF: Multiple Significant Procedures adjustment. |
paf_same_significant | decimal | PAF: Same Significant Procedure adjustment. |
paf_clinical_significant | decimal | PAF: Clinical Significant Procedure adjustment. |
paf_packaging | decimal | PAF: Packaging adjustment. |
paf_repeat_ancillary | decimal | PAF: Repeat Ancillary adjustment. |
paf_bilateral | decimal | PAF: Bilateral adjustment. |
paf_terminated | decimal | PAF: Terminated Procedure adjustment. |
paf_adjustment | decimal | Combined PAF adjustment factor (product of selected flags). |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/fl/outpatient/rate?\ billing_code=99213&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"state_provider_id": null,
"provider_name": "FLORIDA MEDICAL GROUP",
"provider_type": "PRACTITIONER",
"provider_type_label": "Practitioner",
"fl_provider_type_code": "17",
"fl_provider_type_code_description": "Physician",
"fl_specialty_code": "01",
"fl_specialty_description": "General Practice",
"hospital_class": null,
"street_address": "100 MAIN ST",
"city": "MIAMI",
"county": "MIAMI-DADE",
"zip_code": "33101",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"modifier": null,
"modifier_adjustment": null,
"place_of_service": "non_facility",
"payment_rate": "47.41",
"payment_rate_type": "fee_schedule",
"calculation_method": "$47.41 (Practitioner Fee Schedule, Non-Facility) = $47.41",
"prior_auth_required": false,
"specialty_multiplier": null,
"age_multiplier_applied": null,
"provider_type_multiplier_applied": null,
"eapg_weight": null,
"eapg_base_rate": null,
"eapg_policy_adjustor": null,
"eapg_childrens_addon": null,
"paf_multiple_significant": null,
"paf_same_significant": null,
"paf_clinical_significant": null,
"paf_packaging": null,
"paf_repeat_ancillary": null,
"paf_bilateral": null,
"paf_terminated": null,
"paf_adjustment": null,
"date_of_service_used": "2026-08-01",
"effective_start_date": "2024-07-01",
"effective_end_date": null
}
]/fl/outpatient/rate/batchLook up multiple FL outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "99213",
"npi": "1234567890"
},
{
"billing_code": "99214",
"npi": "1234567890",
"child_patient": true
}
]
}/fl/inpatient/rateFlorida Inpatient Claims
Look up a Florida Medicaid APR-DRG inpatient payment rate. Incorporates service, age, and provider adjustors, plus a children's hospital add-on. The discharge date determines the effective rate period.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code (e.g., 140 or 140-2). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | FL Provider Base ID. |
provider_name1 required | string | Hospital name (partial match). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
discharge_date | string | Discharge date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Florida uses the discharge date (not admission date) to determine which rate period applies. |
transfer_claim | boolean | Transfer claim. Discharge status 02, 05, 65, 66, 82, 85, 93, or 94 (transferred to another acute-care hospital). |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
length_of_stay | integer | Length of stay in days. Defaults to average LOS. |
total_charges | decimal | Total charges for outlier calc and charge cap. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | FL Provider Base ID. |
provider_name | string | Provider name. |
hospital_class | string | Provider category. Values: All Other, Rural, LTAC, Childrens, Teaching. |
trauma_class | string | Trauma designation. Values: Level I, Level II, Pediatric. Null if not a trauma center. |
street_address | string | Hospital street address. |
city | string | Hospital city. |
county | string | Hospital county. |
zip_code | string | Hospital ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
apr_drg_code | string | Base DRG code. |
soi | integer | Severity of Illness (1–4). |
fl_relative_weight | decimal | Florida-specific DRG weight. |
mean_los | decimal | Average length of stay for this DRG. |
service_adjustor | decimal | Service adjustor (1.0 or 1.3 for neonatal). |
age_adjustor | decimal | Age adjustor (applied when age < 21). |
pediatric_service_line | string | Pediatric service line classification. |
adult_service_line | string | Adult service line classification. |
provider_adjustor | decimal | Provider category adjustor. |
max_adjustor_used | decimal | MAX(service, age, provider) adjustor used. |
statewide_base_rate | decimal | FL statewide base rate. |
base_payment | decimal | Base payment: base_rate × weight × max_adjustor. |
trauma_enhancement_amount | decimal | Trauma enhancement amount. |
childrens_addon | decimal | Children's hospital add-on (source value). |
childrens_addon_amount | decimal | Actual children's add-on calculated. |
transfer_adjustment_applied | boolean | Whether transfer adjustment was applied. |
transfer_adjusted_amount | decimal | Payment after transfer adjustment. |
outlier_adjustment_applied | boolean | Whether cost outlier was applied. |
outlier_amount | decimal | Cost outlier adjustment amount. |
outlier_threshold | float | Cost outlier threshold ($60,000). |
marginal_cost_pct | float | Marginal cost percentage (0.60 or 0.80). |
charge_cap_applied | boolean | Whether payment was capped at total charges. |
cost_to_charge_ratio | decimal | Hospital CCR for outlier calc. |
casemix | decimal | Hospital casemix index. |
length_of_stay_used | integer | LOS used in calculation. |
total_charges_used | decimal | Total charges used. |
discharge_date_used | date | The discharge date the rate was priced against, echoed from the request. When you omit discharge_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/fl/inpatient/rate?\ billing_code=140-2&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"state_provider_id": "100001",
"provider_name": "FLORIDA GENERAL HOSPITAL",
"hospital_class": "All Other",
"trauma_class": null,
"street_address": "500 HOSPITAL DR",
"city": "JACKSONVILLE",
"county": "DUVAL",
"zip_code": "32209",
"billing_code": "140-2",
"billing_code_type": "APR-DRG",
"billing_code_description": "CHRONIC OBSTRUCTIVE PULMONARY DISEASE",
"payment_rate": "6850.75",
"payment_rate_type": "claim",
"calculation_method": "6210.50 (Base Rate) × 0.8500 (FL Weight) × 1.3000 (MAX Adjustor)",
"apr_drg_code": "140",
"soi": 2,
"fl_relative_weight": "0.8500",
"mean_los": "3.50",
"service_adjustor": "1.0000",
"age_adjustor": null,
"pediatric_service_line": null,
"adult_service_line": "Pulmonary",
"provider_adjustor": "1.3000",
"max_adjustor_used": "1.3000",
"statewide_base_rate": "6210.50",
"base_payment": "6850.75",
"trauma_enhancement_amount": null,
"childrens_addon": null,
"childrens_addon_amount": null,
"transfer_adjustment_applied": false,
"transfer_adjusted_amount": null,
"outlier_adjustment_applied": false,
"outlier_amount": null,
"outlier_threshold": 60000,
"marginal_cost_pct": 0.6,
"charge_cap_applied": false,
"cost_to_charge_ratio": "0.3500",
"casemix": "1.2500",
"length_of_stay_used": 4,
"total_charges_used": null,
"discharge_date_used": "2026-08-01",
"effective_start_date": "2024-07-01",
"effective_end_date": null
}
]/fl/inpatient/rate/batchLook up multiple FL inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "140-2",
"npi": "1234567890"
},
{
"billing_code": "640-1",
"npi": "9876543210",
"length_of_stay": 3,
"total_charges": "45000"
}
]
}/fl/providers/searchFlorida Provider Search
Search for Florida Medicaid providers by NPI, Provider Base ID, name, or location. Returns provider details with FL-specific specialty codes and rate availability.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
state_provider_id | string | FL Provider Base ID. |
provider_name | string | Provider name (partial match). |
city | string | City (partial match). |
county | string | County (partial match). |
taxonomy | string | Taxonomy code filter. |
provider_type | string | State Rates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC. |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳state_provider_id | string | FL Provider Base ID. |
↳provider_name | string | Provider name. |
↳provider_type | string | State Rates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC. |
↳provider_type_label | string | Human-readable label for the State Rates provider classification. |
↳entity_type | string | Individual or Organization. |
↳primary_taxonomy | string | Primary taxonomy code. |
↳street_address | string | Street address. |
↳city | string | City. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳county | string | County. |
↳provider_category | string | FL provider category. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
total_results | integer | Total results found. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/fl/providers/search?\ provider_name=jackson&\ city=miami" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1234567890",
"state_provider_id": "100001",
"provider_name": "JACKSON MEMORIAL HOSPITAL",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": "282N00000X",
"street_address": "1611 NW 12TH AVE",
"city": "MIAMI",
"state": "FL",
"zip_code": "33136",
"county": "MIAMI-DADE",
"provider_category": "All Other",
"op_rates": true,
"ip_rates": true
}
],
"total_results": 1,
"limit_applied": 100
}/ga/outpatient/rateGeorgia Outpatient Rates
Look up a Georgia Medicaid outpatient rate. Pricing routes by provider type across Georgia's outpatient methods: physician fee schedule (with anesthesia and enhanced rates), clinical lab, ASC payment groups, and hospital percent of charges.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS/CPT® code (e.g., 99213). |
npi1 required | string | National Provider Identifier (10 digits). |
provider_name1 required | string | Provider name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. Georgia publishes no state-specific provider ID: NPI and provider name are the only identifiers. |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY. If omitted, resolved from the provider's NPI. |
modifier | string | Modifier. Values: 26 (Professional Component), TC (Technical Component), EP (HealthCheck preventive); anesthesia direction modifiers AA, QK, QY, QX, QZ select the conversion factor. Matched exactly to a published rate row. |
place_of_service | string | Place of service (physician codes only). Values: facility, non_facility. 'facility' returns the Site-of-Service rate where one is published; if omitted, the non_facility rate is returned. |
billed_charges | decimal | Total covered charges in dollars. Used for hospital percent-of-charges codes; without it, those responses return the effective percentage instead of a dollar amount. |
anesthesia_minutes | integer | Anesthesia time in minutes (anesthesia codes only). Any part of 15 minutes counts as one time unit. Without it, the response returns the base units, conversion factor, and formula with no dollar amount. |
physical_status | string | ASA physical status modifier (anesthesia codes only). Values: P1–P6. P3, P4, and P5 add units to the anesthesia computation; include it for a complete anesthesia price. |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Selects the fee schedule in effect on this date. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
provider_name | string | Provider name. |
campus_name | string | Campus, for the multi-campus hospital systems Georgia rates per campus under one NPI. An NPI lookup that hits such a system returns one result per campus. |
provider_type | string | State Rates provider classification. |
provider_type_label | string | Human-readable provider type label. |
critical_access_hospital | boolean | TRUE for Critical Access Hospitals (HOSPITAL only). CAHs are exempt from the Hospital Rate Add-On and their outpatient lab rides cost settlement (percent of charges) instead of the lab fee schedule. |
primary_taxonomy_code | string | NPPES primary taxonomy code. |
primary_taxonomy_display_name | string | NPPES primary taxonomy display name. |
street_address | string | Provider street address. |
city | string | Provider city. |
county | string | Provider county. |
state | string | Provider state (always 'GA'). |
zip_code | string | Provider ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
modifier | string | Modifier on the matched row (e.g., '26', 'TC', 'QZ'). Sourced from the row, not the request input. |
modifier_adjustment | decimal | Ratio of this modifier row's rate to the unmodified base rate (populated on 26/TC professional-technical component rows). NULL when no published base relationship exists. |
base_rate | decimal | Unmodified fee-schedule rate the modifier adjustment was derived against. Populated only alongside modifier_adjustment. |
place_of_service | string | Place of service on the matched row (physician codes only). |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
service_category | string | Which Georgia schedule priced the code. Values: physician_fs, site_of_service, enhanced_rate, anesthesia, anesthesia_flat, clinical_lab, padl_drug, vaccine_admin, asc, hospital_interim. |
age_group | string | Age restriction on the rate row. 'ADULT' on vaccine administration fees (members 21 and over; under-21 vaccines ride the VFC program). |
enhanced | boolean | TRUE when this is a legislative enhanced (rate-increase) crosswalk rate, returned because the provider is enrolled in the matching rate-increase program. Suppressed (null) otherwise. |
asc_locality | string | ASC payment locality (01–08) the rate applies to, from the provider's county (ASC only). |
payment_group | string | ASC payment group (01–09) the code is assigned to (ASC only). |
base_units | decimal | Anesthesia base units for the code (anesthesia only). |
anesthesia_conversion_factor | decimal | Conversion factor in dollars per unit, selected by the direction modifier (anesthesia only). |
time_units_used | integer | Time units derived from anesthesia_minutes (any part of 15 minutes = 1 unit). |
physical_status_units_used | integer | Units added for the ASA physical status modifier (P3 +1, P4 +2, P5 +3). Always present on anesthesia results; 0 when no physical status was supplied. |
ga_schedule_rate | decimal | Georgia lab fee schedule rate: one side of the lab lesser-of (clinical_lab only). |
medicare_clfs_rate | decimal | Medicare CLFS national rate for the matching quarter: the other side of the lab lesser-of (clinical_lab only; NULL when Medicare publishes no CLFS rate for the code). |
outpatient_interim_rate | decimal | The hospital's own percent-of-charges interim rate (HOSPITAL percent rows only). |
addon_multiplier | decimal | Hospital Rate Add-On multiplier applied on top of the interim rate; 1.0 for Critical Access Hospitals. |
effective_percent_of_charges | decimal | Interim rate × add-on multiplier: the effective fraction of covered charges this hospital is paid (HOSPITAL percent rows only). |
is_manually_priced | boolean | TRUE when the code is manually priced by GA Medicaid (no published fee-schedule amount). payment_rate NULL with an explanatory message. |
billed_charges_used | decimal | Covered charges used in the percent-of-charges calculation (echoed from request). |
anesthesia_minutes_used | integer | Anesthesia minutes used to derive time units (echoed from request). |
physical_status_used | string | ASA physical status modifier used (echoed from request). |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ga/outpatient/rate?\ billing_code=99213&\ npi=1023095957" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1023095957",
"provider_name": "SMITH, JOHN",
"campus_name": null,
"provider_type": "PHYSICIAN",
"provider_type_label": "Physician",
"critical_access_hospital": null,
"primary_taxonomy_code": "207Q00000X",
"primary_taxonomy_display_name": "Family Medicine",
"street_address": "100 PEACHTREE ST",
"city": "ATLANTA",
"county": "FULTON",
"state": "GA",
"zip_code": "30303",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"modifier": null,
"modifier_adjustment": null,
"base_rate": null,
"place_of_service": "non_facility",
"payment_rate": "82.05",
"payment_rate_type": "fee_schedule",
"calculation_method": "Physician Fee Schedule = $82.05",
"service_category": "physician_fs",
"age_group": "ALL",
"enhanced": null,
"asc_locality": null,
"payment_group": null,
"base_units": null,
"anesthesia_conversion_factor": null,
"time_units_used": null,
"physical_status_units_used": null,
"ga_schedule_rate": null,
"medicare_clfs_rate": null,
"outpatient_interim_rate": null,
"addon_multiplier": null,
"effective_percent_of_charges": null,
"is_manually_priced": null,
"billed_charges_used": null,
"anesthesia_minutes_used": null,
"physical_status_used": null,
"date_of_service_used": "2026-08-01",
"effective_start_date": "2026-04-01",
"effective_end_date": null
}
]/ga/outpatient/rate/batchLook up multiple GA outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "99213",
"npi": "1023095957"
},
{
"billing_code": "99284",
"npi": "1992799050",
"billed_charges": "10000"
}
]
}/ga/inpatient/rateGeorgia Inpatient Claims
Look up a Georgia Medicaid APR-DRG inpatient payment, with short-stay, cost-outlier, and Hospital Rate Add-On adjustments. The admission date determines the effective rate period.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code, with or without severity: '560-1' prices that severity level; '560' returns all four. |
npi1 required | string | National Provider Identifier (10 digits). |
provider_name1 required | string | Hospital name (partial match, case-insensitive). Returns only hospitals that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. Georgia publishes no state-specific provider ID. |
admit_date | string | Admission date (MM/DD/YYYY or YYYY-MM-DD). Georgia prices inpatient stays by admission date. Defaults to today. |
length_of_stay | integer | Covered days. Stays under 2 covered days trigger short-stay lesser-of pricing unless the DRG is exempt; when omitted, the standard per-case payment is returned with no short-stay evaluation. |
total_charges | decimal | Total covered charges (UB-04 FL47). Required to evaluate the cost outlier and the short-stay lesser-of. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Hospital NPI. |
provider_name | string | Hospital name. |
provider_type | string | Provider type (HOSPITAL). |
provider_type_label | string | Human-readable provider type label. |
critical_access_hospital | boolean | TRUE for Critical Access Hospitals, which are exempt from the Hospital Rate Add-On. |
street_address | string | Hospital street address. |
city | string | Hospital city. |
county | string | Hospital county. |
state | string | Hospital state. |
zip_code | string | Hospital ZIP code. |
billing_code | string | APR-DRG code priced, with severity (e.g., '560-1'). |
billing_code_type | string | Code system: 'APR-DRG'. |
billing_code_description | string | APR-DRG description (v40 catalog label). |
apr_drg_code | string | APR-DRG code without the severity suffix. |
soi | string | Severity of illness (1–4). |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
relative_weight | decimal | APR-DRG relative weight for this DRG-severity. |
alos | decimal | Average length of stay for the DRG-severity (context; not a payment input). |
cost_outlier_threshold | decimal | Cost-outlier threshold for the DRG-severity: the claim qualifies when charges × CCR exceeds it. |
sst_eligible | boolean | TRUE when the DRG is exempt from short-stay pricing (e.g., neonate transfer DRGs where a sub-2-day stay is the expected course). |
ip_base_rate | decimal | Hospital-specific DRG base rate for the admission-date period. |
ip_ccr | decimal | Hospital cost-to-charge ratio. Drives the outlier and short-stay calculations. |
base_payment | decimal | Base per-case payment = hospital base rate × DRG relative weight. |
short_stay_applied | boolean | TRUE when short-stay lesser-of pricing was evaluated (covered days under 2, DRG not exempt). Suppressed (null) otherwise. |
ccr_based_payment | decimal | Charges × hospital CCR: the short-stay lesser-of comparator. |
short_stay_note | string | Set when the short-stay lesser-of could not be evaluated (e.g., total_charges not supplied) or when the DRG is exempt. |
outlier_adjustment_applied | boolean | TRUE when a cost-outlier add-on was applied. Suppressed (null) otherwise. |
outlier_amount | decimal | Cost-outlier add-on included in the payment. |
outlier_percentage | decimal | Outlier Payment Percentage applied to estimated cost above the threshold. Present only when an outlier fired. |
estimated_cost | decimal | Estimated cost = total charges × hospital CCR. |
outlier_note | string | Set when the cost outlier could not be evaluated (e.g., total_charges not supplied). |
addon_multiplier | decimal | Hospital Rate Add-On multiplier applied to DRG + outlier payments; 1.0 for Critical Access Hospitals. |
pre_addon_subtotal | decimal | Per-case payment + outlier before the Hospital Rate Add-On multiplier. |
length_of_stay_used | integer | Covered days used for the short-stay evaluation (echoed from request; null when not supplied). |
total_charges_used | decimal | Total charges used in the outlier / short-stay calculations (echoed from request). |
admit_date_used | date | The admit date the rate was priced against, echoed from the request. When you omit admit_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ga/inpatient/rate?\ billing_code=560-1&\ npi=1992799050&\ admit_date=2024-02-15" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1992799050",
"provider_name": "Grady Memorial Hospital",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"critical_access_hospital": false,
"street_address": "80 JESSE HILL JR DR SE",
"city": "ATLANTA",
"county": "FULTON",
"state": "GA",
"zip_code": "30303",
"billing_code": "560-1",
"billing_code_type": "APR-DRG",
"billing_code_description": "VAGINAL DELIVERY",
"apr_drg_code": "560",
"soi": "1",
"payment_rate": "6536.95",
"payment_rate_type": "claim",
"calculation_method": "$8,988.96 (Hospital Base Rate) × 0.65 (DRG Weight) = $5,842.82 (Base Payment) × 1.1188 (Hospital Rate Add-On) = $6,536.95 (Estimated Payment)",
"relative_weight": "0.65",
"alos": "2.04",
"cost_outlier_threshold": "30000",
"sst_eligible": true,
"ip_base_rate": "8988.96",
"ip_ccr": "0.186",
"base_payment": "5842.82",
"short_stay_applied": null,
"ccr_based_payment": null,
"short_stay_note": null,
"outlier_adjustment_applied": null,
"outlier_amount": null,
"outlier_percentage": null,
"estimated_cost": null,
"outlier_note": "Cost-outlier qualification needs total_charges. Not supplied, so no outlier was evaluated.",
"addon_multiplier": "1.1188",
"pre_addon_subtotal": "5842.82",
"length_of_stay_used": null,
"total_charges_used": null,
"admit_date_used": "2024-02-15",
"effective_start_date": "2024-01-01",
"effective_end_date": null
}
]/ga/inpatient/rate/batchLook up multiple GA inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "560-1",
"npi": "1992799050",
"admit_date": "2024-02-15"
},
{
"billing_code": "560-4",
"npi": "1992799050",
"admit_date": "2024-02-15",
"total_charges": "400000"
}
]
}/ga/providers/searchGeorgia Provider Search
Search for Georgia Medicaid providers by NPI, name, city, county, ZIP, taxonomy, provider type, or Critical Access status. Returns provider details with rate availability. Sourced from the DCH Active Provider Directory, Georgia's hospital rate listings, and CMS NPPES.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
provider_name | string | Provider name (partial match, case-insensitive). |
city | string | City (partial match). |
county | string | County (partial match). |
zip_code | string | ZIP code (exact match). |
taxonomy | string | NUCC taxonomy display name (partial match). |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY. |
critical_access_hospital | boolean | Filter hospitals by Critical Access status (HOSPITAL only). |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳provider_name | string | Provider name. |
↳campus_name | string | Campus, for multi-campus hospital systems rated per campus under one NPI. |
↳provider_type | string | State Rates provider classification. |
↳provider_type_label | string | Human-readable provider type label. |
↳entity_type | string | Individual or Organization (always 'Organization' for HOSPITAL). |
↳primary_taxonomy | string | NPPES primary taxonomy display name. |
↳critical_access_hospital | boolean | TRUE for Critical Access Hospitals (HOSPITAL only). |
↳asc_locality | string | ASC payment locality (01–08), from the provider's county (ASC only). |
↳street_address | string | Street address. |
↳city | string | City. |
↳county | string | County. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
total_results | integer | Total results found. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/ga/providers/search?\ provider_name=grady&\ provider_type=HOSPITAL" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1992799050",
"provider_name": "Grady Memorial Hospital",
"campus_name": null,
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": "General Acute Care Hospital",
"critical_access_hospital": false,
"asc_locality": null,
"street_address": "80 JESSE HILL JR DR SE",
"city": "ATLANTA",
"county": "FULTON",
"state": "GA",
"zip_code": "30303",
"op_rates": true,
"ip_rates": true
}
],
"total_results": 1,
"limit_applied": 100
}/ma/outpatient/rateMassachusetts Outpatient Rates
Look up a MassHealth outpatient rate. Pricing routes by provider type across MassHealth's outpatient methods: professional fee schedules (with anesthesia), ASC facility fees, clinical lab, and hospital EAPG pricing with the emergency department add-ons.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS/CPT® code (e.g., 99213), or a MassHealth EAPG code (e.g., 25) for hospital outpatient pricing. |
billing_code_type | string | Code system to price. Values: HCPCS, EAPG. HCPCS codes price off the MassHealth fee schedules (and the hospital lab and ED add-on paths); EAPG codes price hospital outpatient episodes. If omitted, both are returned where present. |
npi1 required | string | National Provider Identifier (10 digits). |
ccn1 required | string | CMS Certification Number (exact match, hospitals only). |
provider_name1 required | string | Provider name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. Massachusetts publishes no state-specific provider ID: NPI, CCN and provider name are the identifiers. |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. If omitted, resolved from the provider's NPI. |
modifier | string | Modifier. Values: 26 (Professional Component), TC (Technical Component), 50 (Bilateral), 51 (Multiple Procedure), 54 / 55 (surgical care / postoperative management only), 62 (Two Surgeons), 80 / 82 / AS (assistant at surgery); anesthesia direction modifiers AA, QZ, QK, QY, QX; HG / V1 / V2 on the hospital ED add-ons; CG on the COVID specimen-collection lab codes. Matched exactly to a published rate row. |
place_of_service | string | Place of service for codes that publish a non-facility / facility pair. Values: facility, non_facility. If omitted, the non-facility fee is returned (the facility fee for the hospital ED add-on G2213). |
anesthesia_minutes | integer | Anesthesia time in minutes (anesthesia codes only). MassHealth pays per base unit plus per minute of anesthesia time. Without it, the response returns the base units, unit fees and formula with no dollar amount. |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Selects the fee-schedule edition, bulletin or rate year in effect on this date. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
provider_name | string | Provider name (hospitals: the Attachment B spelling). |
provider_type | string | State Rates provider classification. |
provider_type_label | string | Human-readable provider type label. |
ccn | string | CMS Certification Number (hospitals only). |
critical_access_hospital | boolean | TRUE for the four Critical Access Hospitals (HOSPITAL only). EAPG rows price off the CAH outpatient standard rate per episode, an interim rate subject to cost-report reconciliation. |
primary_taxonomy_code | string | NPPES primary taxonomy code. |
primary_taxonomy_display_name | string | NPPES primary taxonomy display name. |
street_address | string | Provider street address. |
city | string | Provider city. |
state | string | Provider state (always 'MA'). |
zip_code | string | Provider ZIP code. |
billing_code | string | HCPCS/CPT or EAPG code looked up. |
billing_code_type | string | Code system. Values: HCPCS, EAPG. |
billing_code_description | string | Code description: CPT from the licensed AMA data file (verbatim), HCPCS Level II from CMS, EAPG from the catalog. |
modifier | string | Modifier on the matched row. Sourced from the row, not the request input. |
modifier_adjustment | decimal | Ratio of this modifier row's rate to the unmodified base rate: the published percentage on derived rows, the derived ratio on 26 / TC component rows, the direction factor on anesthesia rows. Null on base rows. |
base_rate | decimal | Unmodified fee-schedule rate the modifier adjustment was applied to. Populated only alongside modifier_adjustment. |
place_of_service | string | Place of service on the matched row: facility or non_facility. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
service_category | string | Which MassHealth schedule priced the code. Values: surgery, medicine, radiology, anesthesia, clinical_lab, asc, eapg, ed_addon. |
is_payable | boolean | Whether the code is on this provider type's MassHealth provider-manual payable list. EOHHS rates the whole code set for every purchasing governmental unit; MassHealth pays only the payable subset. A display flag, never a filter; null when no list applies (hospital EAPG rows). |
payability_markers | string | Payable-list markers on the entry (prior authorization, individual consideration, consent or age markers). |
eapg_weight | decimal | MassHealth EAPG relative weight for the rate year (eapg only). |
wage_adjusted_outpatient_standard | decimal | The hospital's Wage Adjusted APEC Outpatient Standard for the rate year, as published (non-CAH hospital EAPG rows only). |
cah_outpatient_standard_rate_per_episode | decimal | The CAH outpatient standard rate per episode that replaces the wage-adjusted standard for a Critical Access Hospital; interim, subject to reconciliation. |
ma_schedule_rate | decimal | MassHealth clinical laboratory schedule rate: one side of the lab lesser-of (clinical_lab only). |
medicare_clfs_rate | decimal | Medicare CLFS national rate for the quarter in force on the date of service: the other side of the lab lesser-of. Null when Medicare publishes no CLFS rate for the code, in which case no cap applies. |
base_units | decimal | Anesthesia base units for the code (anesthesia only). |
anesthesia_base_unit_fee | decimal | Fee per base anesthesia unit (anesthesia only). |
anesthesia_time_unit_fee | decimal | Fee per minute of anesthesia time; one time unit is one minute (anesthesia only). |
is_manually_priced | boolean | TRUE when the code carries no published dollar (individual consideration, an ASP-priced drug, a radiation-delivery policy I.C., an unpriced lab placeholder). payment_rate null with an explanatory message. |
manual_pricing_reason | string | Why the row is manually priced. Values: individual_consideration, unlisted, asp_drug, policy, placeholder. |
is_packaged | boolean | TRUE when the code is packaged with no separate payment (ASC zero-rate codes, zero-weight EAPGs). payment_rate is zero. |
anesthesia_minutes_used | integer | Anesthesia minutes used in the payment (echoed from request). |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ma/outpatient/rate?\ billing_code=99213&\ npi=1003001165" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1003001165",
"provider_name": "Dr. Lee Edwin Goldstein",
"provider_type": "PHYSICIAN",
"provider_type_label": "Physician",
"ccn": null,
"critical_access_hospital": null,
"primary_taxonomy_code": "207R00000X",
"primary_taxonomy_display_name": "Internal Medicine",
"street_address": "1 BOSTON MEDICAL CENTER PL",
"city": "BOSTON",
"county": null,
"state": "MA",
"zip_code": "02118",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"modifier": null,
"modifier_adjustment": null,
"base_rate": null,
"place_of_service": "non_facility",
"payment_rate": "68.11",
"payment_rate_type": "fee_schedule",
"calculation_method": "Medicine Fee Schedule: non-facility fee (101 CMR 317) = $68.11",
"service_category": "medicine",
"is_payable": true,
"payability_markers": null,
"eapg_weight": null,
"wage_adjusted_outpatient_standard": null,
"cah_outpatient_standard_rate_per_episode": null,
"ma_schedule_rate": null,
"medicare_clfs_rate": null,
"base_units": null,
"anesthesia_base_unit_fee": null,
"anesthesia_time_unit_fee": null,
"is_manually_priced": null,
"manual_pricing_reason": null,
"is_packaged": null,
"anesthesia_minutes_used": null,
"date_of_service_used": "2026-09-13",
"effective_start_date": "2025-09-23",
"effective_end_date": null
}
]/ma/outpatient/rate/batchLook up multiple MA outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "99213",
"npi": "1003001165"
},
{
"billing_code": "25",
"npi": "1346218294"
},
{
"billing_code": "00100",
"npi": "1003001165",
"anesthesia_minutes": 60
}
]
}/ma/inpatient/rateMassachusetts Inpatient Rates
Look up a MassHealth APR-DRG inpatient payment, with cost-outlier, transfer per-diem, pediatric, and psychiatric and rehabilitation unit per-diem adjustments. The admission date determines the effective rate year.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code with or without severity, in the Chart C shape: '203-2' prices that severity level; '203' returns all four. Every inpatient claim carries an APR-DRG, including psychiatric and rehabilitation stays. |
npi1 required | string | National Provider Identifier (10 digits). |
ccn1 required | string | CMS Certification Number (exact match). |
provider_name1 required | string | Hospital name (partial match, case-insensitive). Returns only hospitals that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. Massachusetts publishes no state-specific provider ID. |
admit_date | string | Admission date (MM/DD/YYYY or YYYY-MM-DD). MassHealth prices inpatient stays by admission date; the psychiatric and rehabilitation-unit per diems resolve on the same date. Defaults to today. |
length_of_stay | integer | Total covered days for the stay, including any psychiatric-unit and rehabilitation-unit days entered below. Acute days are the remainder. Required to price a transfer per diem; not a pricing input on a standard stay. |
psych_days | integer | Days spent in a DMH-licensed psychiatric bed (accommodation revenue codes 0114, 0124, 0134, 0154). Priced at the hospital's Psychiatric Per Diem; any remaining acute days price on the transfer basis. |
rehab_days | integer | Days spent in the hospital's rehabilitation unit (accommodation revenue codes 0118, 0128, 0138, 0158). Priced at the hospital's Rehabilitation Unit Per Diem; the acute days before the transfer price at the full APAD. |
total_charges | decimal | Total allowed charges for the stay (UB-04 FL47). Required to evaluate the cost outlier; on a per-diem-only stay the per diem total is capped at total charges. |
transfer_claim | boolean | Set when the stay is paid on the Transfer Per Diem basis: the patient was transferred to another acute hospital (Discharge Status = 02), was admitted following an outpatient surgery or procedure at the hospital, or had a mid-stay change in MassHealth eligibility or plan enrollment. Requires length_of_stay. |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Hospital NPI. |
provider_name | string | Hospital name (Attachment B spelling). |
provider_type | string | Provider type (HOSPITAL). |
provider_type_label | string | Human-readable provider type label. |
ccn | string | CMS Certification Number. |
critical_access_hospital | boolean | TRUE for the four Critical Access Hospitals: the CAH standard rate replaces the APAD base payment (interim, subject to reconciliation); no pediatric adjustment. |
pediatric_class | string | Pediatric APAD class for the rate year. Values: FREESTANDING_PEDIATRIC, PEDIATRIC_BEDS_1_15 (inferred from DPH licensure). Null is the standard under-21 class. |
street_address | string | Hospital street address. |
city | string | Hospital city. |
state | string | Hospital state. |
zip_code | string | Hospital ZIP code. |
billing_code | string | APR-DRG code priced, with severity (e.g., '203-2'). |
billing_code_type | string | Code system: APR-DRG. |
billing_code_description | string | APR-DRG description (Chart C). |
apr_drg_code | string | APR-DRG code without the severity suffix. |
soi | string | Severity of illness (1-4). |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
relative_weight | decimal | MassHealth DRG weight for this DRG-severity and rate year. |
mean_los | decimal | Mean all-payer length of stay for the DRG-severity: the divisor of the transfer per diem. |
apad_base_payment | decimal | The hospital's published APAD Base Payment for the rate year (null for a CAH). |
cah_total_standard_rate_per_discharge | decimal | The CAH standard rate per discharge that replaces the APAD base payment (CAH only). |
pediatric_adjustment_pct | decimal | Pediatric APAD base adjustment applied. Present only when applied. |
adjusted_apad_base_payment | decimal | APAD base payment after the pediatric adjustment. Present only when an adjustment applied. |
apad_amount | decimal | The APAD: (adjusted) base payment times the DRG weight. Present when the stay has acute days. |
ip_cost_to_charge_ratio | decimal | The hospital's inpatient cost-to-charge ratio (may exceed 1.0; never clamped). |
ip_fixed_outlier_threshold | decimal | Fixed inpatient outlier threshold for the rate year. |
ip_marginal_cost_factor | decimal | Marginal cost factor applied to case cost above the threshold. |
estimated_cost | decimal | Discharge-specific case cost: total charges times the cost-to-charge ratio. |
outlier_threshold | decimal | Discharge-specific outlier threshold: APAD plus the fixed threshold. |
outlier_adjustment_applied | boolean | TRUE when an outlier payment was added. Suppressed (null) otherwise. |
outlier_amount | decimal | Outlier payment included in the total. |
outlier_note | string | Set when the outlier could not be evaluated (no total_charges) or is excluded (stays with psychiatric or rehabilitation-unit days). |
total_case_payment | decimal | APAD plus outlier payment: the amount the transfer per diem is derived from. |
transfer_adjustment_applied | boolean | TRUE when the acute days were priced on the Transfer Per Diem basis. Suppressed (null) otherwise. |
transfer_per_diem | decimal | Total case payment divided by the mean all-payer length of stay. |
transfer_payment_cap | decimal | Total Transfer Payment Cap (the total case payment). |
transfer_payment | decimal | Transfer per diem times acute days, capped at the Total Transfer Payment Cap. |
transfer_note | string | Set when transfer_claim was requested without a length_of_stay of at least one day, or when the DRG row carries no mean all-payer length of stay (the full APAD is returned either way), or when psych_days / rehab_days arrived without length_of_stay (the stay was priced as per-diem-only). |
psychiatric_per_diem | decimal | The hospital's Psychiatric Per Diem (null when the hospital carries none). |
psychiatric_per_diem_amount | decimal | Psychiatric Per Diem times psych_days. |
rehabilitation_unit_per_diem | decimal | The hospital's Rehabilitation Unit Per Diem (null when the hospital carries none). |
rehabilitation_unit_per_diem_amount | decimal | Rehabilitation Unit Per Diem times rehab_days. |
charge_cap_applied | boolean | TRUE when a per-diem-only stay was capped at total charges. Suppressed (null) otherwise. |
child_patient_used | boolean | Echoed input. TRUE when child_patient was submitted; suppressed (null) when false. |
transfer_claim_used | boolean | Echoed input. TRUE when transfer_claim was submitted; suppressed (null) when false. |
length_of_stay_used | integer | Total covered days used (echoed from request). |
acute_days_used | integer | Acute days derived as length_of_stay minus psych_days minus rehab_days. |
psych_days_used | integer | Psychiatric-unit days used (echoed from request). |
rehab_days_used | integer | Rehabilitation-unit days used (echoed from request). |
total_charges_used | decimal | Total charges used in the outlier and charge-cap calculations (echoed from request). |
admit_date_used | date | The admit date the rate was priced against, echoed from the request. When you omit admit_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ma/inpatient/rate?\ billing_code=203-2&\ npi=1346218294&\ admit_date=2025-03-15" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1346218294",
"provider_name": "Boston Medical Center",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"ccn": "220017",
"critical_access_hospital": false,
"pediatric_class": null,
"street_address": "ONE BOSTON MEDICAL CENTER PL",
"city": "BOSTON",
"county": null,
"state": "MA",
"zip_code": "02118",
"billing_code": "203-2",
"billing_code_type": "APR-DRG",
"billing_code_description": "CHEST PAIN",
"apr_drg_code": "203",
"soi": "2",
"payment_rate": "4832.63",
"payment_rate_type": "claim",
"calculation_method": "$12,627.72 (APAD Base Payment) × 0.3827 (MassHealth DRG Weight) = $4,832.63 (Estimated Payment)",
"relative_weight": "0.3827",
"mean_los": "2.19",
"apad_base_payment": "12627.72",
"cah_total_standard_rate_per_discharge": null,
"pediatric_adjustment_pct": null,
"adjusted_apad_base_payment": null,
"apad_amount": "4832.63",
"ip_cost_to_charge_ratio": "0.5632",
"ip_fixed_outlier_threshold": "42430.00",
"ip_marginal_cost_factor": "0.60",
"estimated_cost": null,
"outlier_threshold": null,
"outlier_adjustment_applied": null,
"outlier_amount": null,
"outlier_note": "Outlier qualification needs total_charges, which was not supplied, so no outlier was evaluated.",
"total_case_payment": "4832.63",
"transfer_adjustment_applied": null,
"transfer_per_diem": null,
"transfer_payment_cap": null,
"transfer_payment": null,
"transfer_note": null,
"psychiatric_per_diem": "954.59",
"psychiatric_per_diem_amount": null,
"rehabilitation_unit_per_diem": null,
"rehabilitation_unit_per_diem_amount": null,
"charge_cap_applied": null,
"child_patient_used": null,
"transfer_claim_used": null,
"length_of_stay_used": null,
"acute_days_used": null,
"psych_days_used": null,
"rehab_days_used": null,
"total_charges_used": null,
"admit_date_used": "2025-03-15",
"effective_start_date": "2024-10-01",
"effective_end_date": null
}
]/ma/inpatient/rate/batchLook up multiple MA inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "203-2",
"npi": "1346218294",
"admit_date": "2025-03-15"
},
{
"billing_code": "203-2",
"npi": "1346218294",
"admit_date": "2025-03-15",
"total_charges": "200000"
},
{
"billing_code": "203-2",
"npi": "1295765261",
"admit_date": "2025-03-15",
"length_of_stay": 12,
"psych_days": 10
}
]
}/ma/providers/searchMassachusetts Provider Search
Search for MassHealth providers by NPI, name, location, taxonomy, provider type, Critical Access status or pediatric class. Returns provider details with rate availability. Sourced from the yearly MassHealth acute hospital rate notice and CMS NPPES.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
provider_name | string | Provider name (partial match, case-insensitive). |
city | string | City (partial match). |
zip_code | string | ZIP code (exact match). |
taxonomy | string | NUCC taxonomy display name (partial match). |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. |
critical_access_hospital | boolean | Filter hospitals by Critical Access status (HOSPITAL only). |
pediatric_class | string | Filter hospitals by pediatric APAD class. Values: FREESTANDING_PEDIATRIC, PEDIATRIC_BEDS_1_15 (HOSPITAL only). |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳provider_name | string | Provider name. |
↳provider_type | string | State Rates provider classification. |
↳provider_type_label | string | Human-readable provider type label. |
↳entity_type | string | Individual or Organization (always 'Organization' for HOSPITAL). |
↳primary_taxonomy | string | NPPES primary taxonomy display name. |
↳ccn | string | CMS Certification Number (hospitals only). |
↳critical_access_hospital | boolean | TRUE for Critical Access Hospitals (HOSPITAL only). |
↳pediatric_class | string | Inpatient pediatric APAD class (HOSPITAL only). |
↳street_address | string | Street address. |
↳city | string | City. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
total_results | integer | How many providers matched in total; when it exceeds the providers returned, the response is one capped page. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/ma/providers/search?\ provider_name=boston%20medical&\ provider_type=HOSPITAL" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1346218294",
"provider_name": "Boston Medical Center",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": "General Acute Care Hospital",
"ccn": "220017",
"critical_access_hospital": false,
"pediatric_class": null,
"street_address": "ONE BOSTON MEDICAL CENTER PL",
"city": "BOSTON",
"county": null,
"state": "MA",
"zip_code": "02118",
"op_rates": true,
"ip_rates": true
}
],
"total_results": 1,
"limit_applied": 100
}/ny/outpatient/rateNew York Outpatient Rates
Look up a NY Medicaid outpatient rate. Methodologies are routed by provider type: Hospital, D&TC, and ASC APGs, as well as eMedNY Physician and Lab fee schedules.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS code (e.g., 99213) or APG code. |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | NY Medicaid Provider ID (MMIS, 8-digit). NY's state-issued billing identifier (universal across professionals and hospitals). |
opcert1 required | string | Hospital-only NY operating certificate. Not all NY providers have one. |
provider_name1 required | string | Provider name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
provider_type | string | NY provider type filter. Values: HOSPITAL, PHYSICIAN, OUTPATIENT_CLINIC_ASC, LABORATORY. If omitted, returns rates across all matching provider types. |
rate_code | string | NY 4-digit rate code from UB-04 Value Code 24. HOSPITAL APG: 1400 → OPD visit, 1402 → ED, 1432 → OPD episode. OUTPATIENT_CLINIC_ASC: 1407 / 1422 → D&TC Clinic, 1408 → Amb Surg. If omitted, hospital APG defaults to OPD visit; D&TC/ASC defaults to the NPI's peer-group preferred column (Clinic over Amb Surg). |
service_region | string | D&TC/ASC only. Values: Downstate, Upstate. Disambiguates the ~6 multi-region D&TC providers; auto-detected from provider address otherwise. |
modifier | string | Modifier (PHYSICIAN HCPCS only). Values: 26 (Professional Component), TC (Technical Component). NY pre-multiplies at the data layer; modifier_adjustment carries the multiplier. |
place_of_service | string | Place of service (PHYSICIAN HCPCS only). Values: facility, non_facility. If omitted, returns the source default row (typically non_facility). |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Selects the fee schedule (HCPCS) or APG weight version (APG codes) in effect on this date. Defaults to today. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
matched_npi | string | The NPI you searched by, when it is one of this hospital's other NY-Medicaid-enrolled NPIs rather than the one in npi. Null when you searched by npi itself. |
state_provider_id | string | NY Medicaid Provider ID (MMIS, 8-digit). |
opcert | string | NY Operating Certificate number. NULL for non-hospitals. |
provider_name | string | Provider name. |
provider_type | string | NY provider type. Values: HOSPITAL, PHYSICIAN, OUTPATIENT_CLINIC_ASC, LABORATORY. |
provider_type_label | string | Human-readable provider type. |
ny_profession_or_service | string | NY-published profession/service category (comma-delimited title case where a provider operates under multiple categories). Examples: Physician, Nurse Practitioner, Outpatient Clinic. NULL for some hospital rows. |
ny_provider_specialty | string | NY-published specialty sub-classification (comma-delimited title case). Examples: Cardiology, Geriatric Medicine, General Dentistry. |
primary_taxonomy_code | string | NPPES primary taxonomy code (NUCC standard). |
primary_taxonomy_display_name | string | NPPES primary taxonomy display name (NUCC-enriched). |
street_address | string | Provider street address. |
city | string | Provider city. |
county | string | Provider county. |
state | string | Provider state (typically 'NY'). |
zip_code | string | Provider ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
rate_code | string | NY 4-digit rate code echoed from request. |
modifier | string | Modifier applied (e.g., 26, TC). |
modifier_adjustment | decimal | Multiplier applied to base rate (PHYSICIAN modifier 26 / TC rows where NY pre-multiplies). |
place_of_service | string | Place of service used. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
apg_weight | decimal | APG relative weight (Solventum 3M v3.17, NY-branded as APG). |
px_based_weight | decimal | HCPCS procedure-overlay weight (OT/PT/SLP/nutrition codes). |
apg_base_rate_used | decimal | APG base rate applied (Hospital APG path or D&TC/ASC peer-group rate). |
apg_base_rate_source_column | string | Which base-rate column was used. Hospital values: apg_base_rate_opd_visit, apg_base_rate_ed, apg_base_rate_opd_episode. D&TC/ASC values: apg_base_rate_dtc_clinic_{upstate|downstate}, apg_base_rate_dtc_ambsurg_{upstate|downstate}. |
payment_operating | decimal | Operating portion of payment_rate (apg_weight × apg_base_rate_used). D&TC/ASC + Hospital APG paths. |
payment_capital | decimal | Capital add-on per visit (D&TC/ASC only; per-NPI, ~$27 average). Hospital APG capital is bundled into the base rate. |
capital_anomaly | boolean | TRUE when the NPI's published capital add-on falls outside the expected range; surfaces data-quality outliers for review. |
units_limit | decimal | Per-claim units limit (when published). |
anesthesia_base_units | decimal | Anesthesia base unit count for the code. NY publishes base units but no per-unit rate, so an anesthesia result has rate_found=true with these base units, payment_rate=null, the formula in calculation_method and an advisory saying why. Apply your own per-unit rate and time units downstream. |
is_manually_priced | boolean | TRUE for 'By Report' sentinel codes (payment_rate=NULL with explanatory message). |
prior_auth_required | boolean | TRUE when the code requires prior authorization. |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
service_region_used | string | The region used to select the APG base rate (Downstate or Upstate), derived from the rate column actually priced (multi-region NPIs default to Downstate when the region is omitted). Null when region does not apply (hospitals, fee-schedule rows). |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
advisories | array | Informational advisories (code + message), e.g. anesthesia_unit_rate_not_published on anesthesia codes, which carry base units but no payment. Omitted from the response when there are none. |
curl "https://staterates.health/api/v1/ny/outpatient/rate?\ billing_code=99213&\ npi=1407957863" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1407957863",
"state_provider_id": "01234567",
"opcert": null,
"provider_name": "HAQ INAM UL",
"provider_type": "PHYSICIAN",
"provider_type_label": "Physician",
"ny_profession_or_service": "PHYSICIAN",
"ny_provider_specialty": "FAMILY PRACTICE",
"city": "BROOKLYN",
"county": "KINGS",
"state": "NY",
"zip_code": "11201",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"rate_code": null,
"modifier": null,
"modifier_adjustment": null,
"place_of_service": "non_facility",
"payment_rate": "86.75",
"payment_rate_type": "fee_schedule",
"calculation_method": "eMedNY Physician Fee Schedule (Non-Facility): $86.75",
"apg_weight": null,
"apg_base_rate_used": null,
"apg_base_rate_source_column": null,
"anesthesia_base_units": null,
"is_manually_priced": false,
"prior_auth_required": false,
"date_of_service_used": "2026-08-01",
"service_region_used": null,
"effective_start_date": "2024-01-01",
"effective_end_date": null
}
]/ny/outpatient/rate/batchLook up multiple NY outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "99213",
"npi": "1407957863"
},
{
"billing_code": "76700",
"npi": "1407957863",
"modifier": "26"
},
{
"billing_code": "80048",
"npi": "1629737200"
}
]
}/ny/inpatient/rateNew York Inpatient Claims
Look up a NY Medicaid inpatient rate. Pricing is routed by service type: acute care via APR-DRG, exempt psychiatric on a per-diem with age, intellectual-disability, and comorbidity factors, and six per-diem categories (Medical Rehab, CAH, Chemical Dependency Rehab, Adult and Child Dual Diagnosis, and Specialty Acute). Payer class (FFS or Managed Medicaid) selects the rate schedule.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code (e.g. '140', '140-2'). Required for acute and psychiatric service types; optional for per-diem service types (CAH, med_rehab, etc.) where pricing is hospital-level and DRG isn't used. |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | NY Medicaid Provider ID (MMIS, 8-digit). NY's state-issued billing identifier (universal across professionals and hospitals). |
opcert1 required | string | Hospital-only NY operating certificate. Not all NY providers have one. |
provider_name1 required | string | Hospital name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
service_type | string | What category of inpatient care was delivered. Values: acute, psychiatric, specialty_acute, cah, med_rehab, chem_dep_rehab, dual_diag_adult, dual_diag_child. Optional; defaults to acute, or can be inferred from rate_code or APR-DRG. |
rate_code | string | Optional 4-digit code from UB-04 Value Code 24. An alternate way to specify Service Type; e.g., 2946/2960 = acute, 2852 = psychiatric, 2853 = med_rehab, 2999 = cah, 4608 = dual_diag_adult, 4607 = dual_diag_child. |
payer_class | string | Payer class. Values: FFS = traditional fee-for-service Medicaid claims. MMC = Managed Medicaid (insurer-administered) claims. MMC rates often include additional add-ons (Safety Net SDP + H+H ACR) auto-applied for qualifying hospitals on acute and psychiatric. Defaults to FFS. |
discharge_date | string | Discharge date (MM/DD/YYYY or YYYY-MM-DD). Selects the rate period. Defaults to today. |
length_of_stay | integer | Length of stay in days. Required for psychiatric and per-diem service types; optional for acute (used only for transfer calculations). |
alc_days | integer | Days within the stay where the patient was medically stable enough to be discharged but couldn't be (e.g., awaiting nursing home placement). ALC days pay at the ALC per-diem rate. Not supported for Adult or Child Dual Diagnosis Psychiatric: NY doesn't publish an ALC per-diem for those service types, so supplying alc_days > 0 returns rate_found=false with an explanatory error. |
gross_charges | decimal | Billed charges (acute only). Required to evaluate cost-outlier eligibility. |
transfer_claim | boolean | True if this hospital transferred the patient to another facility. Acute only. Payment is rebuilt as a daily rate (the DRG payment divided by the DRG's average length of stay, times a 120% adjustment factor, plus the hospital's capital per diem) applied to each non-ALC day, then capped at what a full discharge would have paid. The 120% factor does not apply when the DRG's average length of stay is 1, and transfer-only DRGs (580/581) are paid the full DRG rate. Per 10 NYCRR §86-1.21. |
age_group | string | Psychiatric only. Values: ADULT, CHILD. CHILD applies when the patient is age 17 or under (adds 1.3597 multiplier to operating rate). Defaults to ADULT. |
has_intellectual_disability | boolean | Psychiatric only. True if the patient has an Intellectual Disability diagnosis. Applies 1.0599 MR factor (max 1× per case). |
comorbidity_category | string | Psychiatric only. Highest-matching comorbidity from NY's 18-category list (acute_coronary_syndrome, arrhythmia, cancers, cardio_respiratory_failure, cellulitis, chronic_kidney_disease, chronic_obstructive_lung_disease, diabetes, gi_hemorrhage, heart_failure, liver_disease, metabolic_disturbance, neurological_disease, opportunistic_infection, pancreas_disease, pneumonia, sepsis, severe_hematologic_disorder). |
ect_treatments | integer | Psychiatric only. Number of electroconvulsive therapy treatments delivered during the stay. |
prior_admission_within_30d | boolean | Psychiatric only. Set if the patient was discharged from a NY psychiatric unit within the prior 30 days. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Hospital NPI. |
matched_npi | string | The NPI you searched by, when it is one of this hospital's other NY-Medicaid-enrolled NPIs rather than the one in npi. Null when you searched by npi itself. |
state_provider_id | string | NY Medicaid Provider ID (MMIS). |
opcert | string | NY Operating Certificate number. |
provider_name | string | Hospital name. |
provider_type_label | string | Human-readable provider type (always 'Hospital' for NY IP). |
primary_taxonomy_code | string | NPPES primary taxonomy code (NUCC standard). |
primary_taxonomy_display_name | string | NPPES primary taxonomy display name (NUCC-enriched). |
street_address | string | Hospital street address. |
city | string | Hospital city. |
county | string | Hospital county. |
state | string | Hospital state. |
zip_code | string | Hospital ZIP. |
billing_code | string | User-supplied billing_code echoed verbatim. On per-diem service types this is whatever code the caller passed (typically an APR-DRG); it's echoed but not used in pricing. Null when no billing_code was supplied (legal on per-diem; required on acute/psychiatric). |
billing_code_type | string | 'APR-DRG' when the echoed billing_code matches the APR-DRG shape (e.g. '140-2'). Null when no billing_code was supplied. |
billing_code_description | string | DRG description (acute/psychiatric) or service-type description (per-diem). |
billing_code_used_in_calculation | boolean | FALSE on per-diem service types where billing_code was echoed but not used in pricing. Suppressed (null) on acute/psychiatric where the billing_code (APR-DRG) is the primary pricing input. |
rate_code | string | NY rate code echoed from request. |
service_type | string | Resolved service type used for calculation. |
service_type_source | string | How service_type was determined. Values: explicit, inferred_from_rate_code, inferred_from_drg, sole_provider_certification, default_acute. |
apr_drg_code | string | APR-DRG code (acute/psychiatric only). |
soi | integer | Severity of Illness 1-4. |
payer_class | string | Payer class echoed. Values: FFS, MMC. |
payer_class_label | string | Human-readable payer class: 'Fee-for-Service' or 'Managed Medicaid'. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
siw | decimal | Acute APR-DRG Service Intensity Weight. |
psych_siw | decimal | Psychiatric APR-DRG SIW (separate from acute SIW). |
alos | decimal | Average Length of Stay. Surfaced only on transfer cases (used in the transfer per-diem calc). |
statewide_base_price_used | decimal | Statewide base price for the payer class (acute); background context, not a formula input. |
isaf_used | decimal | Input Service Adjustment Factor (acute). Surfaced only when a cost outlier is being evaluated. |
discharge_rate_used | decimal | Discharge Case Payment Rate for the matched hospital × payer class × period. |
dme_used | decimal | Direct Medical Education amount paid on FFS acute. Suppressed (null) on MMC acute since DME is bundled into IME and not paid separately. |
capital_per_disch_used | decimal | Capital per discharge base rate for the payer class (acute): the published base column alone. On MMC the non-comparable add-ons are paid on top and reported separately, so each amount maps to its own published column. Null on transfer claims, which pay capital per diem instead. |
capital_addon_ambulance_mmc | decimal | Non-comparable capital add-on: Ambulance (MMC acute). Null when zero or on transfer claims. |
capital_addon_teaching_election_mmc | decimal | Non-comparable capital add-on: Teaching Election Amendment Physician (MMC acute). Null when zero or on transfer claims. |
capital_addon_school_nursing_mmc | decimal | Non-comparable capital add-on: School of Nursing (MMC acute). Null when zero or on transfer claims. |
capital_addon_min_wage_mmc | decimal | Non-comparable capital add-on: Minimum Wage (MMC acute). The most widely applied of the four. Null when zero or on transfer claims. |
capital_per_diem_used | decimal | Capital per diem (acute). Surfaced only on transfer claims, where it replaces capital per discharge inside the daily rate. |
high_cost_cc_used | decimal | Cost-to-charge ratio. Surfaced only when a cost outlier is being evaluated. |
base_dr_payment | decimal | Computed: discharge_rate × siw (acute pre-add-ons). |
is_outlier_case | boolean | TRUE when the cost-outlier rule fired. Suppressed (null) when not applicable; only surfaced as a positive callout. |
cost_of_case | decimal | gross_charges × high_cost_cc (acute outlier). |
cost_outlier_threshold | decimal | Per-DRG outlier threshold. Surfaced only when an outlier is being evaluated. |
outlier_threshold_adjusted | decimal | cost_outlier_threshold × isaf. |
outlier_eligible_cost | decimal | max(0, cost_of_case − threshold). |
outlier_marginal_pct | decimal | 0.60: NY's marginal cost percentage. Surfaced only when an outlier fired. |
outlier_amount | decimal | Outlier dollar amount. |
is_transfer_case | boolean | TRUE when the transfer methodology applied. Suppressed (null) when not applicable; only surfaced as a positive callout. Also null for transfer-only DRGs 580/581, which are paid the full DRG rate per 10 NYCRR §86-1.21(b)(2). |
transfer_days_used | integer | Days priced at the transfer per diem: length_of_stay − alc_days. ALC days are paid separately at the ALC per diem. |
transfer_adjustment_factor | decimal | 1.20, or 1.00 when the DRG's average length of stay is 1 (10 NYCRR §86-1.21(b); the factor is not applied in that case). |
transfer_per_diem | decimal | (base_dr_payment / alos × transfer_adjustment_factor) + capital_per_diem. Capital per diem is added after the factor, not multiplied by it. |
transfer_adjusted_amount | decimal | min(transfer_per_diem × transfer_days_used, base_dr_payment + capital_per_disch). The cap is the full inlier payment, not the bare DRG base. |
acute_alc_per_diem_used | decimal | Acute ALC per diem. Surfaced only when alc_days > 0. |
safety_net_sdp_per_disch_mmc | decimal | Safety Net per-discharge add-on (MMC acute). |
hh_acr_per_disch_mmc | decimal | H+H Average Commercial Rate per-discharge add-on (MMC acute, NYC public hospitals). |
psych_base_per_diem_used | decimal | Psych base per-diem for payer class and age group. |
age_factor_used | decimal | Psych age factor (1.3597 for CHILD ≤17). Suppressed (null) for ADULT; only surfaced when the multiplier shifted the per-diem. |
age_factor_reason | string | Human-readable reason the age factor applied. Suppressed when no factor applied. |
mr_factor_used | decimal | MR factor (1.0599 when intellectual disability declared). Suppressed (null) when no MR factor applied. |
mr_factor_reason | string | Human-readable reason the MR factor applied. Suppressed when no factor applied. |
comorbidity_factor_used | decimal | Highest-matching psych comorbidity factor. Suppressed (null) when no comorbidity selected. |
comorbidity_category_used | string | Comorbidity category label. Suppressed when no comorbidity selected. |
psych_non_op_per_diem_used | decimal | Psych non-operating per-diem amount. |
psych_ect_per_treatment_used | decimal | Psych ECT per-treatment rate. Surfaced only when ect_treatments > 0. |
ect_treatments_used | integer | ECT treatments echoed. Surfaced only when > 0. |
psych_alc_per_diem_used | decimal | Psych ALC per-diem rate. Surfaced only when alc_days > 0. |
psych_sdp_per_diem_mmc | decimal | Psych Safety Net SDP per-diem add-on (MMC). Surfaced only on MMC psychiatric when populated. |
psych_hh_acr_per_diem_mmc | decimal | Psych H+H ACR per-diem add-on (MMC, NYC public hospitals). Surfaced only on MMC psychiatric when populated. |
psych_dme_mmc | decimal | Psych DME amount paid on MMC. Surfaced only on MMC psychiatric when populated. |
los_scale_days_at_1_20 | integer | Days paid at the 1.20 scale factor (Days 1-4). |
los_scale_days_at_1_00 | integer | Days paid at 1.00 scale (Day 5 onward). |
los_scaled_total | decimal | Effective scaled day count. |
prior_admission_within_30d_applied | boolean | TRUE when readmission rule shifted Day 1 to Day-4 scaling. Suppressed (null) when not applicable. |
prior_admission_within_30d_used | boolean | Echoed input. Suppressed (null) when FALSE. |
has_intellectual_disability_used | boolean | Echoed input. Suppressed (null) when FALSE. |
age_group_used | string | Echoed age group (ADULT / CHILD) for psychiatric. |
per_diem_used | decimal | Per-diem rate (per-diem service types). Suppressed (null) when 0. |
alc_per_diem_used | decimal | ALC per-diem (per-diem service types). Suppressed (null) when alc_days = 0 or per-diem = 0. |
specialty_acute_nyc_upl_mmc | decimal | NYC UPL Conversion add-on (specialty_acute MMC, NYC public). Surfaced only when populated. |
length_of_stay_used | integer | LOS used in computation. Echoed when supplied; surfaced unconditionally on psychiatric / per-diem (required input). |
non_alc_days | integer | LOS − alc_days (per-diem). |
alc_days_used | integer | ALC days echoed. Suppressed (null) when 0. |
gross_charges_used | decimal | Charges echoed. Surfaced only when supplied. |
transfer_claim_used | boolean | transfer_claim echoed. Suppressed (null) when FALSE; only surfaced as a positive callout. |
hcra_surcharge_pct_used | decimal | HCRA surcharge percentage (constant 7.04% since 4/1/2009). |
hcra_surcharge_amount | decimal | HCRA dollar amount included in payment_rate. |
discharge_date_used | date | The discharge date the rate was priced against, echoed from the request. When you omit discharge_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/ny/inpatient/rate?\ billing_code=140-2&\ npi=1659307817&\ payer_class=FFS&\ discharge_date=2024-01-15" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1659307817",
"state_provider_id": "01234567",
"opcert": "0101000H",
"provider_name": "ALBANY MEDICAL CENTER HOSPITAL",
"city": "ALBANY",
"county": "ALBANY",
"state": "NY",
"zip_code": "12208",
"billing_code": "140-2",
"billing_code_type": "APR-DRG",
"billing_code_description": "CHRONIC OBSTRUCTIVE PULMONARY DISEASE",
"service_type": "acute",
"service_type_source": "explicit",
"apr_drg_code": "140",
"soi": 2,
"payer_class": "FFS",
"payer_class_label": "Fee-for-Service",
"payment_rate": "7639.41",
"payment_rate_type": "claim",
"calculation_method": "$7,286.37 (Discharge Case Payment Rate) × 0.722 (SIW) = $5,260.76 (Base DRG Payment)\n+ $1,135.51 (Direct Medical Education) + $740.70 (Capital Per Discharge) + $502.44 (HCRA Surcharge 7.04%)\n= $7,639.41 (Total Payment)",
"siw": "0.722",
"discharge_rate_used": "7286.37",
"dme_used": "1135.51",
"capital_per_disch_used": "740.70",
"base_dr_payment": "5260.76",
"hcra_surcharge_pct_used": "0.0704",
"hcra_surcharge_amount": "502.44",
"statewide_base_price_used": "7460.06",
"discharge_date_used": "2024-01-15",
"effective_start_date": "2024-01-01",
"effective_end_date": "2024-03-31"
}
]/ny/inpatient/rate/batchLook up multiple NY inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "140-2",
"npi": "1659307817",
"payer_class": "FFS"
},
{
"billing_code": "750-1",
"npi": "1417027558",
"payer_class": "MMC",
"service_type": "psychiatric",
"length_of_stay": 10,
"age_group": "CHILD"
}
]
}/ny/providers/searchNew York Provider Search
Search for NY Medicaid providers by NPI, MMIS ID, OPCERT (Article 28 hospitals), name, location, or taxonomy. Returns provider details with rate availability.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | Provider NPI (10 digits). |
state_provider_id | string | NY Medicaid Provider ID (MMIS, 8-digit). |
opcert | string | NY Operating Certificate (Article 28 hospitals). |
provider_name | string | Provider name (partial match, case-insensitive). |
city | string | City (partial match). |
county | string | County (partial match). |
zip_code | string | ZIP code (exact match). |
ny_profession_or_service | string | NY-published profession/service category (partial match). Examples: Physician, Nurse Practitioner, Podiatrist. |
ny_provider_specialty | string | NY-published specialty sub-classification (partial match). Examples: Cardiology, Geriatric Medicine. |
taxonomy | string | NPPES primary taxonomy display name (partial match). NUCC-enriched display name. |
provider_type | string | Values: HOSPITAL, PHYSICIAN, OUTPATIENT_CLINIC_ASC, LABORATORY. |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳matched_npi | string | The NPI you searched by, when it is one of this hospital's other NY-Medicaid-enrolled NPIs rather than the one in npi. Null when you searched by npi itself. |
↳state_provider_id | string | MMIS ID. |
↳opcert | string | Operating Certificate (hospitals only). |
↳provider_name | string | Provider name. |
↳provider_type | string | NY provider type. |
↳provider_type_label | string | Human-readable provider type. |
↳entity_type | string | Individual or Organization. |
↳ny_profession_or_service | string | NY profession/service category (comma-delimited title case). |
↳ny_provider_specialty | string | NY specialty (comma-delimited title case). |
↳primary_taxonomy | string | NPPES primary taxonomy display name (NUCC-enriched). |
↳street_address | string | Street address. |
↳city | string | City. |
↳county | string | County. |
↳state | string | State. |
↳zip_code | string | ZIP. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
↳available_service_types | string[] | IP service_types this hospital publishes rates for (acute, psychiatric, specialty_acute, cah, med_rehab, chem_dep_rehab, dual_diag_adult, dual_diag_child). Values match the service_type input on /ny/inpatient/rate. Empty for non-hospitals. |
total_results | integer | Total results found. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/ny/providers/search?\ provider_type=HOSPITAL&\ city=New+York" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1417027558",
"state_provider_id": "01234567",
"opcert": "7000045H",
"provider_name": "Bronxcare Hospital Center",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"ny_profession_or_service": "Hospital - Inpatient, Outpatient",
"ny_provider_specialty": null,
"primary_taxonomy": "General Acute Care Hospital",
"street_address": "1650 Selwyn Avenue",
"city": "Bronx",
"county": "Bronx",
"state": "NY",
"zip_code": "10457",
"op_rates": true,
"ip_rates": true,
"available_service_types": [
"acute",
"psychiatric"
]
}
],
"total_results": 1,
"limit_applied": 100
}/oh/outpatient/rateOhio Outpatient Rates
Look up an Ohio Medicaid outpatient rate. Physicians, imaging centers, and clinical labs are reimbursed by HCPCS code from fee schedules (MSRIAP for physicians and imaging, the Clinical Lab schedule for labs). Hospitals and ASCs are reimbursed per claim using EAPG rates.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS code (e.g., 99213) or EAPG code (e.g., 00002). |
billing_code_type | string | Code system filter. Values: HCPCS, EAPG. If omitted, returns results for all matching code systems. |
npi1 required | string | National Provider Identifier (10 digits). |
provider_name1 required | string | Provider name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. If omitted, returns rates across all matching provider types for the code. |
modifier | string | Modifier. Values: 26 (Professional Component), TC (Technical Component). Matched to a pre-multiplied row in the data layer; modifier_adjustment in the response carries the multiplier when one was applied. Other modifiers (e.g., 'QW' for CLIA-waived lab) match published per-modifier rows directly when present. |
place_of_service | string | Place of service (MSRIAP only; ignored for EAPG). Values: facility, non_facility. If omitted, returns the source default rate (typically non-facility). |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Selects the fee schedule (HCPCS) or relative-weight version (EAPG) in effect on this date. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
provider_name | string | Provider name. |
provider_type | string | State Rates provider classification. |
provider_type_label | string | Human-readable provider type label. |
hospital_class | string | Derived facility-type classification (HOSPITAL only). Values: Critical Access, Children's, Teaching, Rural, Psychiatric, General Acute Care. Psychiatric is assigned when the hospital has a published psych per-diem rate (FSP); other hospitals fall back to peer-group bucketing. |
primary_taxonomy_code | string | NPPES primary taxonomy code (non-hospital providers). |
primary_taxonomy_display_name | string | NPPES primary taxonomy display name. |
street_address | string | Provider street address. |
city | string | Provider city. |
county | string | Provider county. |
state | string | Provider state (always 'OH'). |
zip_code | string | Provider ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
modifier | string | Modifier applied (e.g., '26', 'TC', 'QW'). |
modifier_adjustment | decimal | Multiplier applied to base_rate to derive payment_rate. Populated only when the rate is a derived modifier row (currently MSRIAP modifier 26 / TC). NULL when payment_rate is published as-is: base rates, Lab modifier rows where ODM publishes the modified rate flat (QW / 26 / TC), and EAPG. HCPCS path only. |
place_of_service | string | Place of service used (MSRIAP only). |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
eapg_weight | decimal | EAPG relative weight (Solventum 3M v3.17). EAPG path only. |
asc_flat_base | decimal | ASC statewide flat base rate ($90.98 for 1/1/2024+, $83.34 for 1/2/2020–12/31/2023). ASC path only. |
outpatient_base_rate | decimal | Hospital-specific OP base rate. Hospital EAPG path only. |
op_cca_rate | decimal | Hospital OP Cost-Coverage Add-on per detail line. Hospital EAPG path only. |
xix_op_ccr | decimal | Hospital XIX OP cost-to-charge ratio (reference value). Hospital EAPG path only. |
base_rate | decimal | Source fee-schedule rate for this code/POS before any modifier adjustment. When modifier_adjustment is populated, payment_rate = base_rate × modifier_adjustment (cent-rounded). When no adjustment was applied, base_rate equals payment_rate. HCPCS path only. |
hospital_pa_advisory | string | MSRIAP prior-auth advisory text. HCPCS path only. |
is_manually_priced | boolean | MSRIAP sentinel: rate is determined case-by-case (BR/FP/PA/PC). payment_rate=$0.00 with explanatory message. |
is_flat_rate | boolean | EAPG sentinel: flat-rate EAPG paid by OAC policy not weight × base (FR sentinel). payment_rate=NULL with explanatory message. |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/oh/outpatient/rate?\ billing_code=99213&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"provider_name": "OHIO MEDICAL GROUP",
"provider_type": "PHYSICIAN",
"provider_type_label": "Physician",
"hospital_class": null,
"primary_taxonomy_code": "207R00000X",
"primary_taxonomy_display_name": "Internal Medicine",
"street_address": "100 MAIN ST",
"city": "COLUMBUS",
"county": "FRANKLIN",
"state": "OH",
"zip_code": "43215",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"modifier": null,
"modifier_adjustment": null,
"place_of_service": "non_facility",
"payment_rate": "46.23",
"payment_rate_type": "fee_schedule",
"calculation_method": "MSRIAP Fee Schedule (Non-Facility) = $46.23",
"eapg_weight": null,
"asc_flat_base": null,
"outpatient_base_rate": null,
"op_cca_rate": null,
"xix_op_ccr": null,
"base_rate": "46.23",
"hospital_pa_advisory": "No PA",
"is_manually_priced": false,
"is_flat_rate": null,
"date_of_service_used": "2026-08-01",
"effective_start_date": "2026-01-01",
"effective_end_date": null
}
]/oh/outpatient/rate/batchLook up multiple OH outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "99213",
"npi": "1234567890"
},
{
"billing_code": "00002",
"billing_code_type": "EAPG",
"npi": "1043641897"
}
]
}/oh/inpatient/rateOhio Inpatient Claims
Look up an Ohio Medicaid APR-DRG inpatient payment rate. Incorporates capital and medical-education add-ons, cost outliers, transfer per-diem caps, and special claim types such as Medicare crossovers, organ acquisition, and psychiatric per-diems.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code. Accepts '140-2', '140', '0140-2', '0140', or '1402' (composite is parsed into apr_drg_code + soi). |
npi1 required | string | National Provider Identifier (10 digits). |
provider_name1 required | string | Hospital name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
discharge_date | string | Discharge date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Drives all DRG pricing parameter lookups. |
transfer_claim | boolean | Transfer claim. Discharge status 02, 05, 63, 65, 66, 82, 85, 91, 93, or 94 (transferred to another facility). |
interim_claim | boolean | Interim claim: a long stay billed in periodic interim increments, reconciled to the final DRG at discharge. |
length_of_stay | integer | LOS in days. Required for transfer + interim. Defaults to the DRG's average length of stay. |
total_charges | decimal | Covered billed charges. Required for the outlier, interim, lesser-of-charges, and organ-acquisition paths. |
crossover_claim | boolean | Medicare-Medicaid dual-eligible crossover claim? Swaps base rate + IP CCR to medicare_crossover_* columns. Capital, Med-ED, IP CCA stay on standard columns. |
organ_acquisition | boolean | Organ acquisition claim (heart, lung, liver, or pancreas). Requires total_charges. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Hospital NPI. |
provider_name | string | Hospital name. |
hospital_class | string | Derived facility-type classification. Values: Critical Access, Children's, Teaching, Rural, Psychiatric, General Acute Care. Psychiatric is assigned when the hospital has a published psych per-diem rate (FSP); other hospitals fall back to peer-group bucketing. |
street_address | string | Hospital street address. |
city | string | Hospital city. |
county | string | Hospital county. |
state | string | Hospital state. |
zip_code | string | Hospital ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
apr_drg_code | string | Base APR-DRG code (3-digit). |
soi | integer | Severity of Illness (1–4). |
casemix_relative_weight | decimal | OH-published DRG relative weight for this (DRG, SOI). |
average_length_of_stay | decimal | Statewide average length of stay for this DRG (drives transfer per-diem calc). |
is_not_covered | boolean | DRG flagged 'Not Covered' in source (specific transplants under DRG 772). |
inpatient_base_rate | decimal | Hospital IP base rate (or medicare_crossover_ip_base_rate when crossover_claim=true). |
capital_rate | decimal | Hospital combined capital rate. |
meded_rate | decimal | Hospital Med-ED rate (0 for non-eligible hospitals). |
ip_cca_rate | decimal | Hospital IP CCA per-discharge rate. |
xix_ip_ccr | decimal | Hospital XIX IP cost-to-charge ratio (used for outlier and interim calculations). |
psych_per_diem_rate | decimal | FSP psych per-diem rate. FSP path only. |
drg_base_payment | decimal | DRG Base Payment = inpatient_base_rate × casemix_relative_weight. |
capital_allowance | decimal | Capital Allowance = capital_rate × casemix_relative_weight. |
meded_allowance | decimal | Med-ED Allowance = meded_rate × casemix_relative_weight. |
cca_amount | decimal | IP CCA flat amount per discharge. |
outlier_adjustment_applied | boolean | Whether the cost-outlier add-on fired. |
outlier_threshold | decimal | Outlier threshold = drg_base_payment + fixed_outlier_threshold. |
fixed_outlier_threshold | decimal | Fixed threshold per SPA §F: $50,000 for neonate/tracheostomy, $75,000 otherwise. |
outlier_threshold_basis | string | Basis used: 'neonate', 'tracheostomy', or 'standard'. |
estimated_cost | decimal | cost_of_case = total_charges × xix_ip_ccr. |
outlier_eligible_cost | decimal | eligible_outlier_cost = estimated_cost − outlier_threshold (when positive). |
outlier_marginal_pct | decimal | Outlier marginal cost percentage applied (80% per SPA §F). |
outlier_amount | decimal | Outlier add-on = eligible_outlier_cost × outlier_marginal_pct. |
transfer_adjustment_applied | boolean | Whether the transfer per-diem cap reduced the DRG base payment. |
statewide_avg_los | decimal | Statewide average LOS used for transfer per-diem (= DRG average_length_of_stay). |
transfer_per_diem | decimal | Transfer per-diem = (inpatient_base_rate × casemix_relative_weight) / statewide_avg_los. |
transfer_per_diem_total | decimal | transfer_per_diem × (length_of_stay + 1). |
transfer_adjusted_amount | decimal | DRG base after transfer cap = min(transfer_per_diem_total, drg_base_payment). |
interim_payment_applied | boolean | Whether the interim-claim cost-based pricing path was used. |
interim_payment_amount | decimal | Interim payment = xix_ip_ccr × total_charges. |
fsp_per_diem_applied | boolean | Whether the FSP psych per-diem path was used (hospital has psych_per_diem_rate > 0). |
fsp_per_diem_amount | decimal | FSP per-diem payment = length_of_stay × psych_per_diem_rate. |
organ_acquisition_applied | boolean | Whether the organ-acquisition 100%-of-charges rule was used. |
organ_acquisition_amount | decimal | Organ acquisition payment = total_charges. |
crossover_claim_applied | boolean | Whether the Medicare crossover formula path was used. |
charge_cap_applied | boolean | Whether the lesser-of-charges cap reduced the final payment (only fires when outlier qualifies, per SPA §F(3)). |
length_of_stay_used | integer | LOS used in calculation. |
total_charges_used | decimal | Total charges used in calculation. |
discharge_date_used | date | The discharge date the rate was priced against, echoed from the request. When you omit discharge_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/oh/inpatient/rate?\ billing_code=140-2&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"provider_name": "OHIO GENERAL HOSPITAL",
"hospital_class": "General Acute Care",
"street_address": "500 HOSPITAL DR",
"city": "CLEVELAND",
"county": "CUYAHOGA",
"state": "OH",
"zip_code": "44106",
"billing_code": "140-2",
"billing_code_type": "APR-DRG",
"billing_code_description": "CHRONIC OBSTRUCTIVE PULMONARY DISEASE",
"payment_rate": "3794.04",
"payment_rate_type": "claim",
"calculation_method": "Standard DRG: ($4897.92 (Hospital IP Base Rate) + $404.37 (Capital Rate) + $235.70 (Med-ED Rate)) × 0.569068 (DRG/SOI Relative Weight) + $642.55 (IP CCA per Discharge) = $3794.04 (Standard Payment).",
"apr_drg_code": "140",
"soi": 2,
"casemix_relative_weight": "0.569068",
"average_length_of_stay": "4.20",
"is_not_covered": false,
"inpatient_base_rate": "5897.21",
"capital_rate": "954.50",
"meded_rate": "0.00",
"ip_cca_rate": "-105.50",
"xix_ip_ccr": "0.2800",
"psych_per_diem_rate": null,
"drg_base_payment": "3356.27",
"capital_allowance": "543.27",
"meded_allowance": "0.00",
"cca_amount": "-105.50",
"outlier_adjustment_applied": false,
"outlier_threshold": null,
"fixed_outlier_threshold": null,
"outlier_threshold_basis": null,
"estimated_cost": null,
"outlier_eligible_cost": null,
"outlier_marginal_pct": null,
"outlier_amount": null,
"transfer_adjustment_applied": false,
"statewide_avg_los": null,
"transfer_per_diem": null,
"transfer_per_diem_total": null,
"transfer_adjusted_amount": null,
"interim_payment_applied": false,
"interim_payment_amount": null,
"fsp_per_diem_applied": false,
"fsp_per_diem_amount": null,
"organ_acquisition_applied": false,
"organ_acquisition_amount": null,
"crossover_claim_applied": false,
"charge_cap_applied": false,
"length_of_stay_used": 4,
"total_charges_used": null,
"discharge_date_used": "2026-08-01",
"effective_start_date": "2025-07-01",
"effective_end_date": null
}
]/oh/inpatient/rate/batchLook up multiple OH inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "140-2",
"npi": "1234567890"
},
{
"billing_code": "194-1",
"npi": "9876543210",
"length_of_stay": 7,
"total_charges": "120000",
"transfer_claim": true
}
]
}/oh/providers/searchOhio Provider Search
Search for Ohio Medicaid providers by NPI, name, location, taxonomy, provider type, or hospital class. Returns provider details with rate availability.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
provider_name | string | Provider name (partial match, case-insensitive). |
city | string | City (partial match). |
county | string | County (partial match). |
zip_code | string | ZIP code (exact match). |
taxonomy | string | NUCC taxonomy display name (partial match, non-hospital). |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. |
hospital_class | string | Hospital classification filter (HOSPITAL only). Values: Critical Access, Children's, Teaching, Rural, Psychiatric, General Acute Care. |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳provider_name | string | Provider name. |
↳provider_type | string | State Rates provider classification. |
↳provider_type_label | string | Human-readable provider type label. |
↳entity_type | string | Individual or Organization (always 'Organization' for HOSPITAL). |
↳primary_taxonomy | string | NPPES primary taxonomy display name (non-hospital). |
↳hospital_class | string | Derived facility-type classification (HOSPITAL only). Values: Critical Access, Children's, Teaching, Rural, Psychiatric, General Acute Care. |
↳street_address | string | Street address. |
↳city | string | City. |
↳county | string | County. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
total_results | integer | Total results found. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/oh/providers/search?\ provider_name=cleveland&\ provider_type=HOSPITAL" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1234567890",
"provider_name": "OHIO GENERAL HOSPITAL",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": null,
"hospital_class": "General Acute Care",
"street_address": "500 HOSPITAL DR",
"city": "CLEVELAND",
"county": "CUYAHOGA",
"state": "OH",
"zip_code": "44106",
"op_rates": true,
"ip_rates": true
}
],
"total_results": 1,
"limit_applied": 100
}/tx/outpatient/rateTexas Outpatient Rates
Look up a Texas Medicaid outpatient rate by HCPCS code and provider. Professional claims use fee schedules posted by TMHP, while hospital outpatient services use a combination of these same fee schedules and percent-of-charge reimbursement. Rates with and without CHIRP managed-care increases are provided.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS/CPT® procedure code (e.g., 99213). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | TPI: Texas Provider Identifier (hospitals only). |
ccn1 required | string | CMS Certification Number (exact match, hospitals only). |
provider_name1 required | string | Provider name (partial match, min 2 characters). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
provider_type | string | State Rates provider classification. Values: PHYSICIAN, HOSPITAL, ASC_HASC, HOSPITAL_OP_IMAGING, CLINICAL_LABORATORY, OUTPATIENT_BEHAVIORAL_HEALTH, AMBULANCE. If omitted, resolved from taxonomy. |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
place_of_service | string | Place of service (Physician only). Values: facility, non_facility. Defaults to non_facility. |
area_type | string | Hospital classification (Hospital OP Imaging only). Values: urban, rural. |
lab_type | string | Lab fee tier (Clinical Laboratory only). Values: clin_lab, sch, dshs. Defaults to clin_lab. |
modifier | string | Procedure modifier. Values: 26 (Professional Component), TC (Technical Component), or any TX state-specific modifier published on the row (e.g., U1, U3, UB, TH). Exact-match; unmatched modifiers return rate_found=false. |
billed_charges | decimal | Total billed charges. Required for hospital percent_of_charges codes. |
emergency_room | boolean | True if ER procedure. For hospitals, ASC surgical codes fall back to percent_of_charges (per TAC §355.8061). |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | TPI: Texas Provider Identifier. |
provider_name | string | Provider name. |
provider_type | string | State Rates provider classification used. Values: PHYSICIAN, HOSPITAL, ASC_HASC, HOSPITAL_OP_IMAGING, CLINICAL_LABORATORY, OUTPATIENT_BEHAVIORAL_HEALTH, AMBULANCE. |
provider_type_label | string | Human-readable label for the State Rates provider classification (e.g., Physician, Hospital). |
hospital_class | string | Hospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING. |
high_volume_provider | boolean | High volume Medicaid provider. |
ccn | string | CMS Certification Number (hospitals only). |
street_address | string | Provider street address. |
city | string | Provider city. |
county | string | Provider county. |
zip_code | string | Provider ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
payment_rate | decimal | Payment rate in dollars. 0.00 when payment_rate_type is not_payable. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, not_payable (TMHP's fee lookup explicitly lists the code as not payable for outpatient hospital claims at the date of service). |
ofl_determination | string | TMHP Online Fee Lookup payability class for this code and date (hospital outpatient only). Values: contracted (explicitly payable at contracted rate), not_payable (explicitly not payable), no_determination (the lookup's batch files carry no listing, so the line prices at a percentage of charges per TMPPM Hospital Services Handbook §4.5.2; see the accompanying advisory). Null wherever OFL payability does not gate the row: codes priced from a posted fee schedule, and the emergency-surgery fallback (an on-schedule ASC code performed in an emergency room, which TAC §355.8061 reimburses at a percentage of charges). |
calculation_method | string | Human-readable calculation formula with actual values. Percent-of-charges codes that TMHP's fee lookup explicitly confirms carry “Payable at contracted rate per TMHP's fee lookup.” |
procedure_type_used | string | Procedure type used for rate selection. |
tos_code | string | Type of Service code. |
tos_description | string | Type of Service description (e.g., MEDICAL SERVICES, SURGERY). |
modifier | string | Modifier on the matched rate row. Sourced from the row, not echoed from the request; when no row matches the requested modifier, rate_found=false. |
modifier_adjustment | decimal | Derived ratio against the unmodified base rate, populated on PC (modifier=26) and TC (modifier=TC) rows where a base sibling exists in the same partition. Typical values: ~0.3 for PC, ~0.7 for TC; PC + TC sums to 1.0 when both come from the same partition. NULL on base rows, state-modifier rows, hospital rows, and the ~4% of PC/TC rows where no base sibling is published in the source. |
place_of_service | string | Place of service used. |
area_type | string | Urban/Rural (Hospital OP Imaging only). |
lab_type | string | Lab tier (Clinical Laboratory only). |
age_group | string | Age group used. Values: ADULT, CHILD, ALL. |
is_manually_priced | boolean | True if rate requires manual review. |
emergency_room | boolean | True if ER procedure was specified. |
medicaid_fee | decimal | Pre-adjustment Medicaid fee (professional only). |
total_rvus | decimal | RVUs (Physician only). |
conversion_factor | decimal | Conversion factor (Physician only). |
outpatient_rcc | decimal | Outpatient interim rate (RCC). |
pct_allowable_charges | decimal | Percentage of allowable charges. |
effective_rate | decimal | Pre-calculated effective rate: RCC × pct allowable. |
source_fee_schedule | string | Source fee schedule key: ASC_HASC, CLINICAL_LABORATORY, HOSPITAL_OP_IMAGING. Machine-readable; filter on this. |
source_fee_schedule_label | string | Source fee schedule in words, as named in calculation_method. |
billed_charges | decimal | Billed charges provided. |
calculation_note | string | Note when charges not provided or manual pricing. |
chirp_adjustments | object | CHIRP adjustment per managed care program (STAR, STAR_PLUS, STAR_KIDS). Hospital only. Each contains outpatient_rate_increase, chirp_multiplier, and adjusted_payment. |
advisories | array | Informational advisories (hospital claims only), each with code and message. Present only when applicable; e.g., NO_CODE_LEVEL_DETERMINATION when TMHP's fee lookup batch files do not list the code and it is priced at a percentage of charges per TMPPM Hospital Services Handbook §4.5.2. |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/tx/outpatient/rate?\ billing_code=99213&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"state_provider_id": null,
"provider_name": "SMITH FAMILY MEDICINE",
"provider_type": "PHYSICIAN",
"provider_type_label": "Physician",
"hospital_class": null,
"high_volume_provider": null,
"ccn": null,
"street_address": "200 MAIN ST",
"city": "HOUSTON",
"county": "HARRIS",
"zip_code": "77001",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"payment_rate": "62.84",
"payment_rate_type": "fee_schedule",
"calculation_method": "Medicaid Fee (non-facility)",
"procedure_type_used": null,
"tos_code": "1",
"tos_description": "MEDICAL SERVICES",
"modifier": null,
"modifier_adjustment": null,
"place_of_service": "non_facility",
"area_type": null,
"lab_type": null,
"age_group": "ADULT",
"is_manually_priced": false,
"emergency_room": null,
"medicaid_fee": "62.84",
"total_rvus": "2.40",
"conversion_factor": "26.18",
"outpatient_rcc": null,
"pct_allowable_charges": null,
"effective_rate": null,
"source_fee_schedule": null,
"source_fee_schedule_label": null,
"billed_charges": null,
"calculation_note": null,
"chirp_adjustments": null,
"date_of_service_used": "2026-08-01",
"effective_start_date": "2024-09-01",
"effective_end_date": null
}
]/tx/outpatient/rate/batchLook up multiple TX outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"npi": "1234567890",
"billing_code": "99213"
},
{
"npi": "1234567890",
"billing_code": "99214",
"child_patient": true
}
]
}/tx/outpatient/claimTexas Outpatient Claims
Price a whole Texas Medicaid institutional outpatient claim (UB-04, type of bill 131) in one request: claim header plus up to 99 lines, with optional per-line service dates for claims spanning multiple days. Identify the billing hospital by NPI, CCN, or a name that matches exactly one hospital. Applies Texas claims-level outpatient reimbursement rules per the Texas Medicaid Provider Procedures Manual (TMPPM), 1 Tex. Admin. Code §355.8061, and Texas HHS billing guidance, and screens every claim against the CMS Medicaid NCCI procedure-to-procedure and MUE unit-limit edit files. Returns per-line allowed amounts, the fee-for-service claim total, CHIRP managed care adjusted totals, and informational flags. Returns expected reimbursement for a clean, payable claim.
Parameters
| Name | Type | Description |
|---|---|---|
npi1 required | string | Billing hospital NPI (10 digits). Provide npi, ccn, or provider_name. |
ccn1 required | string | CMS Certification Number (6 characters, e.g. 450035). Provide npi, ccn, or provider_name. |
provider_name1 required | string | Provider name (partial match, min 2 characters). Must match exactly one hospital. |
date_of_servicerequired | string | Statement date of service (MM/DD/YYYY or YYYY-MM-DD). Drives the rate and provider period used. |
emergency | boolean | True for emergency/unscheduled claims. Emergency surgery prices itemized (cost-reimbursed) instead of the day-surgery global fee; false applies the non-emergent ER differential to ER visit lines. Defaults to false. |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
type_of_bill | string | UB-04 type of bill. Only 131 (hospital outpatient) is supported; omit or pass 131. Nonpatient lab (141) and Medicare crossover claims are rejected. |
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
linesrequired | array | Claim lines (1–99). Each line: revenue_code (required; 3 or 4 digits), hcpcs (required for revenue codes Texas marks procedure-code-required: lab, imaging, ER, therapy), modifier, units (defaults to 1), billed_charges (required for cost-reimbursed lines; enables the lesser-of rule on fee schedule lines), and service_date (optional; defaults to the header date_of_service). On claims spanning multiple days, set service_date per line so the same-day checks (NCCI code pairs, daily unit limits, panel consolidation, ER bundling) group lines by the day the service actually occurred. Rates and the provider period always follow the header date_of_service. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
claim_priced | boolean | False when the claim could not be priced at all (hospital not found, no cost-report data). |
error_message | string | Explanation when claim_priced is false. |
npi | string | Billing hospital NPI (echoed). |
child_patient_used | boolean | Echo of child_patient. True when submitted as true; null otherwise. |
provider_name | string | Hospital name. |
ccn | string | CMS Certification Number. |
hospital_class | string | Hospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING. |
area_type | string | urban or rural (derived from hospital_class). |
high_volume_provider | boolean | High volume Medicaid provider. |
pricing_path | string | How the claim priced. Values: day_surgery (global payment: the highest-rated surgical procedure pays, other lines bundle to $0), itemized (each line priced independently and summed). |
claim_total | decimal | Fee-for-service expected reimbursement for the claim (sum of line allowed amounts). |
total_billed_charges | decimal | Sum of line billed charges, when provided. |
total_lines | integer | Number of lines submitted. |
lines_priced | integer | Number of lines with an allowed amount (including $0 bundled lines). |
lines | array | Per-line results, in submitted order. Each line: rate_found, pricing_bucket (asc_hasc_fee_schedule, clinical_lab_fee_schedule, imaging_fee_schedule, percent_of_charges, bundled, manually_priced, not_a_benefit, not_separately_payable, not_payable_to_facility, not_payable, or fee_schedule as a rare fallback), bundled, allowed_amount, hcpcs_description, calculation_method, ofl_determination, advisories, and echoes of the inputs including the line's service_date. ofl_determination carries the same payability class as the single-code endpoint (contracted, not_payable, no_determination, or null), and is unaffected by bundling rules, which change what a line pays rather than the code's payability. advisories carries the same {code, message} shape as the single-code endpoint, and is null on lines a claim-level rule repriced (bundling, ER/observation absorption, the non-emergent ER cap), where the flag and calculation_method explain the amount instead. |
claim_calculation | string | How the claim total was assembled: pricing path, bundling, reductions, and total, with actual values. |
rules_applied | array | Machine-readable claim-rule events in the order applied (e.g., day_surgery_global, obs_absorbs_er, non_emergent_er_cap, lesser_of). claim_calculation is rendered from exactly these events. |
chirp_adjustments | object | CHIRP managed care adjusted claim totals per program (STAR, STAR_PLUS, STAR_KIDS), each with the rate increase, multiplier, adjusted total, and the arithmetic. Models the fee-for-service floor. Individual MCO contract terms can pay differently. |
flags | array | Informational flags, each {code, line, message}: a machine-readable code, the claim line it refers to (null when claim-level), and a plain-English explanation with the Texas Medicaid manual citation. Flags never change the returned pricing. Every code is listed in the flag legend below. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
Flag legend
Flags are informational. They never change the returned pricing. Applied-rule flags accompany amounts the pricing already reflects; denial-risk flags mark amounts an adjudicator may pay differently; line-handling flags explain lines that could not be priced as submitted.
ER_ABSORBED_BY_OBSERVATION | Observation of 8+ hours absorbs the ER visit; ER lines pay $0. |
BRIEF_OBSERVATION_NOT_REIMBURSED | Observation under 8 hours folds into the ER visit; observation lines pay $0. |
ER_INJECTION_ADMIN_BUNDLED | Injection/infusion administration is included in the ER charge; pays $0. |
CRITICAL_CARE_NOT_PAYABLE_TO_FACILITY | Critical care visit codes pay the treating physician, not the hospital. |
NON_EMERGENT_ER_REDUCTION | Non-emergent ER visit reduced: flat fee, or 55% of allowed at rural hospitals. |
HIGH_VOLUME_UPLIFT_APPLIED | Designated high-volume provider; day-surgery payment increased 5.2%. |
DEVICE_BUNDLED | Device bundled into the day-surgery global payment. |
DEVICE_PAID_SEPARATELY | Device with its own published fee; paid separately from the day-surgery global. |
NOT_A_BENEFIT | Revenue code is not a Texas Medicaid benefit; pays $0. |
INCOMPLETE_SURGERY_MODIFIER | Modifier 73/74: the state suspends these claims for manual review; priced at the full rate. |
NCCI_PTP_CONFLICT | Billed with its NCCI column-1 partner code on the same day; the component line denies on adjudication. |
MUE_UNITS_EXCEEDED | Units exceed the Medicaid daily maximum for this code. |
MULTICHANNEL_LAB_PANEL_SUSPECTED | Same-day automated lab panels are consolidated to a combined fee. |
PACKAGED_SERVICE_EXCLUSION_RISK | Priced under cost reimbursement, but payers commonly package or exclude this service. |
OBSERVATION_OVER_48H | Observation beyond 48 total hours is denied. |
OBS_761_CONFLICT | Revenue code 761 denies when billed the same day as 760, 762, or 769. |
EMTALA_451_STANDALONE | EMTALA screening pays as a stand-alone service; other lines are not separately reimbursed. |
OBS_CONCURRENT_ACTIVE_MONITORING | Observation may overlap a procedure whose active monitoring is already included. |
RECOVERY_OBS_OVERLAP | Recovery room hours and observation hours cannot be billed for the same time. |
IIP_E0782_E0783_MUTEX | Only one implantable infusion pump code is payable per day. |
TMHP_CODE_PAIR_EDIT | A Texas code-pair rule denies or bundles this line with another code on the claim. |
RURAL_ER_SCOPE_UNCERTAIN | The rural ER reduction was applied to the visit line only; its exact scope is unconfirmed. |
INVALID_REVENUE_CODE | Not a valid Texas outpatient hospital revenue code; line skipped, claim still prices. |
MISSING_REQUIRED_HCPCS | This revenue code requires a procedure code on the line; line skipped, claim still prices. |
MANUALLY_PRICED_LINE | No published fee: the state prices this code manually; excluded from the claim total. |
PROFESSIONAL_MODIFIER_IGNORED | Modifier 26/TC ignored; facilities do not bill professional/technical splits. |
curl -X POST "https://staterates.health/api/v1/tx/outpatient/claim" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"npi": "1234567890",
"date_of_service": "2026-04-16",
"emergency": false,
"lines": [
{"revenue_code": "0360", "hcpcs": "33208", "units": 1, "billed_charges": 45200.00},
{"revenue_code": "0278", "hcpcs": "C1785", "units": 1, "billed_charges": 22900.00},
{"revenue_code": "0300", "hcpcs": "85025", "units": 1, "billed_charges": 2180.00}
]
}'{
"reference_id": null,
"claim_priced": true,
"error_message": null,
"npi": "1234567890",
"provider_name": "EXAMPLE MEDICAL CENTER",
"ccn": "450000",
"hospital_class": "Urban",
"area_type": "urban",
"high_volume_provider": false,
"date_of_service": "2026-04-16",
"emergency": false,
"child_patient_used": null,
"type_of_bill": "131",
"pricing_path": "day_surgery",
"claim_total": "6450.90",
"total_billed_charges": "70280.00",
"total_lines": 3,
"lines_priced": 3,
"lines": [
{
"line": 1,
"revenue_code": "360",
"hcpcs": "33208",
"modifier": null,
"units": 1,
"service_date": "2026-04-16",
"billed_charges": "45200.00",
"rate_found": true,
"pricing_bucket": "asc_hasc_fee_schedule",
"bundled": false,
"allowed_amount": "6450.90",
"hcpcs_description": null,
"calculation_method": "$6,450.90 (ASC/HASC fee schedule): highest-rated surgical procedure; pays the day-surgery global fee"
},
{
"line": 2,
"revenue_code": "278",
"hcpcs": "C1785",
"modifier": null,
"units": 1,
"service_date": "2026-04-16",
"billed_charges": "22900.00",
"rate_found": true,
"pricing_bucket": "bundled",
"bundled": true,
"allowed_amount": "0.00",
"hcpcs_description": "PACEMAKER, DUAL CHAMBER, RATE-RESPONSIVE (IMPLANTABLE)",
"calculation_method": "$0.00: bundled into the day-surgery global payment (implantable device; not on the separately-payable exception list)"
},
{
"line": 3,
"revenue_code": "300",
"hcpcs": "85025",
"modifier": null,
"units": 1,
"service_date": "2026-04-16",
"billed_charges": "2180.00",
"rate_found": true,
"pricing_bucket": "bundled",
"bundled": true,
"allowed_amount": "0.00",
"hcpcs_description": null,
"calculation_method": "$0.00: bundled into the day-surgery global payment (service provided in conjunction with the surgery)"
}
],
"claim_calculation": "Day surgery (scheduled): highest-rated surgical procedure 33208 pays $6,450.90 (ASC/HASC fee schedule); 2 other lines bundled to $0 per the global payment rule (TMPPM 2.11 §6.4.2.1). Claim total = $6,450.90.",
"rules_applied": [
{
"rule": "day_surgery_global",
"winning_line": 1,
"winning_code": "33208",
"fee": "6450.90",
"bundled_count": 2,
"separately_paid_devices": 0,
"high_volume_uplift": false
}
],
"chirp_adjustments": {
"STAR": {
"outpatient_rate_increase": "2.3200",
"chirp_multiplier": "3.3200",
"adjusted_claim_total": "21416.99",
"calculation": "$6,450.90 x (1 + 232.0%) = $21,416.99"
},
"STAR_PLUS": {
"outpatient_rate_increase": "2.3200",
"chirp_multiplier": "3.3200",
"adjusted_claim_total": "21416.99",
"calculation": "$6,450.90 x (1 + 232.0%) = $21,416.99"
},
"STAR_KIDS": null
},
"flags": [
{
"code": "DEVICE_BUNDLED",
"line": 2,
"message": "Device C1785 ($22,900.00 billed) is bundled into the day-surgery global payment. TMPPM pays separately only equipment with its own ASC/HASC fee (e.g., implantable infusion pumps E0782/E0783) per §6.2.9/§6.2.11."
}
],
"effective_start_date": "2026-04-01",
"effective_end_date": null
}/tx/inpatient/rateTexas Inpatient Claims
Look up a Texas Medicaid APR-DRG inpatient payment rate, with transfer adjustments, day and cost outlier pricing, PPC/PPR penalty reductions, and CHIRP managed care adjustments. The discharge date determines the effective rate period.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | APR-DRG code (e.g., 140 or 140-2). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | TPI: Texas Provider Identifier. |
ccn1 required | string | CMS Certification Number (exact match). |
provider_name1 required | string | Hospital name (partial match). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
discharge_date | string | Discharge date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Texas uses the discharge date (not admission date) to determine which rate period applies. |
transfer_claim | boolean | Transfer claim. Discharge status 02 (transferred to another facility). |
child_patient | boolean | True if patient is under 21 years of age. Defaults to false (adult). |
length_of_stay | integer | Length of stay in days. Required for transfers. Defaults to mean LOS. |
total_charges | decimal | Total charges for outlier calc and lesser-of rule. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | TPI: Texas Provider Identifier. |
provider_name | string | Provider name. |
hospital_class | string | Hospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING. |
ccn | string | CMS Certification Number. |
street_address | string | Hospital street address. |
city | string | Hospital city. |
county | string | Hospital county. |
zip_code | string | Hospital ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
apr_drg_code | string | Base DRG code. |
soi | integer | Severity of Illness (1–4). |
relative_weight | decimal | DRG relative weight. |
mean_los | decimal | Mean length of stay. |
is_delivery_drg | boolean | Whether this is a delivery-related DRG. |
inpatient_sda | decimal | Hospital Final SDA. |
delivery_sda | decimal | Delivery SDA (Rural/Children's only). |
sda_used | decimal | SDA used in this calculation. |
base_payment | decimal | Base payment: SDA × relative_weight. |
transfer_adjustment_applied | boolean | Whether transfer adjustment was applied. |
transfer_per_diem | decimal | Per-diem used for the transfer calculation: base_payment / mean_los, rounded to cents before multiplying by length_of_stay_used. Populated only when a transfer adjustment was applied. |
transfer_adjusted_amount | decimal | Payment after transfer adjustment. |
outlier_adjustment_applied | boolean | Whether outlier was applied. |
outlier_amount | decimal | Outlier adjustment amount. |
outlier_type | string | Type of outlier applied. Values: day_outlier, cost_outlier. |
outlier_adjusted_amount | decimal | Running payment after the outlier was added, before the charge cap and any PPC/PPR reduction. Populated only when an outlier adjustment was applied. |
estimated_cost | decimal | Estimated cost for cost outlier calc. |
cost_outlier_threshold | decimal | Cost outlier threshold. |
day_outlier_threshold | integer | Day outlier threshold. |
marginal_cost_pct | float | Marginal cost percentage (0.60). |
outlier_reduction_factor | float | Outlier reduction factor by hospital class. |
inpatient_rcc | float | Hospital inpatient cost-to-charge ratio. |
universal_mean | decimal | Universal mean cost for cost outlier threshold. |
charge_cap_applied | boolean | Whether lesser-of rule reduced payment. |
ppc_pct_applied | decimal | Hospital-specific PPC penalty. |
ppr_pct_applied | decimal | Hospital-specific PPR penalty. |
ppc_ppr_adjusted_amount | decimal | Payment after PPC/PPR reduction. |
length_of_stay_used | integer | LOS used in calculation. |
total_charges_used | decimal | Total charges used. |
total_charges_source | string | Source of charges used. Values: actual, estimated. |
chirp_adjustments | object | CHIRP IP adjustment per program (STAR, STAR_PLUS, STAR_KIDS). Each contains inpatient_rate_increase, chirp_multiplier, and adjusted_payment. |
discharge_date_used | date | The discharge date the rate was priced against, echoed from the request. When you omit discharge_date, this returns the server default (today), so the resolved date is always visible. |
child_patient_used | boolean | Echo of child_patient. True when submitted as true; null otherwise. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/tx/inpatient/rate?\ billing_code=140-2&\ npi=1234567890" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1234567890",
"state_provider_id": "000001",
"provider_name": "TEXAS GENERAL HOSPITAL",
"hospital_class": "Urban",
"ccn": "450001",
"street_address": "1000 MEDICAL CENTER BLVD",
"city": "HOUSTON",
"county": "HARRIS",
"zip_code": "77030",
"billing_code": "140-2",
"billing_code_type": "APR-DRG",
"billing_code_description": "CHRONIC OBSTRUCTIVE PULMONARY DISEASE",
"payment_rate": "8245.30",
"payment_rate_type": "claim",
"calculation_method": "SDA ($8,962.28) × Weight (0.9200) = $8,245.30 (Estimated Payment)",
"apr_drg_code": "140",
"soi": 2,
"relative_weight": "0.9200",
"mean_los": "3.80",
"is_delivery_drg": false,
"inpatient_sda": "8962.28",
"delivery_sda": null,
"sda_used": "8962.28",
"base_payment": "8245.30",
"transfer_adjustment_applied": false,
"transfer_per_diem": null,
"transfer_adjusted_amount": null,
"outlier_adjustment_applied": false,
"outlier_amount": null,
"outlier_type": null,
"outlier_adjusted_amount": null,
"estimated_cost": null,
"cost_outlier_threshold": null,
"day_outlier_threshold": null,
"marginal_cost_pct": 0.6,
"outlier_reduction_factor": 0.9,
"inpatient_rcc": 0.35,
"universal_mean": "12500.00",
"charge_cap_applied": false,
"ppc_pct_applied": "0.0000",
"ppr_pct_applied": "0.0000",
"ppc_ppr_adjusted_amount": "8245.30",
"length_of_stay_used": 4,
"total_charges_used": null,
"total_charges_source": null,
"chirp_adjustments": {
"STAR": {
"inpatient_rate_increase": "0.57",
"chirp_multiplier": "1.57",
"adjusted_payment": "12945.12"
},
"STAR_PLUS": {
"inpatient_rate_increase": "0.57",
"chirp_multiplier": "1.57",
"adjusted_payment": "12945.12"
},
"STAR_KIDS": {
"inpatient_rate_increase": "0.57",
"chirp_multiplier": "1.57",
"adjusted_payment": "12945.12"
}
},
"discharge_date_used": "2026-08-01",
"child_patient_used": null,
"effective_start_date": "2024-09-01",
"effective_end_date": null
}
]/tx/inpatient/rate/batchLook up multiple TX inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "140-2",
"npi": "1234567890"
},
{
"billing_code": "560-1",
"npi": "9876543210",
"length_of_stay": 4,
"total_charges": "62000",
"child_patient": true
}
]
}/tx/providers/searchTexas Provider Search
Search for Texas Medicaid providers by NPI, TPI, CCN, name, or location. Returns provider details including hospital classification and rate availability.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
state_provider_id | string | TPI: Texas Provider Identifier. |
ccn | string | CMS Certification Number. |
provider_name | string | Provider name (partial match, min 2 characters). |
city | string | City (partial match). |
zip_code | string | ZIP code (exact match). |
county | string | County (partial match). |
taxonomy | string | Taxonomy code filter. |
provider_type | string | State Rates provider classification. Values: PHYSICIAN, HOSPITAL, ASC_HASC, HOSPITAL_OP_IMAGING, CLINICAL_LABORATORY, OUTPATIENT_BEHAVIORAL_HEALTH, AMBULANCE. |
hospital_class | string | Hospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING. |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳state_provider_id | string | TPI: Texas Provider Identifier. |
↳provider_name | string | Provider name. |
↳provider_type | string | State Rates provider classification. |
↳provider_type_label | string | Human-readable label for the State Rates provider classification. |
↳entity_type | string | Individual or Organization. |
↳primary_taxonomy | string | Primary taxonomy code. |
↳street_address | string | Street address. |
↳city | string | City. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳county | string | County. |
↳ccn | string | CMS Certification Number (hospitals only). |
↳hospital_class | string | Hospital classification (hospitals only). Values: Urban, Rural, Childrens, STATE OWNED TEACHING. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
total_results | integer | Total results found. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/tx/providers/search?\ provider_name=memorial&\ city=houston" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1234567890",
"state_provider_id": "000001",
"provider_name": "MEMORIAL HERMANN HOSPITAL",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": "282N00000X",
"street_address": "6411 FANNIN ST",
"city": "HOUSTON",
"state": "TX",
"zip_code": "77030",
"county": "HARRIS",
"ccn": "450001",
"hospital_class": "Urban",
"op_rates": true,
"ip_rates": true
}
],
"total_results": 1,
"limit_applied": 100
}/wv/outpatient/rateWest Virginia Outpatient Rates
Look up a West Virginia Medicaid outpatient rate. Pricing routes by provider type across WV's outpatient fee schedules: RBRVS, clinical lab, emergency department, outpatient surgery, and ASC.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | HCPCS/CPT® code (e.g., 99213). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | WV Medicaid Provider ID (e.g., '0001258000'). Published for hospitals only; other provider types have none. |
provider_name1 required | string | Provider name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. If omitted, resolved from the provider's NPI. |
modifier | string | Modifier. Values: 26 (Professional Component), TC (Technical Component), QW (CLIA-waived lab). Matched exactly to a published rate row. For hospital/imaging-center imaging, the TC row is auto-selected when no modifier is passed. RBRVS only. |
place_of_service | string | Place of service (RBRVS only). Values: facility, non_facility. If omitted, the non_facility rate is returned. No effect on lab / ED / surgery / ASC paths. |
units | integer | Number of 15-minute time units billed. Applies to outpatient surgery codes only, capped at the code's maximum payable units. Ignored for other code types. Defaults to 1. |
date_of_service | string | Date of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Selects the fee schedule in effect on this date. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Provider NPI. |
state_provider_id | string | WV Medicaid Provider ID (hospitals only; NULL for non-hospital providers). |
provider_name | string | Provider name. |
provider_type | string | State Rates provider classification. |
provider_type_label | string | Human-readable provider type label. |
hospital_class | string | Hospital peer-group classification (HOSPITAL only). Values: RRC, SCH, ACH, MDH and combinations (e.g., 'SCH/RRC'). |
primary_taxonomy_code | string | NPPES primary taxonomy code (non-hospital providers). |
primary_taxonomy_display_name | string | NPPES primary taxonomy display name. |
street_address | string | Provider street address. |
city | string | Provider city. |
county | string | Provider county. |
state | string | Provider state (always 'WV'). |
zip_code | string | Provider ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
modifier | string | Modifier on the matched row (e.g., '26', 'TC', 'QW'). Sourced from the row, not the request input. |
modifier_adjustment | decimal | Multiplier applied to base_rate to derive payment_rate on a derived modifier row (e.g., 26/TC split). NULL when the rate is published as-is. |
base_rate | decimal | Source fee-schedule rate before any modifier adjustment. When modifier_adjustment is populated, payment_rate = base_rate × modifier_adjustment; otherwise base_rate equals payment_rate. |
place_of_service | string | Place of service on the matched row (RBRVS only). |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
service_category | string | Which fee schedule priced the code. Values: physician_rbrvs, clinical_lab, emergency_department, op_surgery, asc. |
cbsa | string | CBSA used to select the ASC rate tab (ASC only), resolved from the provider's county. |
per_unit_rate | decimal | Per-15-minute-unit rate before the units multiplier (op_surgery only). |
units_used | integer | Units applied to the per-unit rate (op_surgery only), after capping at max_units. |
max_units | integer | Maximum payable 15-minute units for this surgery code (op_surgery only). |
unit_max_reimbursement | decimal | Ceiling reimbursement at max_units (op_surgery only, context). |
is_manually_priced | boolean | TRUE when the code is priced case-by-case (carrier/manual/unlisted/cost-invoice). payment_rate NULL with an explanatory message. |
is_packaged | boolean | TRUE for ASC packaged rows: covered, no separate payment. payment_rate $0.00 with an explanatory message. |
date_of_service_used | date | The date of service the rate was priced against, echoed from the request. When you omit date_of_service, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/wv/outpatient/rate?\ billing_code=99213&\ npi=1063737765" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1063737765",
"state_provider_id": null,
"provider_name": "WEST VIRGINIA PHYSICIANS GROUP",
"provider_type": "PHYSICIAN",
"provider_type_label": "Physician",
"hospital_class": null,
"primary_taxonomy_code": "207R00000X",
"primary_taxonomy_display_name": "Internal Medicine",
"street_address": "100 MAIN ST",
"city": "HUNTINGTON",
"county": "CABELL",
"state": "WV",
"zip_code": "25701",
"billing_code": "99213",
"billing_code_type": "HCPCS",
"billing_code_description": null,
"modifier": null,
"modifier_adjustment": null,
"base_rate": "63.48",
"place_of_service": "non_facility",
"payment_rate": "63.48",
"payment_rate_type": "fee_schedule",
"calculation_method": "RBRVS Fee Schedule (Non-Facility) = $63.48",
"service_category": "physician_rbrvs",
"cbsa": null,
"per_unit_rate": null,
"units_used": null,
"max_units": null,
"unit_max_reimbursement": null,
"is_manually_priced": false,
"is_packaged": false,
"date_of_service_used": "2026-08-01",
"effective_start_date": "2026-04-01",
"effective_end_date": null
}
]/wv/outpatient/rate/batchLook up multiple WV outpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "99213",
"npi": "1063737765"
},
{
"billing_code": "71046",
"npi": "1841271459"
}
]
}/wv/inpatient/rateWest Virginia Inpatient Claims
Look up a West Virginia Medicaid MS-DRG inpatient payment rate, with adjustments for cost outliers, transfer per-diem pricing, and same-day and next-day claims. The discharge date determines the effective rate year.
Parameters
| Name | Type | Description |
|---|---|---|
reference_id | string | A correlation ID (max 128 chars) echoed back unchanged in the response, so you can match each rate result to the source claim or account in your system. **Do NOT pass PHI in this field.** Use a hashed value, UUID, or per-batch synthetic ID; never raw account numbers, MRNs, or claim numbers from your billing or EHR system. State Rates does not log, persist, or inspect this value; it is stripped from request logs and error tracking. |
billing_coderequired | string | MS-DRG code (e.g., '470', 'N90'). |
npi1 required | string | National Provider Identifier (10 digits). |
state_provider_id1 required | string | WV Medicaid Provider ID for the hospital (e.g., '0001258000'). |
provider_name1 required | string | Hospital name (partial match, case-insensitive). Returns only providers that can be priced for this request, capped at 20; `provider_matches_total` on each result gives the number that qualified. |
discharge_date | string | Discharge date (MM/DD/YYYY or YYYY-MM-DD). Selects the rate year. Defaults to today. |
length_of_stay | integer | Length of stay in days. Required to price transfer claims correctly: the graduated per-diem is paid per day, and when omitted the calculation assumes a 1-day stay. |
transfer_claim | boolean | Transfer claim. Discharge status 02 (transferred to another acute-care facility). |
same_day_claim | boolean | Same-day or next-day claim. Check when admission and discharge fall on the same or next day. Requires total charges. |
total_charges | decimal | Total covered charges (UB-04 FL47). Used for the cost-outlier and same-day calculations. |
room_and_board_charges | decimal | Room and board charges: the sum billed under room-and-board revenue codes. Used on the same-day path. |
observation_charges | decimal | Observation charges: the sum billed under the observation revenue code (0762). Used on the same-day path. |
observation_hours | decimal | The number of hours the patient was in observation status. Used on the same-day path. |
Returns
| Field | Type | Description |
|---|---|---|
reference_id | string | Echo of the `reference_id` from the request (null if not sent). Use this to match each result back to your source claim or account. |
rate_found | boolean | Whether a rate was found. |
error_message | string | Error details if rate not found. Null on success. |
provider_matches_total | integer | For provider_name searches only: how many providers matched the name AND can be priced for this request. Null for NPI, TPI, CCN, or OPCERT lookups, which are not capped. When this exceeds the number of providers in the response, you are holding one capped page of 20. Narrow the name or add filters to see the rest. |
npi | string | Hospital NPI. |
state_provider_id | string | WV Medicaid Provider ID. |
provider_name | string | Hospital name. |
provider_type | string | Provider type (HOSPITAL). |
provider_type_label | string | Human-readable provider type label. |
hospital_class | string | Hospital peer-group classification. Values: RRC, SCH, ACH, MDH and combinations. |
ccn | string | Medicare CCN. |
market_area | string | WV market area (1–6). |
street_address | string | Hospital street address. |
city | string | Hospital city. |
county | string | Hospital county. |
state | string | Hospital state. |
zip_code | string | Hospital ZIP code. |
billing_code | string | Billing code submitted. |
billing_code_type | string | Code system. Values: HCPCS, APR-DRG. |
billing_code_description | string | Human-readable code description. |
drg_code_used | string | DRG actually priced. Differs from billing_code when the neonatal remap applies (789–794 → N89–N94 at the four Level III hospitals). |
neonatal_remap_applied | boolean | TRUE when billing_code 789–794 was remapped to an N89–N94 Level III neonatal DRG for this hospital. |
wv_specific_drg | boolean | TRUE for WV-specific Level III neonatal pseudo-DRGs (N89–N94). |
grouper_version | string | Medicare MS-DRG grouper version for the rate year (e.g., 'V43'). |
payment_rate | decimal | Payment rate in dollars. |
payment_rate_type | string | Rate type. Values: fee_schedule, percent_of_charges, manually_priced, claim, per_diem. |
calculation_method | string | Human-readable calculation formula with actual values. |
drg_weight | decimal | WV-specific DRG relative weight. |
alos | decimal | Average length of stay for the DRG (drives the transfer per-diem). |
base_amount | decimal | Provider Price Factor: (WV Std Cost × (1 + IME) × Wage Index + Std Cap) × 1.025. |
base_payment | decimal | Base DRG payment = base_amount × drg_weight. |
wv_std_cost | decimal | Hospital WV standardized cost amount. |
std_cap_amt | decimal | Hospital standardized capital amount. |
ime_adjustment | decimal | Indirect medical education adjustment. |
wage_index_gaf | decimal | Provider wage index / geographic adjustment factor. |
cost_charge_ratio | decimal | Hospital cost-to-charge ratio. |
outlier_adjustment_applied | boolean | TRUE when a cost-outlier add-on was applied. |
outlier_amount | decimal | IME/tax-adjusted cost-outlier add-on included in the payment. |
outlier_threshold | decimal | Cost-outlier threshold = (WV Std Cost × weight + $112,918) × Wage Index. |
estimated_cost | decimal | Estimated cost = total charges × adjusted CCR. |
adjusted_cost_charge_ratio | decimal | CCR ÷ (1 + IME), used to estimate cost for the outlier. |
total_charges_used | decimal | Total charges used in the outlier / same-day calculation. |
outlier_note | string | Set when the cost outlier could not be computed; e.g., discharges before 2025-10-01 (RY2026), where the historical outlier constants are not published. |
transfer_adjustment_applied | boolean | TRUE when transfer per-diem pricing was applied. |
transfer_payment_amount | decimal | Graduated per-diem transfer payment (before the lesser-of comparison). |
per_diem_amount | decimal | Per-diem = (base + outlier) ÷ ALOS. |
first_day_per_diem | decimal | First-day per-diem = 3 × per-diem. |
length_of_stay_used | integer | Days used for the transfer per-diem. |
transfer_full_drg_exception | boolean | TRUE when the transfer full-DRG exception applied (neonate transfer/death or burn DRG): the full DRG is paid despite the transfer. |
same_day_applied | boolean | TRUE when same-day/next-day lesser-of pricing was applied. |
same_day_payment_amount | decimal | Same-day payment = ancillary × CCR + $10 × obs hours + $245 (before the lesser-of comparison). |
total_ancillary_charges | decimal | Total charges − room & board − observation charges (same-day path). |
room_and_board_used | decimal | Room & board charges used in the same-day calculation (subtracted from total charges to get ancillary). |
observation_charges_used | decimal | Observation charges used in the same-day calculation (subtracted from total charges to get ancillary). |
observation_hours_used | decimal | Observation hours used in the same-day calculation. |
same_day_note | string | Set when the same-day path could not be computed; e.g., discharges before 2025-10-01 (RY2026). |
discharge_date_used | date | The discharge date the rate was priced against, echoed from the request. When you omit discharge_date, this returns the server default (today), so the resolved date is always visible. |
effective_start_date | date | Rate period start date. |
effective_end_date | date | Rate period end date. Null if currently active. |
curl "https://staterates.health/api/v1/wv/inpatient/rate?\ billing_code=470&\ npi=1841271459&\ discharge_date=2025-11-15" \ -H "Authorization: Bearer YOUR_API_KEY"
[
{
"rate_found": true,
"error_message": null,
"npi": "1841271459",
"state_provider_id": "0001258000",
"provider_name": "WEST VIRGINIA UNIVERSITY HOSPITALS",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"hospital_class": "RRC",
"ccn": "510001",
"market_area": "6",
"street_address": "1 MEDICAL CENTER DR",
"city": "MORGANTOWN",
"county": "MONONGALIA",
"state": "WV",
"zip_code": "26506",
"billing_code": "470",
"billing_code_type": "MS-DRG",
"billing_code_description": "MAJOR HIP AND KNEE JOINT REPLACEMENT OR REATTACHMENT OF LOWER EXTREMITY WITHOUT MCC",
"drg_code_used": "470",
"neonatal_remap_applied": false,
"wv_specific_drg": false,
"grouper_version": "V43",
"payment_rate": "11188.66",
"payment_rate_type": "claim",
"calculation_method": "$5,402.02 (Provider Price Factor) × 2.0712 (DRG Weight) = $11,188.66 (Total Payment)",
"drg_weight": "2.0712",
"alos": "1.30",
"base_amount": "5402.02",
"base_payment": "11188.66",
"wv_std_cost": "4211.47",
"std_cap_amt": "436.66",
"ime_adjustment": "0.165320",
"wage_index_gaf": "0.9849",
"cost_charge_ratio": "0.2590",
"outlier_adjustment_applied": false,
"outlier_amount": null,
"outlier_threshold": null,
"estimated_cost": null,
"adjusted_cost_charge_ratio": null,
"total_charges_used": null,
"outlier_note": null,
"transfer_adjustment_applied": false,
"transfer_payment_amount": null,
"per_diem_amount": null,
"first_day_per_diem": null,
"length_of_stay_used": null,
"transfer_full_drg_exception": false,
"same_day_applied": false,
"same_day_payment_amount": null,
"total_ancillary_charges": null,
"room_and_board_used": null,
"observation_charges_used": null,
"observation_hours_used": null,
"same_day_note": null,
"discharge_date_used": "2025-11-15",
"effective_start_date": "2025-10-01",
"effective_end_date": null
}
]/wv/inpatient/rate/batchLook up multiple WV inpatient rates in a single POST request. Maximum 1,000 lookups per batch.
{
"requests": [
{
"billing_code": "470",
"npi": "1841271459",
"discharge_date": "2025-11-15"
},
{
"billing_code": "470",
"npi": "1841271459",
"discharge_date": "2025-11-15",
"total_charges": "900000",
"transfer_claim": false
}
]
}/wv/providers/searchWest Virginia Provider Search
Search for West Virginia Medicaid providers by NPI, WV Medicaid Provider ID (hospitals only), name, location, taxonomy, provider type, or hospital class. Returns provider details with rate availability.
Parameters
| Name | Type | Description |
|---|---|---|
npi | string | National Provider Identifier (10 digits). |
state_provider_id | string | WV Medicaid Provider ID (hospitals only). |
provider_name | string | Provider name (partial match, case-insensitive). |
city | string | City (partial match). |
county | string | County (partial match). |
zip_code | string | ZIP code (exact match). |
taxonomy | string | NUCC taxonomy display name (partial match, non-hospital). |
provider_type | string | State Rates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. |
hospital_class | string | Hospital classification filter (HOSPITAL only), matched exactly. Values: ACH, RRC, SCH, MDH, EACH/RRC, MDH/RRC, SCH/RRC. |
limit | integer | Max results (default 100, max 1000). |
Returns
| Field | Type | Description |
|---|---|---|
providers | array | List of matching providers. |
↳npi | string | Provider NPI. |
↳state_provider_id | string | WV Medicaid Provider ID (hospitals only; NULL for non-hospital providers). |
↳provider_name | string | Provider name. |
↳provider_type | string | State Rates provider classification. |
↳provider_type_label | string | Human-readable provider type label. |
↳entity_type | string | Individual or Organization (always 'Organization' for HOSPITAL). |
↳primary_taxonomy | string | NPPES primary taxonomy display name (non-hospital). |
↳hospital_class | string | Hospital peer-group classification (HOSPITAL only). Values: RRC, SCH, ACH, MDH and combinations. |
↳street_address | string | Street address. |
↳city | string | City. |
↳county | string | County. |
↳state | string | State. |
↳zip_code | string | ZIP code. |
↳op_rates | boolean | Has outpatient rates. |
↳ip_rates | boolean | Has inpatient rates. |
total_results | integer | Total results found. |
limit_applied | integer | Limit applied. |
curl "https://staterates.health/api/v1/wv/providers/search?\ provider_name=huntington&\ provider_type=HOSPITAL" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"providers": [
{
"npi": "1073518007",
"state_provider_id": "0001144000",
"provider_name": "CABELL HUNTINGTON HOSPITAL",
"provider_type": "HOSPITAL",
"provider_type_label": "Hospital",
"entity_type": "Organization",
"primary_taxonomy": null,
"hospital_class": "RRC",
"street_address": "1340 HAL GREER BLVD",
"city": "HUNTINGTON",
"county": "CABELL",
"state": "WV",
"zip_code": "25701",
"op_rates": true,
"ip_rates": true
}
],
"total_results": 1,
"limit_applied": 100
}Errors
| Status | Common code | Meaning |
|---|---|---|
| 400 | api_key_in_query | Key sent in a URL query string. Put it in the Authorization header. |
| 401 | missing_api_key | No Authorization header or the Bearer scheme is missing. |
| 401 | invalid_api_key | Key is unknown, revoked, or past its expiry. |
| 403 | state_not_enabled | Your key isn't scoped to the state you called. Email support to add it. |
| 404 | — | Endpoint path doesn't exist. Check the URL against the reference above. |
| 422 | — | Request parsed but violated a schema rule (e.g. batch over 1000 items). See detail for field-level errors. |
| 429 | token_bucket_exceeded | Token bucket exhausted for the current billing period, or per-key burst limit tripped (burst 429s have no JSON body). See Rate Limits. |
| 500 | — | Our bug. Don't retry blindly. Email support with the timestamp. |
| 502 | — | API briefly unreachable (usually a deploy restart). Safe to retry after ~5s. |
{
"detail": {
"error": {
"type": "authentication_error",
"code": "invalid_api_key",
"message": "Invalid or revoked API key"
}
}
}Rate Limits & Quotas
Two limits, both return 429:
- Short-term throttle: 1 request per second per key, with bursts up to 30. Go over and you'll get a 429; wait a second and try again.
- Token bucket: each org gets a contract-sized token bucket that pools across every state on the key. Costs per call:
1 tokenper inpatient rate,0.25 tokensper outpatient line item,1 tokenper whole outpatient claim,0 tokensfor provider search. A 500-IP-claim batch costs 500 tokens; the same shape of OP batch costs 125. When the bucket runs out you'll get a 429 with a JSON body showing exactly where you stand.
Every metered 2xx and 429 response includes these headers so you can monitor headroom:
X-RateLimit-Reset is the timestamp your current bucket expires. Provider search responses carry no rate-limit headers (the call is free).
If a batch would push you over the bucket, the entire batch is rejected; no partial fulfillment. The requested / remaining / resets_at fields let you split the batch and retry precisely.
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 873.75 X-RateLimit-Reset: 2026-07-01T00:00:00Z
{
"detail": {
"error": {
"type": "rate_limit_error",
"code": "token_bucket_exceeded",
"message": "Token bucket exhausted for this billing period",
"state": "TX",
"requested": "125.00",
"remaining": "73.50",
"resets_at": "2026-07-01T00:00:00+00:00"
}
}
}