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
| Source | CMS (Medicare Fee-For-Service Public Provider Enrollment, PECOS) |
| Source id | cms-pecos-enrollment |
| Release cadence | Quarterly |
| License | Public domain (US government work) |
| Endpoint | /v1/providers/{npi}/enrollment |
| MCP tool | check_medicare_enrollment |
| Plans | Every 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: falsemeans the file lists no enrollment with this NPI as ofdata_version, not a determination of eligibility. A listed enrollment is not a guarantee of payment.- Enrollments a later file drops stay with
status: retiredandeffective_end;effective_startis 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.