Access CMS Healthcare Data

Three ways to work with 100M+ Medicare provider records — from quick queries to full database downloads to enterprise deployments.

Choose Your Access Tier

MOST POPULAR

Tier 1: Public API

Free

For developers, researchers, and builders

  • Query our database via REST API
  • 100 requests per minute
  • Up to 1,000 rows per query
  • All 30 datasets accessible
  • Interactive dashboard included
Get Started

No signup required • Start querying immediately

Tier 2: Research Access

Email Required

For academics and serious analysts

  • Larger queries (up to 10K rows)
  • Bulk table exports (CSV/Parquet)
  • Full database snapshot (6GB DuckDB)
  • 24-48 hour approval turnaround
  • Academic/research priority
Request Access

Tell us your use case • Manual approval

Tier 3: Enterprise API

Custom

For health systems and organizations

  • Unlimited queries and downloads
  • Real-time data updates
  • Custom transformations & enrichment
  • Azure deployment (your tenant)
  • Match engine + LLM integration
  • White-glove support
Contact Sales

Starting at $2K/month + setup

API Quick Start

Start querying immediately. No authentication required for basic access. API key required for higher rate limits.

Basic Query Example

Find top California providers by Medicare payment:

curl -X POST https://healthcaredataai.com/api/query \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "sql": "SELECT npi, first_name, last_name, provider_type, city, 
            ROUND(tot_medicare_payment,2) as payment 
     FROM core_providers c 
     JOIN utilization_metrics u ON c.npi = u.npi 
     WHERE c.state = '\''CA'\'' 
     ORDER BY payment DESC 
     LIMIT 10"
  }'

Response Format

{
  "columns": ["npi", "first_name", "last_name", "provider_type", "city", "payment"],
  "rows": [
    ["1003053851", "Aaron", "Jeng", "Internal Medicine", "San Gabriel", 44581902.37],
    ["1174718134", "Richard", "Park", "Internal Medicine", "Granada Hills", 32374385.82],
    ...
  ],
  "row_count": 10,
  "elapsed_ms": 42.3,
  "truncated": false
}

Available Endpoints

GET /health

Health check and database stats

GET /tables

List all tables with row counts

GET /tables/{name}/schema

Get table schema (columns, types)

POST /query

Execute SQL query (read-only)

GET /search/places

Provider search with Google Places

GET /match/search

Match provider name to CMS data

View Full API Documentation

Request Research Access

Need larger queries or bulk downloads? Fill out this form and we'll review your request. Academic researchers and non-profit organizations are prioritized.

Note: We typically respond within 24-48 hours. Academic researchers (.edu email) and non-profit organizations are prioritized. Commercial use cases are reviewed individually.

Data Sources & Attribution

All data provided by the Centers for Medicare & Medicaid Services (CMS) via data.cms.gov.

What We Do:

  • Aggregate and consolidate 30+ CMS public use files into one database
  • Transform and enrich data for easier analysis (entity resolution, matching)
  • Serve via modern API and interactive dashboard
  • Update quarterly following CMS release schedules

What We Don't Have:

  • Protected Health Information (PHI) — our data is provider-level aggregates only
  • Individual patient records or claims (requires Data Use Agreement with CMS)
  • Real-time data — typically 1-2 years lag between service and public release
  • Non-Medicare data — Medicaid, commercial insurance, other payers not included

Not affiliated with CMS. HealthcareDataAI is an independent project. All analysis, opinions, and interpretations are our own. For official CMS data and documentation, visit data.cms.gov.