Medicaid Rate API

Programmatic access to Medicaid reimbursement rates across California, Florida, Ohio, and Texas. Look up outpatient fee schedules, inpatient DRG payments, and provider data in real time.

Getting Started

1

Request access

Fill out the form and we'll set up your account. Usually same-day.

2

Get your API key

We'll send you an API key. Evaluating? We offer 14-day trial keys on request.

3

Start querying

Hit the endpoints. Rates back in milliseconds.

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.

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.

curl "https://api.staterates.health/api/v1/ca/outpatient/rate?billing_code=99213&npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

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.

Treat it like a password. Don't commit it, don't paste it in chat. If it leaks, email [email protected] and we'll rotate it with a short overlap window.

Python example

Reads the key from STATERATES_API_KEY and retries with exponential backoff on 429.

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, "admit_date": "2026-03-01",
}]
print(price_claims(claims))
GET/ca/outpatient/rate

California Outpatient Rates

Look up a Medi-Cal fee schedule rate by HCPCS code and provider. Returns the payment rate with full calculation detail including conversion factors, HOPD multipliers, and modifier adjustments.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringHCPCS procedure code (e.g., 99213).
npi1 requiredstringNational Provider Identifier (10 digits).
state_provider_id1 requiredstringOSHPD ID — California hospital identifier.
provider_name1 requiredstringProvider name (partial match, min 2 characters). Returns rates for all matches.
provider_typestringStateRates provider classification. Values: hospital, physician_office, surgical_clinic, free_clinic, podiatrist, nurse_anesthetist, other_clinic. If omitted, resolved from provider's taxonomy.
procedure_typestringMedi-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_typestringMedi-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_patientbooleanTrue if patient is under 21 years of age. Defaults to false (adult).
family_planning_primary_dxbooleanTrue if billed with a primary family planning diagnosis code. Adds 90.9% to the rate for qualifying E&M codes.
emergency_roombooleanTrue to use ER pricing. ER rates use a higher conversion factor with no HOPD add-on or cutback.
modifierstringHCPCS modifier. Values: 26 (Professional Component), TC (Technical Component).
date_of_servicestringDate of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today.

Request

curl "https://staterates.health/api/v1/ca/outpatient/rate?\
  billing_code=99213&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
state_provider_idstringOSHPD ID (hospitals) or Medi-Cal Provider Number (professionals).
provider_namestringProvider name.
provider_typestringStateRates provider classification used for rate lookup. Values: hospital, physician_office, surgical_clinic, free_clinic, podiatrist, nurse_anesthetist, other_clinic.
provider_type_labelstringHuman-readable label for the StateRates provider classification (e.g., Hospital, Physician Office).
cbsa_codestringCore Based Statistical Area code.
cbsa_descriptionstringCBSA area description.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
basic_ratedecimalBasic rate (unit value) from fee schedule.
conversion_factordecimalConversion factor applied to basic rate.
modifierstringHCPCS modifier applied (e.g., 26, TC).
modifier_adjustmentdecimalModifier adjustment factor (e.g., 0.29 for 26, 0.71 for TC).
cutback_indintegerCutback indicator (1 = 20% reduction applied to hospital/surgical clinic rates).
hopd_multiplierfloatHospital Outpatient Department add-on multiplier (1.4344) when applied.
family_planning_multiplierfloatFamily Planning add-on multiplier (1.909) when applied.
emergency_roombooleanTrue if emergency room conversion factor was applied.
procedure_type_usedstringProcedure type used for pricing.
service_type_usedstringService type used for pricing.
is_default_selectionbooleanTrue if the API auto-selected the procedure/service type because none was specified.
available_procedure_typesstring[]Other procedure types available for this code. Only present when defaults were used.
available_service_typesstring[]Other service types available for this code. Only present when defaults were used.
is_manually_pricedbooleanTrue if code has no fee schedule rate — payment determined per claim.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/ca/outpatient/rate/batch

Look 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
    }
  ]
}
GET/ca/inpatient/rate

California Inpatient Rates

Look up a Medi-Cal APR-DRG inpatient payment rate. Payment = DRG Base Rate × Payment Relative Weight, with adjustments for transfers, cost outliers, and interim claims. California uses the admission date to determine the effective rate period.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringAPR-DRG code (e.g., 593-4 for DRG 593, SOI 4).
npi1 requiredstringNational Provider Identifier (10 digits).
state_provider_id1 requiredstringOSHPD ID — California hospital identifier.
provider_name1 requiredstringHospital name (partial match).
soiintegerSeverity of Illness (1–4). If omitted, returns rates for all 4 SOI levels.
admit_datestringAdmission date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. California uses the admission date to determine which rate period applies.
transfer_claimbooleanIs this the transferring hospital's claim? Applies per-diem transfer adjustment.
interim_claimbooleanDischarge status = 30 (interim claim). Uses per-diem calculation.
child_patientbooleanTrue if patient is under 21 years of age. Defaults to false (adult).
length_of_stayintegerLength of stay in days. If omitted, defaults to the national average LOS for this APR-DRG.
total_chargesdecimalTotal charges from the claim. If omitted, charges are estimated for outlier calculations.

