healthcare.dev docs

Medicare enrollment (PECOS)

CMS's public Medicare fee-for-service provider enrollment file by NPI: enrollment id, PECOS associate id, provider type and enrollment state.

Version 2026-10-01Updated 2026-10-25Lag 0.1 h of 3 dFresh
SourceCMS (Medicare Fee-For-Service Public Provider Enrollment, PECOS)
Source idcms-pecos-enrollment
Release cadenceQuarterly
LicensePublic domain (US government work)
Endpoint/v1/providers/{npi}/enrollment
MCP toolcheck_medicare_enrollment
PlansEvery plan, Free included

CMS lists every provider "actively approved to bill Medicare or [who has] completed the 855O" (ordering and referring only) when it pulls the quarterly file: about 3 million enrollments. Each record is one enrollment: enrollment_id (I... an individual, O... an organization), the NPI, an organization's additional_npis, the PECOS associate id (one per provider across its enrollments), the provider type and code, the enrollment state and the name. One NPI can hold several enrollments, one per state and provider type.

curl https://api.healthcare.dev/v1/providers/1881018208/enrollment \
  -H "Authorization: Bearer $HDEV_API_KEY"
{
  "data": {
    "npi": "1881018208",
    "enrolled": true,
    "note": "Matched by NPI (the enrollment's NPI or one of its additional NPIs) in CMS's Medicare Fee-For-Service Public Provider Enrollment file, release 2026-10-01. ...",
    "enrollments": [
      {
        "enrollment_id": "O20031103000285",
        "npi": "1922074434",
        "additional_npis": ["1114343860", "1427235068", "1538568928", "1881018208"],
        "provider_type": "PART B SUPPLIER - CLINIC/GROUP PRACTICE",
        "state": "MN",
        "status": "active"
      }
    ]
  }
}
  • The NPI matches an enrollment's own NPI or one of its additional NPIs, so an organization that bills under several NPIs answers for each of them.
  • enrolled: false means the file lists no enrollment with this NPI as of data_version, not a determination of eligibility. A listed enrollment is not a guarantee of payment.
  • Enrollments a later file drops stay with status: retired and effective_end; effective_start is the first release we loaded that listed it (CMS publishes no enrollment date).
  • GET /v1/providers/{npi} links here (links.enrollment) when the file lists the NPI.