Overview
The ChargeWise Health API serves the prices Mississippi hospitals publish in their machine-readable price files under the federal hospital price transparency rules, plus two insurer-published layers: the fee schedule Blue Cross Blue Shield of Mississippi publishes in its Transparency in Coverage file, and — as a separately labelled layer — the negotiated rates UnitedHealthcare and Cigna publish in their Transparency in Coverage files for Mississippi provider groups. Every figure is shown as the hospital or insurer published it, and every response labels which kind of figure it is.
Base URL: https://api.chargewisehealth.com
The same endpoints also answer on the website origin: https://chargewisehealth.com/v1/…
Coverage today: 57 Mississippi hospitals, about 32.5 million published hospital
price rows, the BCBSMS fee schedule, and about 9.4 million published UnitedHealthcare and Cigna
negotiated rates for Mississippi provider groups. Data is refreshed monthly; each response
carries a generated_at timestamp, and payer-layer responses carry the payer
file date.
Authentication
Every /v1/* endpoint requires an API key in the X-API-Key header.
Requests with a missing or invalid key return 401. Each key has a daily call cap;
requests past the cap return 429 until the next day (UTC).
| Key type | Daily cap | How to get one |
|---|---|---|
| Demo (shared, used by the public lookup page) | 1,000 calls/day, shared by all visitors | Already built into the price check page — no signup needed for casual lookups |
| Pilot / customer | Set per plan (pilot keys: 1,000/day) | Email hello@chargewisehealth.com |
Treat your key like a password: it is metered, and usage is logged per key (endpoint, parameters, timestamp, status). Keys can be deactivated at any time.
curl -H "X-API-Key: YOUR_KEY" \
"https://api.chargewisehealth.com/v1/prices?code=70551"
Endpoints
GET /health
Service status and dataset counts. No key required. The response reports each data layer
separately: hospital prices, the BCBSMS fee-schedule layer (payer_layer), and the
national negotiated-rate layer (national_layer, with per-payer counts, file
dates, and the layer's identity and coverage caveats). In national_layer,
bridged_price_rows (also reported as bridged_price_rows_served)
counts the hospital-attributed price rows this API actually serves for a payer;
source_bridged_rows counts the rows in the payer's source bridged table
before attribution. The two measure different things — one source group price is
attributed to every hospital whose tax ID appears in that group — so they are expected
to differ.
curl "https://api.chargewisehealth.com/health"
→ {"status":"ok","price_rows":32491714,"hospitals":57, …}
GET /v1/prices KEY REQUIRED
Published prices for one procedure code across hospitals: gross charge, cash (self-pay)
price, an optional insurer's negotiated rate, and the all-payer negotiated range. Where the
payer layer covers a hospital, rows also include a payer_schedule object — the
insurer's published fee schedule for that code and the gap against the hospital's own
published rate. The schedule is labelled in every response:
"insurer's published fee schedule (not a negotiated rate)". Where the hospital's
published rate behind a comparison is a penny placeholder (under $1 in its own file), the
payer_schedule object instead carries gap_placeholder: true with
null gap figures — a gap against a $0.00 rate is meaningless. This is the same placeholder
rule /v1/gaps applies; the published rate and the schedule rates themselves
are still reported.
Where a hospital is bridged to a national payer's provider groups, rows also include a
separate negotiated_rates object: the negotiated rates UnitedHealthcare and/or
Cigna publish in their own Transparency in Coverage files for the groups whose tax ID
includes that hospital, labelled in every response:
"insurer's published negotiated rates (Transparency in Coverage file)". Each rate
carries its billing class (institutional or professional) — a
professional-class rate is a clinician rate, never a facility rate. The two objects are
different kinds of figures from different publishers and are never merged.
| Parameter | Required | Meaning |
|---|---|---|
code | yes | Procedure code, e.g. 70551 (brain MRI), 70450 (head CT) |
payer | no | Insurer name filter for the negotiated rate, e.g. Blue Cross. Matching is by the labels hospitals publish; the response names the actual plan label matched |
setting | no | outpatient or inpatient (outpatient preferred by default) |
sort | no | cash (default) or negotiated — negotiated requires payer |
format | no | json (default) or csv — a spreadsheet export of the same rows |
curl -H "X-API-Key: YOUR_KEY" \
"https://api.chargewisehealth.com/v1/prices?code=70551&payer=Blue+Cross"
GET /v1/search KEY REQUIRED
Find procedure codes by name or code fragment — try q=knee MRI,
q=mammogram, or q=7055. Returns at most 25 codes, ranked by hospital
coverage, with the description hospitals publish most often for each code.
GET /v1/gaps KEY REQUIRED
Hospital-published outpatient Blue Cross rates side by side with the BCBSMS published fee
schedule, largest gaps first. Optional filters: hospital_id, code,
min_confidence (high, medium, or low),
limit (default 100, max 1000). Rates under $1 are excluded — penny figures in the
source files are placeholders. payer_fee_schedule_rate is a schedule figure from
the insurer's own published file; it is not a negotiated rate.
GET /v1/fee-schedule KEY REQUIRED
The insurer's own published fee schedule for one code (code required): every
distinct published price, its billing class (institutional / professional), and how many
provider groups carry it. This endpoint serves the BCBSMS fee schedule only. An optional
payer parameter names the layer: Blue Cross spellings return this schedule;
naming a national payer returns 422 with a pointer to
/v1/negotiated, because those payers publish negotiated rates, not a fee
schedule.
GET /v1/negotiated KEY REQUIRED
The negotiated rates UnitedHealthcare and Cigna publish in their own Transparency in
Coverage files for Mississippi provider groups — a separate layer from the BCBSMS fee
schedule and from hospitals' own published rates. File dates: UnitedHealthcare
2026-11-01 (UnitedHealthcare of Mississippi, Inc., Choice Plus network file),
Cigna 2026-11-01 (Cigna Health Life Insurance Company index; national and
Mississippi-region network files).
| Parameter | Required | Meaning |
|---|---|---|
code | yes | Procedure code, e.g. 70551 |
payer | no | uhc (UnitedHealthcare) or cigna; omit for both payers |
hospital_id | no | Restrict to the provider groups bridged to one hospital (groups whose tax ID includes the hospital's EIN). Without it, results are statewide across the payer's Mississippi groups |
billing_class | no | institutional or professional |
limit | no | Default 500, max 5000 |
Two honesty notes. Identity is tax-ID level, not campus level: a price is attributed to every hospital whose EIN appears in the publishing provider group, and some hospital systems share one EIN across campuses — the same convention as the BCBSMS bridge. And hospital-bridged coverage leans professional: for brain MRI (70551), both national payers' bridged prices are professional-class only, so do not read them as facility prices.
curl -H "X-API-Key: YOUR_KEY" \
"https://api.chargewisehealth.com/v1/negotiated?code=70551&payer=uhc"
GET /v1/hospitals KEY REQUIRED
List the hospitals in the dataset. Optional filters: city, name.
GET /v1/hospitals/{id} returns one hospital's detail, including its source file
and file date.
Errors
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
404 | Hospital not found |
422 | Invalid parameter (the response body names the problem) |
429 | Daily call cap reached for your key's plan |
503 | That data layer is not installed on this server |
A code with no published prices returns 200 with an empty result list.
About the data
- Hospital figures come from each hospital's own published machine-readable file, shown as published — including each hospital's own wording for procedure descriptions.
- Fee-schedule figures come from the insurer's published Transparency in Coverage file. A fee schedule is the insurer's standard published schedule; it is a different thing from a rate negotiated with a specific hospital, and responses label it that way.
- Negotiated-rate figures (UnitedHealthcare, Cigna) come from those insurers' own published Transparency in Coverage files, filtered to Mississippi provider groups. A negotiated rate is the price in the insurer's contract with a provider group — not a standard schedule, and not a figure the hospital published. Responses label it that way, carry the insurer's file date, and keep it in a separate object from both hospital-published rates and the BCBSMS fee schedule.
- Insurer-to-hospital matching is by tax ID (EIN). A provider group's rates are attributed to every hospital whose EIN appears in the group; some hospital systems share one EIN across campuses, so group rates can appear at more than one campus of the same system.
- Published prices are not a quote. Your actual cost depends on your plan, deductible, and the care you receive.
- ChargeWise Health is a data service. It holds no patient information and provides no medical, legal, or billing advice.
Questions, corrections, or your own API key: hello@chargewisehealth.com. See also our Terms of Use and Privacy Policy.