Request

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"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
state_provider_idstringOSHPD ID — California hospital identifier.
provider_namestringProvider name.
street_addressstringHospital street address.
citystringHospital city.
zip_codestringHospital ZIP code.
countystringHospital county.
cbsa_codestringCBSA code.
cbsa_descriptionstringCBSA area description.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
apr_drgstringAPR-DRG code.
soiintegerSeverity of Illness level (1–4).
grouper_versionstringAPR-DRG grouper version.
mdc_codestringMajor Diagnostic Category code.
mdc_descriptionstringMajor Diagnostic Category description.
drg_base_ratedecimalHospital-specific DRG base rate (wage-adjusted).
payment_relative_weightfloatPayment relative weight (casemix weight × policy adjustor).
casemix_adjustment_factorfloatHospital casemix adjustment factor.
policy_adjustor_usedstringPolicy adjustor letter used. Values: A, B, C, D (based on age and NICU status).
policy_adjustor_valuefloatPolicy adjustor numeric value.
designated_nicubooleanWhether the hospital is a designated NICU facility.
estimated_costdecimalEstimated cost (total_charges × cost_to_charge_ratio).
drg_base_paymentdecimalBase DRG payment before adjustments.
transfer_adjustment_appliedbooleanWhether transfer adjustment was applied.
transfer_adjusted_amountdecimalPayment after transfer adjustment.
outlier_adjustment_appliedbooleanWhether cost outlier adjustment was applied.
outlier_adjustment_amountdecimalOutlier adjustment amount.
cost_to_charge_ratiofloatHospital cost-to-charge ratio.
outlier_thresholdfloatOutlier threshold amount ($99,000).
marginal_cost_percentagefloatMarginal cost percentage applied to outlier excess (0.53).
charge_cap_appliedbooleanWhether payment was capped to total charges (lesser-of rule).
is_interim_claimbooleanWhether calculated as an interim claim.
interim_per_diem_amountfloatPer diem rate for interim claim calculation.
length_of_stay_usedintegerLength of stay used in calculation.
national_average_losdecimalNational average LOS for this APR-DRG.
total_charges_useddecimalTotal charges used (actual or estimated).
total_charges_sourcestringWhether charges were 'actual' or 'estimated'.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/ca/inpatient/rate/batch

Look up multiple CA inpatient rates in a single POST request. Maximum 1,000 lookups per batch.

GET/ca/providers/search

California Provider Search

Search for California Medicaid providers by NPI, OSHPD ID, name, location, or taxonomy. Returns provider details with outpatient/inpatient rate availability.

Parameters

NameTypeDescription
npistringNational Provider Identifier (10 digits).
state_provider_idstringOSHPD ID or Medi-Cal Provider Number.
provider_namestringProvider name (partial match, min 2 characters).
citystringCity (partial match).
zip_codestringZIP code (exact match).
taxonomystringTaxonomy code filter.
provider_typestringStateRates provider classification. Values: hospital, physician_office, surgical_clinic, free_clinic, podiatrist, nurse_anesthetist, other_clinic.
limitintegerMax results (default 100, max 1000).

Request

curl "https://staterates.health/api/v1/ca/providers/search?\
  provider_name=community&\
  city=los+angeles" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
providersarrayList of matching providers.
npistringProvider NPI.
state_provider_idstringOSHPD ID or Medi-Cal Provider Number.
provider_namestringProvider name.
provider_typestringStateRates provider classification.
provider_type_labelstringHuman-readable label for the StateRates provider classification.
entity_typestringIndividual or Organization.
primary_taxonomystringPrimary taxonomy code.
citystringCity.
statestringState.
zip_codestringZIP code.
street_addressstringStreet address.
cbsa_codestringCBSA code.
cbsa_descriptionstringCBSA area description.
op_ratesbooleanHas outpatient rates.
ip_ratesbooleanHas inpatient rates.
total_resultsintegerTotal number of results found.
limit_appliedintegerLimit applied to results.
GET/fl/outpatient/rate

Florida Outpatient Rates

Look up a Florida Medicaid outpatient rate. Supports two methodologies: HCPCS fee schedule rates (professional) and EAPG-based hospital payments. HCPCS codes return fee schedule rates; EAPG codes require a hospital identifier for per-provider payment calculation.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringHCPCS code (e.g., 99213) or EAPG code (e.g., 00002).
billing_code_typestringCode type filter. Values: HCPCS, EAPG. If omitted, returns results for all matching types.
npi1 requiredstringNational Provider Identifier (10 digits).
state_provider_id1 requiredstringFL Provider Base ID.
provider_name1 requiredstringProvider name (partial match). Returns rates for all matches.
provider_typestringStateRates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC.
modifierstringModifier for component selection. Values: 26 (Professional), TC (Technical).
place_of_servicestringPlace of service. Values: facility, non_facility. Facility POS codes (19, 21, 22, 23, 24) use the facility rate. Defaults to non-facility.
child_patientbooleanTrue if patient is under 21 years of age. Defaults to false (adult).
date_of_servicestringDate of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today.
paf_*booleanEAPG Payment Adjustor Flags (hospital only): paf_multiple_significant, paf_same_significant, paf_clinical_significant, paf_packaging, paf_repeat_ancillary, paf_bilateral, paf_terminated.

