Free Dental Cost API: Open JSON Data for Developers & AI Agents
Our dental cost data is available as a free, open JSON API — no key, no signup, CORS enabled. Static versioned endpoints cover all 51 U.S. state markets and 12 procedures, documented with an OpenAPI 3.1 spec, under CC BY 4.0.
Try it now
# All 51 state markets, cheapest to priciest
curl https://realdentalcosts.com/api/v1/states.json
# Full cost profile for one state (lowercase two-letter code)
curl https://realdentalcosts.com/api/v1/state/tx.json
# The 12 tracked procedures, national figures
curl https://realdentalcosts.com/api/v1/procedures.json
# One procedure across all 51 states
curl https://realdentalcosts.com/api/v1/procedure/dental-implant.json
# Dataset metadata: edition, DOIs, license, versioning policy
curl https://realdentalcosts.com/api/v1/index/meta.json
Endpoints
| Endpoint | Returns |
|---|---|
| /api/v1/index/meta.json | Edition, DOIs, license, versioning policy, endpoint index |
| /api/v1/states.json | The 51 state markets ranked on the Restorative Cost Index |
/api/v1/state/{code}.json | One state: state averages (implant = editorial estimate), procedure price bands (crown, veneer, braces and dentures withheld, see Attribution), Medicaid acceptance — e.g. state/ca.json |
| /api/v1/procedures.json | The 12 procedures with national low/avg/high and pricing basis |
/api/v1/procedure/{slug}.json | One procedure across all 51 states — e.g. procedure/root-canal.json; the state table is withheld for dental-crown, porcelain-veneer, braces and dentures |
| /api/v1/medicaid/index.json | Medicaid paid per claim line by CDT code (HHS T-MSIS 2018-2024): index of the published codes, national paid amounts, state quality flags |
/api/v1/medicaid/{code}.json | One CDT code: national and 51-state Medicaid paid per claim line, 2018-2024 series, P25-P75, claim lines, providers, quality flag, cash benchmark — e.g. medicaid/D2740.json |
| /api/v1/meps/national.json | National dental spending, utilization and out-of-pocket burden (AHRQ MEPS HC-256/HC-251, survey-weighted, 2023-2024): totals, per-capita, medians/IQR, OOP share — macro validation layer, not per-procedure prices |
| /api/v1/meps/longitudinal.json | Same 8,389 people followed across 2023 and 2024 (AHRQ MEPS Panel 28, HC-257, longitudinal weight, 95% confidence intervals): paired change in dental spending, out-of-pocket, Medicaid-paid and visits, plus the share who had a dental visit in both years, one year or neither — no paired change is statistically significant, so we report no national trend |
| /api/v1/openapi.json | Machine-readable OpenAPI 3.1 specification |
State codes are lowercase two-letter USPS codes (al … wy, plus dc). Procedure slugs are stable: exam-cleaning-xrays, composite-filling, deep-cleaning-srp, tooth-extraction, teeth-whitening, root-canal, dental-crown, porcelain-veneer, braces, dental-implant, dentures, all-on-4.
How to read the data
Every procedure entry declares its basis:
| Basis | Meaning |
|---|---|
observed | The state average is a measured price (ASQ360/CareCredit for crown, veneer, braces, dentures — the ASQ360 state figures are cited on our pages but not redistributed in the API). The low/high band around it is modelled from national ratios, not an observed percentile. |
estimated | No per-state source exists; the national figure is scaled by the state's Restorative Cost Index. Valid only for restorative procedures. |
national | Cosmetic procedure with no per-state source — no state variation is invented; every state carries the national range. |
Since August 2026 every price entry also carries an additive provenance block — price_type, source_id (a key into the public sources registry), source, period, sample_n, geo_level, modeled and a confidence score from 0 to 100. basis is unchanged (observed → observed_market, estimated → estimated_index, national → national_band); by_state[] entries inherit the procedure-level block and recompute only confidence.
price_type | Meaning |
|---|---|
observed_market | Measured state average from a published cash-price survey. |
observed_quotes | Real, itemised treatment plans (Real Quotes Index) — reserved, not yet used in payloads. |
estimated_index | National range scaled by the state Restorative Cost Index — modelled, confidence capped at 60. |
national_band | National range only (cosmetic) — modelled, capped at 60. |
medicaid_paid | What Medicaid actually paid per claim line (HHS T-MSIS Medicaid Provider Spending, provider state via NPPES). Paid ≠ allowed ≠ cash price. |
official_fee / chain_list_price / commercial_allowed | Published fee schedules; a chain's published "starting at" price; APCD allowed amounts (licensed, not yet published). |
confidence = round(100 × (0.35·source tier + 0.25·granularity + 0.20·freshness + 0.20·sample/dispersion)) — the weights and worked examples are on the methodology page.
The Restorative Cost Index (100 = national implant average (editorial estimate, not collected prices)) is valid only for implant, crown and denture prices, which correlate at 0.93–0.96. It does not predict orthodontic or cosmetic prices — see our data corrections log for why we insist on this.
Attribution (required)
The data is licensed CC BY 4.0. Any use — app, dashboard, article, AI answer, research — must credit Real Dental Costs with a link to https://realdentalcosts.com or cite the dataset DOI 10.5281/zenodo.20531728. Ready-to-copy APA and BibTeX citations are on the cite this data page.
Third-party figures are not covered by CC BY 4.0. The crown, veneer, braces and dentures state averages come from the ASQ360°/CareCredit Average Procedural Cost Study 2023-2024: state averages cited with attribution, not licensed for redistribution. Their 51-state tables are therefore not published in the API (by_state_withheld, withheld: true); the few cited figures that remain (national average, cheapest and priciest state) are listed in a third_party_terms block and stay subject to the source's terms. See license_exceptions in meta.json.
Versioning
/api/v1/ is a stable contract: existing fields never change meaning or disappear; new fields may be added. The one exception is licence-driven: in version 1.3.0 (26 October 2026) the ASQ360/CareCredit state figures were removed from state/{code}.json and procedure/{slug}.json. Breaking changes, if ever needed, will ship under /api/v2/ with v1 kept online. Data refreshes bump the edition field in every payload (current edition: 2026.1). No collected edition is scheduled. The 2026.1 state implant series is an editorial estimate (not collected). A register of advertised single-implant prices by metro is being piloted and will be published only if it meets its published gate.
Availability of the website, this API and our MCP server is checked every three minutes and shown on a public status page.
Prefer raw files? The same data is published as CSV datasets with permanent DOIs. The full collection and validation methodology is documented on our methodology page and in the US Dental Cost Index report. This API serves pricing and market research data — it is not medical, dental or insurance advice.
Frequently asked questions
Do I need an API key?
Can I use this API in a commercial product?
Will the API change and break my integration?
What does the confidence score mean?
What is the medicaid endpoint?
Where do the numbers come from?
Independent dental pricing research — every series carries a named source, and corrections are logged publicly. Not medical advice.