Payer rates and providers
What insurers publish they pay hospitals, practices and doctors. Five tools, their parameters and what comes back.
Insurers must publish their in-network rates (the Transparency-in-Coverage files). We keep the rates for hospitals in the states we have loaded, plus rates for physician groups, practices and doctors. You don't call these tools yourself. Your assistant does, from your question.
Two of them are free lookups. Three return the rates themselves and need the payer rates plan; without it you get the first 8 rows as a preview, with the dollar columns (min_rate, median_rate, max_rate) removed. See Plans & access.
payer_rates_overview
Which states and insurers we hold rates for. Free, and a good first call.
| Parameter | Type | Default | What it does |
|---|
It returns states[]: the state, how many hospitals, billing codes and rates we hold, the newest file date, and the insurers (payers[]) with their hospital and code counts there.
search_payer_rates
What each insurer publishes it pays named hospitals for billing codes.
| Parameter | Type | Default | What it does |
|---|---|---|---|
codes | list of string | none | CPT, HCPCS or MS-DRG codes to look up. |
hospital_ids | list of string | none | Up to 25 hospital ids (UUIDs), as returned in the hospital_id field of earlier rows. |
include_percentages | boolean | false | |
limit | integer | 50 | Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for. |
offset | integer | 0 | Rows to skip, for paging. |
payer | string | none | Only this insurer, as named in the data. |
state | string | required | Two-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids. |
Give a state, plus hospital_ids (up to 25, from find_hospitals) and/or codes. A whole state is not searchable. payer keeps insurers whose name contains the text, in any case ("aetna" finds "Aetna CVS - Fully Insured"). Results are dollar rates only; percent-of-charge rows (negotiated_type "percentage") come back only with include_percentages=true. Coverage is partial: insurer files match about three in four hospitals, so some hospitals have no rows. limit is 1 to 200, default 50; page with offset.
Each row is one hospital, code, insurer and rate type:
| Field | Meaning |
|---|---|
hospital_id, hospital_name | The hospital. |
billing_code, billing_code_type | The code and its system (CPT, HCPCS, MS-DRG ...). |
payer | The insurer, as payer_rates_overview names it. |
negotiated_type, billing_class | How the rate is expressed, and professional or institutional. |
min_rate, median_rate, max_rate | The spread of that insurer's distinct published prices. |
n_rates | How many distinct prices stand behind the spread. |
file_date | The newest insurer file the rate came from. |
find_providers
Find a practice, group, health system or doctor by name, NPI or TIN. Free.
| Parameter | Type | Default | What it does |
|---|---|---|---|
limit | integer | 25 | Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for. |
q | string | required | Search the service description, up to 200 characters. |
state | string | required | Two-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids. |
A provider here is a TIN, the tax id an insurer contracts with. A doctor's name finds the group they bill under. Rows carry tin, tin_type, name, city, npi_count (clinicians under it) and payers (insurers listing it). Pass the tin to the two tools below.
search_provider_rates
Insurers' published rates for named providers and codes.
| Parameter | Type | Default | What it does |
|---|---|---|---|
codes | list of string | required | CPT, HCPCS or MS-DRG codes to look up. |
family | string | none | Only this payer family. |
limit | integer | 50 | Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for. |
offset | integer | 0 | Rows to skip, for paging. |
state | string | required | Two-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids. |
tins | list of string | required | Up to 25 provider tax ids (TIN), as returned by find_providers. |
state, tins (1 to 25) and codes (at least one) are all required. family narrows to one insurer family such as BCBS, UHC, Cigna or Aetna. Rows have the same spread fields as above, plus tin, provider_name, provider_city and payer_family.
compare_provider_rates
One row per code and provider, one column per insurer family.
| Parameter | Type | Default | What it does |
|---|---|---|---|
billing_class | string | professional | professional or institutional. |
codes | list of string | required | CPT, HCPCS or MS-DRG codes to look up. |
limit | integer | 50 | Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for. |
state | string | required | Two-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids. |
tins | list of string | required | Up to 25 provider tax ids (TIN), as returned by find_providers. |
billing_class is professional (default) or institutional. Percentage-of-charge rates are left out, because they are not dollars. The result has families[] (commonest first) and rows[], each with families, a map from family to median, low, high and n. On the free preview each family has only n.
What every answer carries
| Field | Meaning |
|---|---|
count, total | Rows in this answer, and the matching rows overall. |
truncated | true when more rows exist. Page with offset, or narrow the search. |
locked | true when your plan only gets the free preview. |
subscribe | On a preview: a link and a sentence for turning the full data on. Your assistant should show you both. |
Example questions
- Which insurers do you have rates for in Florida?
- What do insurers pay Mayo Clinic Florida for a 99213?
- Find the orthopedic groups in Tampa.
- Compare BCBS and UHC rates for 99213 across these three practices.