Request

curl "https://staterates.health/api/v1/fl/outpatient/rate?\
  billing_code=99213&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
state_provider_idstringFL Provider Base ID.
provider_namestringProvider name.
provider_typestringStateRates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC.
provider_type_labelstringHuman-readable label for the StateRates provider classification.
fl_provider_type_codestringFlorida'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_descriptionstringFlorida's description for the provider type code.
fl_specialty_codestringFlorida's own provider specialty code from source files (e.g., 01 = General Practice, 65 = Maternal Fetal Medicine).
fl_specialty_descriptionstringFlorida's description for the specialty code.
hospital_classstringHospital category (EAPG only).
street_addressstringProvider street address.
citystringProvider city.
countystringProvider county.
zip_codestringProvider ZIP code.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
modifierstringModifier applied (sourced from the matched rate row, not request input).
modifier_adjustmentdecimalDerived 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_servicestring'non_facility' / 'facility' on PRACTITIONER rows where the source has the distinction; NULL on PCI/TCI / lab / EAPG rows.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
prior_auth_requiredbooleanPrior authorization required.
specialty_multiplierfloatSpecialty-based rate multiplier.
age_multiplier_applieddecimalAge multiplier if applied.
provider_type_multiplier_applieddecimalProvider type multiplier (0.80 for APRN/PA).
eapg_weightdecimalEAPG relative weight (hospital only).
eapg_typestringEAPG type code.
eapg_type_descriptionstringEAPG type description.
eapg_categorystringEAPG category code.
eapg_category_descriptionstringEAPG category description.
eapg_base_ratedecimalHospital-specific EAPG base rate.
eapg_policy_adjustordecimalHospital policy adjustor.
eapg_childrens_addondecimalChildren's hospital add-on.
paf_multiple_significantdecimalPAF: Multiple Significant Procedures adjustment.
paf_same_significantdecimalPAF: Same Significant Procedure adjustment.
paf_clinical_significantdecimalPAF: Clinical Significant Procedure adjustment.
paf_packagingdecimalPAF: Packaging adjustment.
paf_repeat_ancillarydecimalPAF: Repeat Ancillary adjustment.
paf_bilateraldecimalPAF: Bilateral adjustment.
paf_terminateddecimalPAF: Terminated Procedure adjustment.
paf_adjustmentdecimalCombined PAF adjustment factor (product of selected flags).
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/fl/outpatient/rate/batch

Look 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
    }
  ]
}
GET/fl/inpatient/rate

Florida Inpatient Rates

Look up a Florida Medicaid APR-DRG inpatient payment rate. Payment = Statewide Base Rate × FL Weight × MAX(service, age, provider adjustor) + Children's Hospital Add-On. Florida uses the discharge date to determine the effective rate period.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringAPR-DRG code (e.g., 140 or 140-2).
npi1 requiredstringNational Provider Identifier (10 digits).
state_provider_id1 requiredstringFL Provider Base ID.
provider_name1 requiredstringHospital name (partial match).
soiintegerSeverity of Illness (1–4). If omitted, returns rates for all SOI levels.
discharge_datestringDischarge 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_claimbooleanIs this the transferring hospital's claim?
child_patientbooleanTrue if patient is under 21 years of age. Defaults to false (adult).
length_of_stayintegerLength of stay in days. Defaults to average LOS.
total_chargesdecimalTotal charges for outlier calc and charge cap.

Request

curl "https://staterates.health/api/v1/fl/inpatient/rate?\
  billing_code=140-2&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
state_provider_idstringFL Provider Base ID.
provider_namestringProvider name.
hospital_classstringProvider category. Values: All Other, Rural, LTAC, Childrens, Teaching.
trauma_classstringTrauma designation. Values: Level I, Level II, Pediatric. Null if not a trauma center.
street_addressstringHospital street address.
citystringHospital city.
countystringHospital county.
zip_codestringHospital ZIP code.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
apr_drg_codestringBase DRG code.
soiintegerSeverity of Illness (1–4).
grouper_versionstringAPR-DRG grouper version.
mdc_codestringMajor Diagnostic Category code.
mdc_descriptionstringMajor Diagnostic Category description.
fl_relative_weightdecimalFlorida-specific DRG weight.
national_relative_weightdecimalNational DRG weight (reference).
mean_losdecimalAverage length of stay for this DRG.
service_adjustordecimalService adjustor (1.0 or 1.3 for neonatal).
age_adjustordecimalAge adjustor (applied when age < 21).
pediatric_service_linestringPediatric service line classification.
adult_service_linestringAdult service line classification.
provider_adjustordecimalProvider category adjustor.
max_adjustor_useddecimalMAX(service, age, provider) adjustor used.
statewide_base_ratedecimalFL statewide base rate.
base_paymentdecimalBase payment: base_rate × weight × max_adjustor.
trauma_enhancement_amountdecimalTrauma enhancement amount.
childrens_addondecimalChildren's hospital add-on (source value).
childrens_addon_amountdecimalActual children's add-on calculated.
transfer_adjustment_appliedbooleanWhether transfer adjustment was applied.
transfer_adjusted_amountdecimalPayment after transfer adjustment.
outlier_adjustment_appliedbooleanWhether cost outlier was applied.
outlier_amountdecimalCost outlier adjustment amount.
outlier_thresholdfloatCost outlier threshold ($60,000).
marginal_cost_pctfloatMarginal cost percentage (0.60 or 0.80).
charge_cap_appliedbooleanWhether payment was capped at total charges.
cost_to_charge_ratiodecimalHospital CCR for outlier calc.
casemixdecimalHospital casemix index.
length_of_stay_usedintegerLOS used in calculation.
total_charges_useddecimalTotal charges used.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/fl/inpatient/rate/batch

