CMS Open Payments Scraper - Pharma Payments & Doctor Leads
Pricing
from $2.20 / 1,000 payment records
CMS Open Payments Scraper - Pharma Payments & Doctor Leads
Scrape CMS Open Payments (Sunshine Act): pharma & device payments to physicians & teaching hospitals. Detailed transactions plus per-physician, per-manufacturer & per-hospital rollups with KOL & lead scores. Filter by state, specialty, NPI, company, year. Keyless US-gov API, no browser, monitoring.
Pricing
from $2.20 / 1,000 payment records
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
CMS Open Payments Scraper — Pharma-to-Physician Payments, KOLs & Leads
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Centers for Medicare & Medicaid Services (CMS) or any government body. All trademarks mentioned are the property of their respective owners. "CMS Open Payments" is referenced only to describe the public data source this Actor collects from.
Extract the entire CMS Open Payments (Sunshine Act) database — every disclosed payment or transfer of value from drug & medical-device manufacturers and GPOs to physicians, NPs/PAs and teaching hospitals. Pull detailed transactions, or roll them up into per-physician, per-manufacturer and per-hospital intelligence profiles with totals, top relationships, payment-nature breakdowns, and KOL & lead scores.
No login, no API key, no browser — a fast, consistent read of the official US-government data, filterable by state, specialty, NPI, manufacturer, payment type, drug/device, amount and year, with built-in monitoring for only-new records.
Why this Open Payments scraper?
Most tools dump raw payment rows and leave you to do the analysis. This actor ships the richest dataset in the category and does the aggregation for you — so a single run gives you a ready-to-use list of the top-paid physicians in a specialty + state, or everything a competitor pays the field, complete with contact-grade detail (name, NPI, specialty, full practice address).
| Data | Generic exporters | This actor |
|---|---|---|
| Detailed payment rows (amount, date, nature, form) | ✅ | ✅ |
| Recipient name, NPI, specialty, full address | partial | ✅ |
| Associated drug / device + therapeutic area + NDC | ❌ | ✅ |
| General + research (PI + study) + ownership books | partial | ✅ |
| Per-physician rollup: total $, #transactions, top payers, nature mix | ❌ | ✅ |
| KOL tier + lead score (engagement-weighted) | ❌ | ✅ |
| Per-manufacturer intelligence: spend, reach, top recipients & products | ❌ | ✅ |
| Per-teaching-hospital rollup | ❌ | ✅ |
| NUCC taxonomy enrichment | ❌ | ✅ |
| Multi-year totals (2018–2024) in one record | ❌ | ✅ |
| Monitoring — only new records | ❌ | ✅ |
Use cases
- Pharma & medical-device sales intelligence — find the physicians a competitor already pays (by manufacturer + specialty + state), ranked by spend. Every record carries NPI, specialty and practice address — warm, in-market targets.
- KOL / key-opinion-leader identification — surface the top-paid physicians in any therapeutic area, with their dominant payers, products and engagement mix (consulting vs speaking vs research).
- Compliance, transparency & spend monitoring — track a manufacturer's transfers of value, or a physician's industry relationships, and re-run on a schedule to catch newly published disclosures.
- Healthcare lead generation — build targeted physician lists (specialty + geography) enriched with industry-engagement signals and lead scores, ready for your CRM.
- Investigative journalism & academic research — quantify financial relationships between industry and medicine, by drug, company, hospital, or region.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the CMS Open Payments Scraper, choose a Mode (Payments, Physicians, Manufacturers or Teaching hospitals), and set your filters (e.g.
state: TX,specialty: Dermatology,manufacturer: AbbVie,years: ["2023"]). - Click Start and watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"mode": "physicians","years": ["2023"],"paymentTypes": ["general"],"state": "TX","specialty": "Dermatology","sortBy": "amount","scanLimit": 20000,"maxResults": 500,"includeProfileEnrichment": true}
- mode (default
payments) —payments(detailed transactions),physicians(per-physician profiles with KOL & lead score),manufacturers(per-company intelligence),teachingHospitals(per-hospital rollups). - years (default
["2023"]) — one or more program years, 2018–2024. Combine years to total a physician's or company's payments over time. - paymentTypes (default
["general"]) —general(meals, travel, consulting, speaking, gifts),research(carries principal investigator + study name),ownership(physician ownership interests). - state / specialty / physicianNpi / physicianFirstName / physicianLastName — recipient filters.
- manufacturer / natureOfPayment / drugOrDevice / minAmount / maxAmount — payer & payment filters.
- sortBy (default
amount) — order the scanned window by largest amount, most recent date, or none (fastest). - maxResults (default 1000) — records emitted this run.
- scanLimit (default 20000) — rows scanned per year/book before rolling up (aggregation modes). Totals are exact when your filter matches fewer rows than this; widen
scanLimitor tighten filters for big queries. - includeProfileEnrichment (default true) — add NUCC taxonomy + fallback address from the CMS profile supplement (physicians mode).
- monitorMode / monitorStoreName — emit only records not seen in previous runs.
- proxyConfiguration — optional; the API is a clean keyless US-gov endpoint that serves the Apify platform directly, so a proxy is not required (the actor retries and rides out occasional server blips on its own).
Output
Each mode returns one clean, dense table. A physician profile (recordType: "physician"):
{"recordType": "physician","recipientProfileId": "6301","recipientNpi": "1124079306","name": "EDWARD LAIN","primaryType": "Medical Doctor","specialty": "Dermatology","licenseStates": ["TX"],"city": "AUSTIN", "state": "TX", "zip": "78732-1815","address": "5145 FM 620 N STE B-110, AUSTIN, TX, 78732-1815","totalAmountUsd": 56629.55,"transactionCount": 24,"uniqueManufacturers": 12,"topManufacturer": { "name": "Galderma Laboratories, L.P.", "amountUsd": 35196.5, "count": 6 },"topProducts": [{ "name": "AKLIEF", "therapeuticArea": "ACNE", "amountUsd": 18196.5, "count": 4 }],"natureBreakdown": {"consulting_fee": { "count": 9, "amountUsd": 53301.5 },"food_beverage": { "count": 12, "amountUsd": 648.15 },"travel_lodging": { "count": 3, "amountUsd": 2679.9 }},"largestPayment": 9000, "avgPayment": 2359.56,"firstPaymentDate": "01/25/2023", "lastPaymentDate": "12/18/2023","taxonomyCodes": ["207N00000X"],"kolTier": "High", "leadScore": 100,"scrapedAt": "2026-06-16T06:17:17.953Z"}
A payment record (mode: payments) carries the recipient, paying manufacturer/GPO, amountUsd, dateOfPayment, natureOfPayment (+ a normalized natureCategory), formOfPayment, the associated products (drug/device, therapeutic area, NDC), and research/ownership context. A manufacturer record carries totalAmountUsd, uniquePhysicians, uniqueTeachingHospitals, topRecipients, topProducts, topSpecialties and the natureBreakdown. A teachingHospital record rolls payments up per hospital with its top manufacturers.
What to expect (field coverage)
Open Payments is manufacturer-reported, so a few fields are populated only when the reporter included them.
| Field group | Coverage |
|---|---|
| Recipient name, NPI, specialty, state | ~100% for physician recipients |
| Practice address (street, city, zip) | ~95%+ |
| Amount, date, nature, form of payment | ~100% |
| Associated drug/device + therapeutic area | present when the payment relates to a product |
| Research: principal investigator + study | research payments only |
| Taxonomy codes (enrichment) | when the recipient is in the CMS profile supplement |
A blank field means the manufacturer didn't report it — never that scraping failed. Nothing is dropped, so you always get the richest record available.
How much does it cost to scrape CMS Open Payments?
This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:
- Payment record - One detailed CMS Open Payments transaction: recipient (name, NPI, specialty, address), paying manufacturer/GPO, amount, date, nature & form of payment, and associated drug/device products.
- Intelligence profile - One aggregated physician, manufacturer or teaching-hospital rollup: total payments, transaction & payment counts, payer/recipient breakdowns, top products & specialties, nature-of-payment mix, and KOL / lead score.
The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily/weekly with monitoring mode on to capture newly published payments or track a manufacturer/physician for new disclosures.
- Webhooks — trigger downstream actions (CRM import, Slack alert, data-warehouse load) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/open-payments-scraper').call({mode: 'physicians',years: ['2023'],state: 'TX',specialty: 'Dermatology',maxResults: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} physician profiles`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new physician leads straight into your CRM.
- Slack — get notified when a monitored manufacturer or physician has new disclosures.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "list the top 50 dermatologists in Texas by industry payments, with their biggest payers" and let it run the scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete healthcare & B2B intelligence stack — pair industry-payment data with provider directories and government records:
- Healthgrades Scraper — doctors, reviews, and provider contact leads.
- WebMD Scraper — doctors, specialties, insurance, and reviews.
- TherapyDen Scraper — therapists and mental-health provider leads.
- FINRA Financial Advisor Scraper — advisers & firms from BrokerCheck / IAPD.
- SEC EDGAR Scraper — filings, financials & companies.
- USAspending Scraper — federal awards, contractors & leads.
- FEC Campaign Finance Scraper — donors, committees & lobbying.
- FMCSA Trucking Scraper — motor carriers, authority & leads.
Tips
- Pick a mode that matches the question. Want a target list of doctors? Use Physicians. Want to size up a competitor's spend? Use Manufacturers. Want every raw transaction? Use Payments.
- Exact totals vs. fast samples. In aggregation modes, totals are exact when your filter matches fewer rows than
scanLimit. For a whole specialty nationwide, raisescanLimitor split the run by state. - Find KOLs fast — Physicians mode, set
specialty+state, sort by amount, and read off thekolTier/leadScoreandtopManufacturers. - Competitive intel — Manufacturers mode with
manufacturer: "<competitor>"returns their total spend, physician reach, andtopRecipientsyou can pursue. - Recurring monitoring — turn on monitorMode and add a Schedule to capture newly published records without re-emitting old ones.
FAQ
What is Open Payments / the Sunshine Act? A US federal program (run by CMS) that requires drug and medical-device manufacturers and GPOs to report payments and transfers of value to physicians, certain non-physician practitioners, and teaching hospitals. This actor reads the official published data.
Does it need an API key or login? No. The CMS Open Payments data API is public and keyless — no browser, no proxy required. The actor retries and rides out occasional server blips automatically.
Which years are available? Program years 2018 through 2024 (the latest published). Select one or several.
How current is the data? It mirrors what CMS has published. CMS refreshes Open Payments annually (and occasionally re-publishes corrections) — run with monitoring mode on a schedule to pick up changes automatically.
Can I get a physician's full payment history? Yes — set physicianNpi and select multiple years; the physician rollup totals across them.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
Are emails included? Open Payments does not publish email addresses; the lead value is the verified name, NPI, specialty, practice address and the industry-engagement signal. Pair with the Healthgrades or WebMD scrapers to enrich providers further.
Is scraping this data legal? This actor collects publicly available US-government data. You're responsible for using it in compliance with applicable laws and CMS's terms.
Data & lawful use
The source is an official public register, published so that anyone can consult it. Records can name individuals (named physicians and the payments they received), so the output may contain personal data even though it is public. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis, honour access and deletion requests, and respect the register's own reuse conditions, which can restrict marketing or commercial use.
Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Centers for Medicare & Medicaid Services (CMS) or any government body. All trademarks mentioned are the property of their respective owners.
"CMS Open Payments" is referenced only in a descriptive, nominative sense - to identify the public data source this Actor collects from. This Actor is not an official product or service of the Centers for Medicare & Medicaid Services (CMS) and is not authorised or certified by it. It collects only publicly available records; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the source's own terms of use or reuse conditions.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.