CMS Medicare PECOS Provider Enrollment Scraper
Pricing
Pay per event
CMS Medicare PECOS Provider Enrollment Scraper
CMS Medicare provider enrollment: PECOS active enrollments, Opt-Out Affidavits, and Order/Refer authority. Filter by NPI, state, or specialty. Merged-by-NPI mode joins all three datasets. For pharma, medical-device, billing/RCM, and payer credentialing. Pairs with NPPES NPI crawler.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
CMS Medicare PECOS Provider Enrollment Crawler
Extracts Medicare provider enrollment data from three CMS open-data APIs: the PECOS/DAC national file (~2.86M active enrollments), the Opt-Out Affidavits list (~56K providers who left Medicare), and the Order and Referring Authority list (~2M NPIs). Returns clean JSON with 19 normalized fields per record, filterable by NPI, state, or specialty.
CMS Medicare PECOS Enrollment Crawler Features
- Pulls from three CMS datasets in a single run — PECOS enrollment, opt-out status, and order/refer authority
- Merges all three by NPI in
allmode, so one output row carries fields from every source - Filters by NPI (exact 10-digit lookup), US state code, or specialty string
- Returns 19 standardized fields including enrollment ID, PAC ID, telehealth status, and opt-out dates
- Pure API — no browser, no proxy, no CAPTCHA. CMS publishes these as open government data
- Streaming pagination across all three APIs; handles the full 2.86M-row DAC file without memory issues
- 200ms courtesy delay between requests — stays polite to a public API
What Can You Do With CMS PECOS Data?
- Pharma and medical device reps — Build territory lists of active Medicare-enrolled providers by specialty and state, filtered to the NPIs that can order your products
- Billing and RCM teams — Verify enrollment status and Order/Refer authority before submitting claims; catch opted-out providers before they become denials
- Payer credentialing departments — Cross-reference PECOS enrollment IDs and PAC IDs against your panel data to catch gaps and discrepancies
- Healthcare data vendors — Enrich NPPES NPI directory exports with Medicare-specific enrollment status, opt-out flags, and order-and-refer eligibility
- Compliance and audit teams — Flag providers in your network who have opted out of Medicare, and verify which categories of order-and-refer authority they hold
How CMS Medicare PECOS Enrollment Crawler Works
- Select a dataset mode:
all(merged),pecos(enrollment only),opt_out, ororder_refer. The default isall. - Optionally supply an NPI, state code, or specialty to filter. Leave all three blank for a full-dataset pull.
- The crawler pages through the selected CMS API(s), normalizing field names across the three different response shapes.
- In
allmode, records stream from the PECOS/DAC file enriched with opt-out and order-and-refer lookups per NPI. In single-dataset modes, thejson_apicrawler handles pagination directly.
Input
{"dataset": "all","npi": "","state": "CA","specialty": "","maxItems": 100,"sp_intended_usage": "Building a provider list for credentialing","sp_improvement_suggestions": "n/a"}
| Field | Type | Default | Description |
|---|---|---|---|
dataset | string | "all" | Which dataset to pull. all merges all three by NPI; pecos streams the DAC enrollment file; opt_out returns only opted-out providers; order_refer returns order-and-refer authority records |
npi | string | "" | Single 10-digit NPI for a targeted lookup. Leave blank for full dataset |
state | string | "" | Two-letter US state code (e.g., CA, TX). Filters PECOS and opt-out datasets |
specialty | string | "" | Specialty name or taxonomy prefix to filter PECOS records (e.g., INTERNAL MEDICINE) |
maxItems | integer | 10 | Maximum rows to return. Set to 0 for an unlimited full-dataset pull |
proxyConfiguration | object | {useApifyProxy: false} | Proxy settings. Not needed — CMS APIs are public |
sp_intended_usage | string | required | Brief description of how you'll use the data |
sp_improvement_suggestions | string | required | Feedback or "n/a" |
Single-NPI lookup:
{"dataset": "all","npi": "1245084383","maxItems": 0,"sp_intended_usage": "Provider credentialing check","sp_improvement_suggestions": "n/a"}
Full opt-out list:
{"dataset": "opt_out","maxItems": 0,"sp_intended_usage": "Building Medicare opt-out exclusion list","sp_improvement_suggestions": "n/a"}
CMS Medicare PECOS Enrollment Crawler Output Fields
All Mode (Merged)
Streams PECOS/DAC records enriched with opt-out and order-and-refer data for NPI-filtered queries. For state or specialty filters, returns PECOS enrollment fields with opt-out and order-and-refer fields set to their defaults.
{"npi": "1245084383","first_name": "JOHN","last_name": "SMITH","organization_name": "","specialty": "INTERNAL MEDICINE","taxonomy_code": "","enrollment_id": "I20031105000066","pac_id": "2860530703","gender": "M","credential": "MD","enrollment_state": "CA","address": "123 MAIN ST","city": "LOS ANGELES","zip_code": "90001","phone": "3105550100","telehealth": "Y","group_assignment": "I","reassignments_count": 2,"opt_out_status": "not_opted_out","opt_out_effective_date": "","opt_out_end_date": "","order_refer_authority": ["PARTB", "DME"],"order_refer_eligible": true,"source_dataset": "PECOS,OrderRefer"}
| Field | Type | Description |
|---|---|---|
npi | string | 10-digit National Provider Identifier |
first_name | string | Provider first name |
last_name | string | Provider last name |
organization_name | string | Organization or facility name (for group/org NPIs) |
specialty | string | Primary specialty description |
taxonomy_code | string | Primary taxonomy code (populated by NPPES join; blank in raw CMS data) |
enrollment_id | string | CMS enrollment ID from PECOS/DAC dataset |
pac_id | string | Provider and Affiliate Control (PAC) ID |
gender | string | Provider gender: M or F |
credential | string | Credential: MD, DO, NP, PA, etc. |
enrollment_state | string | State of Medicare enrollment |
address | string | Practice street address |
city | string | Practice city |
zip_code | string | Practice ZIP code |
phone | string | Practice phone number |
telehealth | string | Telehealth indicator: Y or N |
group_assignment | string | Individual or group Medicare assignment: I or M |
reassignments_count | number | Organization member count (from PECOS reassignment data) |
opt_out_status | string | opted_out or not_opted_out |
opt_out_effective_date | string | Date the provider opted out of Medicare |
opt_out_end_date | string | Date the opt-out period expires |
order_refer_authority | array | Categories of order-and-refer authority: PARTB, DME, HHA, PMD, HOSPICE |
order_refer_eligible | boolean | True if the provider has any order-and-refer authority |
source_dataset | string | Which datasets contributed data: PECOS, OptOut, OrderRefer, or combinations like PECOS,OrderRefer |
Opt-Out Mode
{"npi": "1234567890","first_name": "JANE","last_name": "DOE","specialty": "PSYCHIATRY","enrollment_state": "NY","address": "456 ELM ST","city": "NEW YORK","zip_code": "10001","opt_out_status": "opted_out","opt_out_effective_date": "07/01/2022","opt_out_end_date": "07/01/2024","source_dataset": "OptOut"}
Order-Refer Mode
{"npi": "9876543210","first_name": "ROBERT","last_name": "JONES","order_refer_authority": ["PARTB", "HHA", "HOSPICE"],"order_refer_eligible": true,"source_dataset": "OrderRefer"}
🔍 FAQ
How do I scrape CMS Medicare PECOS enrollment data?
CMS Medicare PECOS Enrollment Crawler connects to the CMS open-data APIs directly — no authentication or API key required. Configure your dataset mode and filters, set maxItems to 0 for a full pull, and run. The actor handles pagination, normalization, and field merging automatically.
How much does this actor cost to run?
CMS Medicare PECOS Enrollment Crawler uses pay-per-event pricing at $0.001 per record. A full PECOS pull (~2.86M records) costs roughly $2.86. Filtered runs by state or NPI cost proportionally less. There is also a $0.10 platform fee per run start.
What data is available from the CMS PECOS API?
CMS Medicare PECOS Enrollment Crawler returns enrollment status, specialty, practice address, telehealth flag, group assignment, opt-out status and dates, and order-and-refer authority across five categories (PARTB, DME, HHA, PMD, HOSPICE). It does not return billing volume, claim counts, or financial data — those are in separate CMS datasets.
Does this actor need proxies?
CMS Medicare PECOS Enrollment Crawler does not need proxies. These are public government APIs with no IP-based rate limiting. Set proxyConfiguration: { useApifyProxy: false } and the actor runs without any proxy overhead.
Can I filter by specialty or taxonomy code?
Filter by specialty string using the specialty input field. The CMS PECOS API matches against the primary specialty description (e.g., INTERNAL MEDICINE). Taxonomy code filtering is not directly supported by the CMS API — filter by specialty description instead, then join to the NPPES NPI dataset by NPI if you need taxonomy codes.
Need More Features?
Need custom filters, additional CMS datasets, or a data join with NPPES? File an issue or get in touch.
Why Use CMS Medicare PECOS Enrollment Crawler?
- Three datasets, one run — PECOS enrollment, opt-out status, and order-and-refer authority merged by NPI, so you don't have to cross-reference three CSV files yourself
- Affordable — $0.001 per record, no proxy costs, and the entire 2.86M-row DAC file costs under $3
- Government source — Data comes directly from CMS open-data APIs, updated monthly (PECOS/opt-out) or weekly (order-and-refer), with no intermediary or third-party aggregator markup