Look up multiple FL inpatient rates in a single POST request. Maximum 1,000 lookups per batch.

GET/fl/providers/search

Florida 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

NameTypeDescription
npistringNational Provider Identifier (10 digits).
state_provider_idstringFL Provider Base ID.
provider_namestringProvider name (partial match).
citystringCity (partial match).
countystringCounty (partial match).
taxonomystringTaxonomy code filter.
provider_typestringStateRates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC.
limitintegerMax results (default 100, max 1000).

Request

curl "https://staterates.health/api/v1/fl/providers/search?\
  provider_name=jackson&\
  city=miami" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
providersarrayList of matching providers.
npistringProvider NPI.
state_provider_idstringFL Provider Base ID.
provider_namestringProvider name.
provider_typestringStateRates provider classification. Values: PRACTITIONER, HOSPITAL, INDEPENDENT_LAB, ASC.
provider_type_labelstringHuman-readable label for the StateRates provider classification.
entity_typestringIndividual or Organization.
primary_taxonomystringPrimary taxonomy code.
street_addressstringStreet address.
citystringCity.
statestringState.
zip_codestringZIP code.
countystringCounty.
provider_categorystringFL provider category.
op_ratesbooleanHas outpatient rates.
ip_ratesbooleanHas inpatient rates.
total_resultsintegerTotal results found.
limit_appliedintegerLimit applied.
GET/oh/outpatient/rate

Ohio Outpatient Rates

Look up an Ohio Medicaid outpatient rate. Supports two methodologies, routed by code system: HCPCS codes price via fee schedule (MSRIAP for physicians/imaging, Clinical Lab schedule for lab codes); EAPG codes price per-claim for hospital outpatient (per-hospital base rate × weight + OP CCA) and ASC (statewide flat base × weight). Ohio publishes no state-specific provider ID; NPI is the only provider identifier.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringHCPCS code (e.g., 99213) or EAPG code (e.g., 00002).
billing_code_typestringCode system filter. Values: HCPCS, EAPG. If omitted, returns results for all matching code systems.
npi1 requiredstringNational Provider Identifier (10 digits).
provider_name1 requiredstringProvider name (partial match, case-insensitive). Returns rates for all matches.
provider_typestringStateRates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER. If omitted, returns rates across all matching provider types for the code.
modifierstringModifier. 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_servicestringPlace of service (MSRIAP only; ignored for EAPG). Values: facility, non_facility. If omitted, returns the source default rate (typically non-facility).
date_of_servicestringDate 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.

Request

curl "https://staterates.health/api/v1/oh/outpatient/rate?\
  billing_code=99213&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
provider_namestringProvider name.
provider_typestringStateRates provider classification.
provider_type_labelstringHuman-readable provider type label.
hospital_classstringDerived 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_codestringNPPES primary taxonomy code (non-hospital providers).
primary_taxonomy_display_namestringNPPES primary taxonomy display name.
street_addressstringProvider street address.
citystringProvider city.
countystringProvider county.
statestringProvider state (always 'OH').
zip_codestringProvider ZIP code.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
modifierstringModifier applied (e.g., '26', 'TC', 'QW').
modifier_adjustmentdecimalMultiplier 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_servicestringPlace of service used (MSRIAP only).
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
eapg_weightdecimalEAPG relative weight (Solventum 3M v3.17). EAPG path only.
eapg_categorystringEAPG category code.
eapg_category_descriptionstringEAPG category description (NULL for OH-only EAPG codes).
eapg_typestringEAPG type code.
eapg_type_descriptionstringEAPG type description.
eapg_service_linestringEAPG service line code.
eapg_service_line_descriptionstringEAPG service line description.
asc_flat_basedecimalASC statewide flat base rate ($90.98 for 1/1/2024+, $83.34 for 1/2/2020–12/31/2023). ASC path only.
outpatient_base_ratedecimalHospital-specific OP base rate. Hospital EAPG path only.
op_cca_ratedecimalHospital OP Cost-Coverage Add-on per detail line. Hospital EAPG path only.
xix_op_ccrdecimalHospital XIX OP cost-to-charge ratio (reference value). Hospital EAPG path only.
base_ratedecimalSource 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_advisorystringMSRIAP prior-auth advisory text. HCPCS path only.
is_manually_pricedbooleanMSRIAP sentinel: rate is determined case-by-case (BR/FP/PA/PC). payment_rate=$0.00 with explanatory message.
is_flat_ratebooleanEAPG sentinel: flat-rate EAPG paid by OAC policy not weight × base (FR sentinel). payment_rate=NULL with explanatory message.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/oh/outpatient/rate/batch

Look 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"
    }
  ]
}
GET/oh/inpatient/rate

