Healthcare Provider Payments Scraper - NPI & CMS Payments
Pricing
from $10.00 / 1,000 provider records
Healthcare Provider Payments Scraper - NPI & CMS Payments
Scrape U.S. healthcare provider profiles from the NPPES NPI Registry and match each to CMS Open Payments: general, research and ownership/investment records across 7 program years (2019-2025). Filter by name, organization or state. Export CSV, Excel, JSON. No login or API key.
Pricing
from $10.00 / 1,000 provider records
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Healthcare Provider Payments Scraper looks up any U.S. provider or organization in the NPPES NPI Registry and matches it to CMS Open Payments: general payments, research payments and ownership interests across program years 2019-2025. Export CSV, Excel, JSON or API. No login, no API key. Verified 2026-10-03. $10 per 1,000 providers.
Healthcare Provider Payments Scraper turns a name into a provider profile plus the money that drug and device companies reported paying that provider. It reads the government's own NPI Registry (npiregistry.cms.hhs.gov) and the CMS Open Payments "Sunshine Act" database (openpaymentsdata.cms.gov), and it checks all seven program years CMS publishes (2019-2025), not only the latest. Built for compliance teams, pharma and medtech analysts, due-diligence researchers and journalists.
๐ฉบ What does the Healthcare Provider Payments Scraper do?
- Search the NPI Registry by provider name ("John Smith"), organization name ("Mayo Clinic") and optional U.S. state.
- Return one row per NPI record: name, credential, status, enumeration dates, taxonomies (specialties and licenses), addresses, practice locations, other names and identifiers.
- Optionally attach general payments (food, travel, consulting, speaking, gifts), research payments (tied to a research agreement or protocol) and ownership or investment interests to each provider row.
- Sweep every available Open Payments program year per category, newest first, up to a per-provider cap you set.
- Skip duplicate NPIs and rows without an NPI, so you are never billed for them.
๐ What data can you extract from the NPI Registry and CMS Open Payments?
| Field | Description |
|---|---|
npi, enumerationType | NPI number and type (NPI-1 individual, NPI-2 organization) |
firstName, lastName, organizationName | Provider or organization name |
credential, status | Credential (for example MD) and registry status |
enumerationDate, lastUpdated | When the NPI was issued and last changed |
taxonomies | Specialty code, description, license number, state, primary flag |
addresses, practiceLocations | Location and mailing addresses with phone |
otherNames, identifiers | Alternate names and other issued identifiers |
generalPayments | Year, date, amount, form, nature, paying company, product |
researchPayments | Same fields plus study name |
ownershipInterests | Year, total invested, value of interest, terms, held by, company |
scrapedAt | UTC timestamp of the run |
๐งพ Sample output from a real run
Real row from a cloud run (input John Smith, general payments on, trimmed to one payment for length):
{"recordType": "provider","npi": "1871538041","enumerationType": "NPI-1","firstName": "JACK","lastName": "SMITH","credential": "MD","status": "A","enumerationDate": "2006-06-19","lastUpdated": "2023-05-04","taxonomies": [{ "code": "207R00000X", "description": "Internal Medicine", "license": "L3131", "state": "TX", "primary": true }],"addresses": [{ "purpose": "LOCATION", "address": "409 COTTAGE RD", "city": "CARTHAGE", "state": "TX", "zip": "756331466", "phone": "903-694-4824" }],"generalPayments": [{ "programYear": "2025", "recipientType": "Covered Recipient Physician", "date": "05/21/2025", "amount": 25.02, "numberOfPayments": 1, "formOfPayment": "In-kind items and services", "natureOfPayment": "Food and Beverage", "payingCompany": "Viatris Specialty LLC", "productName": "YUPELRI" }],"scrapedAt": "2026-10-04T04:44:48.579Z"}
A second real run (Gregg Stone, NY, research and ownership on) returned research payments of $22,500 from ZOLL Circulation Inc (program year 2025) and an ownership interest valued at $1,467,539.19 in SpectraWAVE, Inc.
Keys with no data are left out of the row instead of being filled with placeholders: generalPayments, researchPayments and ownershipInterests appear only when you switched the category on and the provider has records, and organizationName, practiceLocations, otherNames and identifiers appear only when the registry has them.
๐ฐ How much does it cost to scrape NPI and Open Payments data?
Pay per event. You are charged only for rows that were saved to the dataset, never for a failed or empty run, and never for a search that matches nothing.
| Event | Price (per 1,000, Free tier) | When it is charged |
|---|---|---|
| Provider record | $10.00 | One per provider row delivered |
| General payment record | $15.00 | One per general payment attached to a delivered provider |
| Research payment record | $18.00 | One per research payment attached |
| Ownership interest record | $20.00 | One per ownership interest attached |
Paid Apify plans get lower per-event prices at higher tiers (Bronze to Diamond). Example from a real run: 10 providers with up to 3 general payments each returned 10 provider records and 11 general payment records, which is 10 x $0.01 + 11 x $0.015 = $0.265 at the Free tier. The Actor respects your max total charge setting and stops cleanly with the message "Stopped at your max charge limit". Free-plan users are limited to 10 providers per run.
๐ How to scrape the NPI Registry and Open Payments (3 steps)
- Open the Actor and enter a Provider name (for example
John Smith) or an Organization name. Optionally add a 2-letter State. - Switch on the payment categories you need (general, research, ownership interests) and set a per-provider cap for each.
- Click Start, then download the dataset as CSV, Excel, JSON or XML, or read it through the API.
โ๏ธ Input
| Field | Type | Default | Notes |
|---|---|---|---|
providerName | string | none | First and last name; a single word is treated as a last name |
organizationName | string | none | Facility or organization name; set this or providerName |
state | string | none | 2-letter U.S. state code |
maxItems | integer | 10 | Provider rows to return (free plan: 10) |
includeGeneralPayments | boolean | false | Adds generalPayments to each row |
maxGeneralPayments | integer | 50 | Per provider, up to 5000 |
includeResearchPayments | boolean | false | Adds researchPayments |
maxResearchPayments | integer | 50 | Per provider, up to 5000 |
includeOwnershipInterests | boolean | false | Adds ownershipInterests |
maxOwnershipInterests | integer | 20 | Per provider, up to 1000 |
Example input:
{"providerName": "John Smith","maxItems": 10,"includeGeneralPayments": true,"maxGeneralPayments": 3}
๐ฆ Output
One dataset row per matched NPI record. The dataset has an Overview view (name, NPI, credential, status) and a full view with every nested payment. The run ends with a status message: how many providers were delivered, "No providers matched this search (nothing charged)", or "Stopped at your max charge limit".
โ๏ธ Healthcare provider payments scraper vs alternatives
Prices below were read from the public Apify Store listings on 2026-10-03 (Free tier, per result).
| Actor type | Typical price per 1,000 | What you get |
|---|---|---|
| NPI-only scrapers (several) | $2.00 | NPI profile only |
| Open Payments-only scrapers (several) | $0.90 to $50.00 | Payments only, usually one query at a time |
| This Actor | $10.00 provider, $15.00 to $20.00 per payment record | NPI profile and all three payment categories matched in one run, all program years |
If you only need NPI profiles, a $2 per 1,000 NPI-only scraper is cheaper and is the better choice. The extra price here buys the match: one run joins identity to payments across seven program years, which otherwise means running two Actors and joining by NPI yourself.
๐ฏ Use cases
- Compliance and conflict-of-interest review: check a provider's industry payment history before a partnership, hire or committee appointment.
- Pharma and medtech intelligence: see which providers a competitor pays and in which categories.
- Investment due diligence: screen a physician's ownership stakes in device and drug companies.
- Journalism and research: cross-reference public statements with reported payments.
๐ Run it by API, schedule it, connect it
Call the Actor from any language with the Apify API or client libraries:
curl -X POST "https://api.apify.com/v2/acts/recordsdata~healthcare-provider-payments-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"providerName":"John Smith","maxItems":10,"includeGeneralPayments":true}'
Schedule runs after CMS publishes a new program year, push results to Google Sheets, Make, Zapier, n8n or Airbyte, or call the Actor as a tool from an AI agent through the Apify MCP server.
๐ Is it legal to scrape the NPI Registry and Open Payments?
Both sources are public U.S. government datasets published for transparency and require no login. The Actor reads their public APIs only. You are responsible for how you use the data, including applicable privacy and marketing rules in your jurisdiction. This is an independent tool, not affiliated with CMS, HHS or NPPES.
โ Frequently asked questions
Do I need an API key for NPPES or CMS Open Payments? No. Both are public and need no registration.
Why did my run return 0 results? The search matched no NPI record. Try a more exact name, remove the state filter, or search by organization. A search with no matches finishes successfully and charges nothing.
Why did my run fail? It fails with a clear message, and charges nothing, when no name is given, the state is not a 2-letter code, or the NPI Registry or the Open Payments catalog cannot be reached.
Why is researchPayments or ownershipInterests missing from a row? The key is left out when the provider has no such records in any program year. In a real run of 10 providers named John Smith, none had research payments or ownership interests, and 4 of 10 had general payments.
How far back do payments go? Every program year CMS lists in its public catalog: 2019 to 2025 at the time of writing.
How fresh is the data? As fresh as NPPES and Open Payments themselves. NPPES updates frequently; Open Payments publishes once per program year.
Can I search by NPI number? Not in this version. Search by provider name, organization name and state.
Does it match research payments where the doctor is only the principal investigator? Only payments where the provider is the covered recipient are matched.
How long does a run take? A real run of 10 providers with general, research and ownership checks across all seven years took about 292 seconds. Without payments, a run takes seconds.
๐ Want more public-record data? Other PunkRecordsData scrapers
- Clinical Trials Scraper for ClinicalTrials.gov studies.
- FDA Drug Safety Scraper for drug safety and adverse event data.
- Federal Contracts Spending Scraper for federal award data.
๐ Support
Open an issue on the Actor's Issues tab or write to contact.punkrecordsdata@gmail.com.
Last updated: 2026-10-03