Ohio Inpatient Rates

Look up an Ohio Medicaid APR-DRG inpatient payment rate per SPA OH-23-0037 / OAC 5160-2-65. Standard formula: base × weight + capital × weight + Med-ED × weight + IP CCA. Discharge date drives all rate-period lookups. Edge cases: cost outlier (with total charges), transfer per-diem cap, interim cost-based payment, Medicare crossover, organ acquisition (100% of charges), and FSP psychiatric per-diem (auto-detected from hospital). Ohio publishes no state-specific provider ID; NPI is the only provider identifier.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringAPR-DRG code. Accepts '140-2', '140', '0140-2', '0140', or '1402' (composite is parsed into apr_drg_code + soi).
npi1 requiredstringNational Provider Identifier (10 digits).
provider_name1 requiredstringHospital name (partial match, case-insensitive).
soiintegerSeverity of Illness (1–4). If omitted and not embedded in billing_code, returns all 4 SOI levels.
discharge_datestringDischarge date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today. Drives all DRG pricing parameter lookups.
transfer_claimbooleanIs this the transferring hospital's claim? Triggers per-diem transfer cap on the DRG base payment per SPA OH-23-0037 §H(2).
interim_claimbooleanInterim claim per SPA OH-23-0037 §H(1)? Pays cost-based: xix_ip_ccr × charges. Reconciled to final DRG at discharge.
length_of_stayintegerLOS in days. Required for transfer + interim. Defaults to the DRG's average length of stay.
total_chargesdecimalCovered billed charges. Required for outlier calc, interim calc, lesser-of cap, and organ-acquisition 100%-of-charges rule.
crossover_claimbooleanMedicare-Medicaid dual-eligible crossover claim? Swaps base rate + IP CCR to medicare_crossover_* columns. Capital, Med-ED, IP CCA stay on standard columns.
organ_acquisitionbooleanOrgan acquisition per OAC 5160-2-65 §L? Pays 100% of total_charges (heart/lung/liver/pancreas). Bone marrow's three-way split is not yet encoded.

Request

curl "https://staterates.health/api/v1/oh/inpatient/rate?\
  billing_code=140-2&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringHospital NPI.
provider_namestringHospital name.
hospital_classstringDerived 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_addressstringHospital street address.
citystringHospital city.
countystringHospital county.
statestringHospital state.
zip_codestringHospital ZIP code.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
apr_drg_codestringBase APR-DRG code (3-digit).
soiintegerSeverity of Illness (1–4).
grouper_versionstringAPR-DRG grouper version (e.g., '43', '42', '41').
mdc_codestringMajor Diagnostic Category code.
mdc_descriptionstringMajor Diagnostic Category description (NULL for v43 pending upstream contribution).
casemix_relative_weightdecimalOH-published DRG relative weight for this (DRG, SOI).
average_length_of_staydecimalStatewide average length of stay for this DRG (drives transfer per-diem calc).
is_not_coveredbooleanDRG flagged 'Not Covered' in source (specific transplants under DRG 772).
inpatient_base_ratedecimalHospital IP base rate (or medicare_crossover_ip_base_rate when crossover_claim=true).
capital_ratedecimalHospital combined capital rate.
meded_ratedecimalHospital Med-ED rate (0 for non-eligible hospitals).
ip_cca_ratedecimalHospital IP CCA per-discharge rate.
xix_ip_ccrdecimalHospital XIX IP cost-to-charge ratio (used for outlier and interim calculations).
psych_per_diem_ratedecimalFSP psych per-diem rate. FSP path only.
drg_base_paymentdecimalDRG Base Payment = inpatient_base_rate × casemix_relative_weight.
capital_allowancedecimalCapital Allowance = capital_rate × casemix_relative_weight.
meded_allowancedecimalMed-ED Allowance = meded_rate × casemix_relative_weight.
cca_amountdecimalIP CCA flat amount per discharge.
outlier_adjustment_appliedbooleanWhether the cost-outlier add-on fired.
outlier_thresholddecimalOutlier threshold = drg_base_payment + fixed_outlier_threshold.
fixed_outlier_thresholddecimalFixed threshold per SPA §F: $50,000 for neonate/tracheostomy, $75,000 otherwise.
outlier_threshold_basisstringBasis used: 'neonate', 'tracheostomy', or 'standard'.
estimated_costdecimalcost_of_case = total_charges × xix_ip_ccr.
outlier_eligible_costdecimaleligible_outlier_cost = estimated_cost − outlier_threshold (when positive).
outlier_marginal_pctdecimalOutlier marginal cost percentage applied (80% per SPA §F).
outlier_amountdecimalOutlier add-on = eligible_outlier_cost × outlier_marginal_pct.
transfer_adjustment_appliedbooleanWhether the transfer per-diem cap reduced the DRG base payment.
statewide_avg_losdecimalStatewide average LOS used for transfer per-diem (= DRG average_length_of_stay).
transfer_per_diemdecimalTransfer per-diem = (inpatient_base_rate × casemix_relative_weight) / statewide_avg_los.
transfer_per_diem_totaldecimaltransfer_per_diem × (length_of_stay + 1).
transfer_adjusted_amountdecimalDRG base after transfer cap = min(transfer_per_diem_total, drg_base_payment).
interim_payment_appliedbooleanWhether the interim-claim cost-based pricing path was used.
interim_payment_amountdecimalInterim payment = xix_ip_ccr × total_charges.
fsp_per_diem_appliedbooleanWhether the FSP psych per-diem path was used (hospital has psych_per_diem_rate > 0).
fsp_per_diem_amountdecimalFSP per-diem payment = length_of_stay × psych_per_diem_rate.
organ_acquisition_appliedbooleanWhether the organ-acquisition 100%-of-charges rule was used.
organ_acquisition_amountdecimalOrgan acquisition payment = total_charges.
crossover_claim_appliedbooleanWhether the Medicare crossover formula path was used.
charge_cap_appliedbooleanWhether the lesser-of-charges cap reduced the final payment (only fires when outlier qualifies, per SPA §F(3)).
length_of_stay_usedintegerLOS used in calculation.
total_charges_useddecimalTotal charges used in calculation.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/oh/inpatient/rate/batch

Look up multiple OH inpatient rates in a single POST request. Maximum 1,000 lookups per batch.

GET/oh/providers/search

Ohio Provider Search

Search for Ohio Medicaid providers by NPI, name, location, taxonomy, provider type, or hospital class. Ohio publishes no state-specific provider ID. Returns provider details with rate availability.

Parameters

NameTypeDescription
npistringNational Provider Identifier (10 digits).
provider_namestringProvider name (partial match, case-insensitive).
citystringCity (partial match).
countystringCounty (partial match).
zip_codestringZIP code (exact match).
taxonomystringNUCC taxonomy display name (partial match, non-hospital).
provider_typestringStateRates provider classification. Values: HOSPITAL, PHYSICIAN, ASC, CLINICAL_LABORATORY, IMAGING_CENTER.
hospital_classstringHospital classification filter (HOSPITAL only). Values: Critical Access, Children's, Teaching, Rural, Psychiatric, General Acute Care.
limitintegerMax results (default 100, max 1000).

Request

curl "https://staterates.health/api/v1/oh/providers/search?\
  provider_name=cleveland&\
  provider_type=HOSPITAL" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
providersarrayList of matching providers.
npistringProvider NPI.
provider_namestringProvider name.
provider_typestringStateRates provider classification.
provider_type_labelstringHuman-readable provider type label.
entity_typestringIndividual or Organization (always 'Organization' for HOSPITAL).
primary_taxonomystringNPPES primary taxonomy display name (non-hospital).
hospital_classstringDerived facility-type classification (HOSPITAL only). Values: Critical Access, Children's, Teaching, Rural, Psychiatric, General Acute Care.
street_addressstringStreet address.
citystringCity.
countystringCounty.
statestringState.
zip_codestringZIP code.
op_ratesbooleanHas outpatient rates.
ip_ratesbooleanHas inpatient rates.
total_resultsintegerTotal results found.
limit_appliedintegerLimit applied.
GET/tx/outpatient/rate

Texas Outpatient Rates

Look up a Texas Medicaid outpatient rate by HCPCS code and provider. Automatically routes to professional fee schedule or hospital facility pricing based on the provider's type. Hospital rates include RCC-based pricing and CHIRP managed care adjustments.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringHCPCS/CPT procedure code (e.g., 99213).
npi1 requiredstringNational Provider Identifier (10 digits).
state_provider_id1 requiredstringTPI — Texas Provider Identifier (hospitals only).
ccn1 requiredstringCMS Certification Number (exact match, hospitals only).
provider_name1 requiredstringProvider name (partial match, min 2 characters).
provider_typestringStateRates provider classification. Values: PHYSICIAN, HOSPITAL, ASC_HASC, HOSPITAL_OP_IMAGING, CLINICAL_LABORATORY, OUTPATIENT_BEHAVIORAL_HEALTH, AMBULANCE. If omitted, resolved from taxonomy.
child_patientbooleanTrue if patient is under 21 years of age. Defaults to false (adult).
place_of_servicestringPlace of service (Physician only). Values: facility, non_facility. Defaults to non_facility.
area_typestringHospital classification (Hospital OP Imaging only). Values: urban, rural.
lab_typestringLab fee tier (Clinical Laboratory only). Values: clin_lab, sch, dshs. Defaults to clin_lab.
modifierstringProcedure 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_chargesdecimalTotal billed charges. Required for hospital percent_of_charges codes.
emergency_roombooleanTrue if ER procedure. For hospitals, ASC surgical codes fall back to percent_of_charges (per TAC §355.8061).
date_of_servicestringDate of service (MM/DD/YYYY or YYYY-MM-DD). Defaults to today.

Request

curl "https://staterates.health/api/v1/tx/outpatient/rate?\
  billing_code=99213&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
state_provider_idstringTPI — Texas Provider Identifier.
provider_namestringProvider name.
provider_typestringStateRates provider classification used. Values: PHYSICIAN, HOSPITAL, ASC_HASC, HOSPITAL_OP_IMAGING, CLINICAL_LABORATORY, OUTPATIENT_BEHAVIORAL_HEALTH, AMBULANCE.
provider_type_labelstringHuman-readable label for the StateRates provider classification (e.g., Physician, Hospital).
hospital_classstringHospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING.
high_volume_providerbooleanHigh volume Medicaid provider.
ccnstringCMS Certification Number (hospitals only).
street_addressstringProvider street address.
citystringProvider city.
countystringProvider county.
zip_codestringProvider ZIP code.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
procedure_type_usedstringProcedure type used for rate selection.
tos_codestringType of Service code.
tos_descriptionstringType of Service description (e.g., MEDICAL SERVICES, SURGERY).
modifierstringModifier 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_adjustmentdecimalDerived 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_servicestringPlace of service used.
area_typestringUrban/Rural (Hospital OP Imaging only).
lab_typestringLab tier (Clinical Laboratory only).
age_groupstringAge group used. Values: ADULT, CHILD, ALL.
is_manually_pricedbooleanTrue if rate requires manual review.
emergency_roombooleanTrue if ER procedure was specified.
medicaid_feedecimalPre-adjustment Medicaid fee (professional only).
total_rvusdecimalRVUs (Physician only).
conversion_factordecimalConversion factor (Physician only).
outpatient_rccdecimalOutpatient interim rate (RCC).
pct_allowable_chargesdecimalPercentage of allowable charges.
effective_ratedecimalPre-calculated effective rate: RCC × pct allowable.
source_fee_schedulestringSource fee schedule: ASC_HASC, HOSPITAL_OP_IMAGING.
billed_chargesdecimalBilled charges provided.
calculation_notestringNote when charges not provided or manual pricing.
chirp_adjustmentsobjectCHIRP adjustment per managed care program (STAR, STAR_PLUS, STAR_KIDS). Hospital only. Each contains outpatient_rate_increase, chirp_multiplier, and adjusted_payment.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/tx/outpatient/rate/batch

Look 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
    }
  ]
}
GET/tx/inpatient/rate

Texas Inpatient Rates

Look up a Texas Medicaid APR-DRG inpatient payment rate. Payment = Final SDA × DRG Relative Weight. Includes transfer adjustments, day/cost outlier calculations (patients under 21), PPC/PPR penalty reductions, and CHIRP managed care adjustments. Texas uses the admission date to determine the effective rate period.

Parameters

NameTypeDescription
reference_idstringA 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. StateRates does not log, persist, or inspect this value; it is stripped from request logs and error tracking.
billing_coderequiredstringAPR-DRG code (e.g., 140 or 140-2).
npi1 requiredstringNational Provider Identifier (10 digits).
state_provider_id1 requiredstringTPI — Texas Provider Identifier.
ccn1 requiredstringCMS Certification Number (exact match).
provider_name1 requiredstringHospital name (partial match).
soiintegerSeverity of Illness (1–4). If omitted, returns rates for all SOI levels.
admit_datestringAdmission date (MM/DD/YYYY or YYYY-MM-DD). Defaults to today.
transfer_claimbooleanIs this the transferring hospital's claim?
child_patientbooleanTrue if patient is under 21 years of age. Defaults to false (adult).
length_of_stayintegerLength of stay in days. Required for transfers. Defaults to mean LOS.
total_chargesdecimalTotal charges for outlier calc and lesser-of rule.

Request

curl "https://staterates.health/api/v1/tx/inpatient/rate?\
  billing_code=140-2&\
  npi=1234567890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
reference_idstringEcho 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_foundbooleanWhether a rate was found.
error_messagestringError details if rate not found. Null on success.
npistringProvider NPI.
state_provider_idstringTPI — Texas Provider Identifier.
provider_namestringProvider name.
hospital_classstringHospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING.
ccnstringCMS Certification Number.
street_addressstringHospital street address.
citystringHospital city.
countystringHospital county.
zip_codestringHospital ZIP code.
billing_codestringBilling code submitted.
billing_code_typestringCode system. Values: HCPCS, APR-DRG.
billing_code_descriptionstringHuman-readable code description.
payment_ratedecimalPayment rate in dollars.
payment_rate_typestringRate type. Values: fee_schedule, percent_of_charges, manually_priced, claim.
calculation_methodstringHuman-readable calculation formula with actual values.
apr_drg_codestringBase DRG code.
soiintegerSeverity of Illness (1–4).
relative_weightdecimalDRG relative weight.
mean_losdecimalMean length of stay.
is_delivery_drgbooleanWhether this is a delivery-related DRG.
grouper_versionstringAPR-DRG grouper version.
mdc_codestringMajor Diagnostic Category code.
mdc_descriptionstringMajor Diagnostic Category description.
inpatient_sdadecimalHospital Final SDA.
delivery_sdadecimalDelivery SDA (Rural/Children's only).
sda_useddecimalSDA used in this calculation.
base_paymentdecimalBase payment: SDA × relative_weight.
transfer_adjustment_appliedbooleanWhether transfer adjustment was applied.
transfer_adjusted_amountdecimalPayment after transfer adjustment.
outlier_adjustment_appliedbooleanWhether outlier was applied.
outlier_amountdecimalOutlier adjustment amount.
outlier_typestringType of outlier applied. Values: day_outlier, cost_outlier.
estimated_costdecimalEstimated cost for cost outlier calc.
cost_outlier_thresholddecimalCost outlier threshold.
day_outlier_thresholdintegerDay outlier threshold.
marginal_cost_pctfloatMarginal cost percentage (0.60).
outlier_reduction_factorfloatOutlier reduction factor by hospital class.
inpatient_rccfloatHospital inpatient cost-to-charge ratio.
universal_meandecimalUniversal mean cost for cost outlier threshold.
charge_cap_appliedbooleanWhether lesser-of rule reduced payment.
ppc_pct_applieddecimalHospital-specific PPC penalty.
ppr_pct_applieddecimalHospital-specific PPR penalty.
ppc_ppr_adjusted_amountdecimalPayment after PPC/PPR reduction.
length_of_stay_usedintegerLOS used in calculation.
total_charges_useddecimalTotal charges used.
total_charges_sourcestringSource of charges used. Values: actual, estimated.
chirp_adjustmentsobjectCHIRP IP adjustment per program (STAR, STAR_PLUS, STAR_KIDS). Each contains inpatient_rate_increase, chirp_multiplier, and adjusted_payment.
effective_start_datedateRate period start date.
effective_end_datedateRate period end date. Null if currently active.
POST/tx/inpatient/rate/batch

Look up multiple TX inpatient rates in a single POST request. Maximum 1,000 lookups per batch.

GET/tx/providers/search

Texas Provider Search

Search for Texas Medicaid providers by NPI, TPI, CCN, name, or location. Returns provider details including hospital classification and rate availability.

Parameters

NameTypeDescription
npistringNational Provider Identifier (10 digits).
state_provider_idstringTPI — Texas Provider Identifier.
ccnstringCMS Certification Number.
provider_namestringProvider name (partial match, min 2 characters).
citystringCity (partial match).
zip_codestringZIP code (exact match).
countystringCounty (partial match).
taxonomystringTaxonomy code filter.
provider_typestringStateRates provider classification. Values: PHYSICIAN, HOSPITAL, ASC_HASC, HOSPITAL_OP_IMAGING, CLINICAL_LABORATORY, OUTPATIENT_BEHAVIORAL_HEALTH, AMBULANCE.
hospital_classstringHospital classification. Values: Urban, Rural, Childrens, STATE OWNED TEACHING.
limitintegerMax results (default 100, max 1000).

Request

curl "https://staterates.health/api/v1/tx/providers/search?\
  provider_name=memorial&\
  city=houston" \
  -H "Authorization: Bearer YOUR_API_KEY"

Returns

FieldTypeDescription
providersarrayList of matching providers.
npistringProvider NPI.
state_provider_idstringTPI — Texas Provider Identifier.
provider_namestringProvider name.
provider_typestringStateRates provider classification.
provider_type_labelstringHuman-readable label for the StateRates provider classification.
entity_typestringIndividual or Organization.
primary_taxonomystringPrimary taxonomy code.
street_addressstringStreet address.
citystringCity.
statestringState.
zip_codestringZIP code.
countystringCounty.
ccnstringCMS Certification Number (hospitals only).
hospital_classstringHospital classification (hospitals only). Values: Urban, Rural, Childrens, STATE OWNED TEACHING.
op_ratesbooleanHas outpatient rates.
ip_ratesbooleanHas inpatient rates.
total_resultsintegerTotal results found.
limit_appliedintegerLimit applied.

Errors

{
  "detail": {
    "error": {
      "type": "authentication_error",
      "code": "invalid_api_key",
      "message": "Invalid or revoked API key"
    }
  }
}
StatusCommon codeMeaning
400api_key_in_queryKey sent in a URL query string. Put it in the Authorization header.
401missing_api_keyNo Authorization header or the Bearer scheme is missing.
401invalid_api_keyKey is unknown, revoked, or past its expiry.
403state_not_enabledYour key isn't scoped to the state you called. Email support to add it.
404Endpoint path doesn't exist. Check the URL against the reference above.
422Request parsed but violated a schema rule (e.g. batch over 1000 items). See detail for field-level errors.
429monthly_quota_exceededMonthly units cap hit, or per-key burst limit tripped (burst 429s have no JSON body). See Rate Limits.
500Our bug. Don't retry blindly — email support with the timestamp.
502API briefly unreachable (usually a deploy restart). Safe to retry after ~5s.

Rate Limits & Quotas

Two limits, both return 429:

  1. 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.
  2. Monthly cap — each org gets 1000 "units" per state per month (adjustable by contract). A unit is one item we priced: a single-rate call is 1 unit, a 500-claim batch is 500. Go over and 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-Limit:     1000
X-RateLimit-Remaining: 873
X-RateLimit-Reset:     2026-05-01T00:00:00Z

Reset is the first-of-next-month UTC timestamp when the cap refills.

Monthly cap 429 body

{
  "detail": {
    "error": {
      "type": "rate_limit_error",
      "code": "monthly_quota_exceeded",
      "message": "Monthly units cap for TX exceeded",
      "state": "TX",
      "requested": 500,
      "remaining": 73,
      "resets_at": "2026-05-01T00:00:00+00:00"
    }
  }
}

If a batch would push you over the cap, the entire batch is rejected — no partial fulfillment. The requested / remaining / resets_at fields let you split the batch and retry precisely.