Open Payments Scraper: CMS Pharma Payments to Doctors avatar

Open Payments Scraper: CMS Pharma Payments to Doctors

Pricing

from $6.00 / 1,000 payment records

Go to Apify Store
Open Payments Scraper: CMS Pharma Payments to Doctors

Open Payments Scraper: CMS Pharma Payments to Doctors

Search the public CMS Open Payments data for payments and gifts from drug and device makers to doctors. Filter by year, state, doctor, NPI, manufacturer, payment type and amount. No login, no proxy.

Pricing

from $6.00 / 1,000 payment records

Rating

0.0

(0)

Developer

Detroit Web Agent - Open Data

Detroit Web Agent - Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

Search the public CMS Open Payments data and get clean rows: which drug or device maker paid which doctor, how much, when, for what, and for which product. You pick the year and any filters. The actor reads the official CMS open-data portal, so there is no login, no proxy and no API key.

What does this Actor do?

Under the US Sunshine Act, drug and medical device companies must report payments and gifts to doctors (meals, travel, consulting fees, speaker fees, research and more). CMS publishes them each year as the Open Payments program. The raw files hold millions of rows with 90+ columns. This actor queries the General Payment Data file for the year you choose, applies your filters, and returns a small, tidy row per payment.

Who it is for: journalists, compliance teams, researchers, healthcare sales and market-intelligence teams, and anyone who wants to check a doctor or a manufacturer without downloading a multi-gigabyte file.

Run in 30 seconds

  1. Open the Actor and press Try for free (a free Apify account is enough).
  2. Keep the prefilled input (2024, Michigan, payments of at least 100 USD) and press Start.
  3. Open the Output tab. Use the table view or download CSV, Excel or JSON.

Input

FieldWhat it does
programYearReporting year of the CMS file, 2019 and later. Default 2024.
stateTwo-letter state of the doctor's primary address, for example MI.
recipientLastName, recipientFirstNameExact doctor name, any case.
npi10-digit National Provider Identifier. The most reliable way to find one doctor.
manufacturerContainsPart of the paying company's name, for example Pfizer.
natureOfPaymentKeep payments whose type contains one of these words, for example Consulting, Food, Travel.
minAmountUsdKeep payments of at least this many US dollars.
maxItemsStop after this many payments.

Sample input:

{
"programYear": 2024,
"state": "MI",
"manufacturerContains": "Medtronic",
"natureOfPayment": ["Consulting", "Speaker"],
"minAmountUsd": 500,
"maxItems": 100
}

Only physicians are returned. Teaching hospitals and the research and ownership files are not included in this version.

Output

One row per payment record:

FieldMeaning
recordId, programYearThe CMS record number and the reporting year.
paymentDateDate of payment, ISO format.
recipientName, recipientNpi, recipientSpecialtyThe doctor, as reported.
recipientCity, recipientStatePrimary business address city and state.
manufacturerName, manufacturerStateThe company that made the payment.
totalAmountUsd, paymentCountTotal in US dollars and how many payments it covers.
natureOfPayment, formOfPaymentFor example Food and Beverage, paid as cash or in kind.
productName, productCategoryThe related drug or device, when reported.
contextualInfo, disputedFree text from the company, and whether the record is under dispute.
profileUrl, sourceUrl, scrapedAtLink to the doctor's CMS profile, the CMS dataset, and run time.

Sample output

{
"recordId": "1076213626",
"programYear": 2024,
"paymentDate": "2024-10-23",
"recipientName": "TIMOTHY DAVID LOGAN",
"recipientNpi": "1477763779",
"recipientSpecialty": "Cardiovascular Disease",
"recipientCity": "SAINT CLAIR SHORES",
"recipientState": "MI",
"manufacturerName": "Penumbra, Inc.",
"totalAmountUsd": 128.65,
"natureOfPayment": "Food and Beverage",
"productName": "Indigo System",
"disputed": false
}

Use cases

  • Check which manufacturers paid a specific doctor, by NPI, before a story, a hire or a referral decision.
  • Track one company's payments by state or specialty each year, for compliance review or market research.
  • Build a weekly sheet or n8n workflow that flags new large payments above a dollar threshold.
  • Compare payment types (food, travel, consulting) across states to see where industry money goes.
  • Enrich a physician list with payment totals for healthcare sales and account planning.

Why use it

  • Official public source. Rows come straight from the CMS Open Payments portal, with the record ID so you can verify each one.
  • Filters done for you. State, name, NPI, company, payment type and amount, without writing queries.
  • Clean fields. Dates in ISO format, amounts as numbers, specialty trimmed to its last level.
  • Public registry data only. No login, no proxy, nothing behind a paywall.

Pricing

Pay per event. You pay a small fixed amount per payment record delivered, listed on the Pricing tab, plus a tiny start fee per run. Records removed by your filters are never charged. Set a maximum cost per run in the run options to cap spend.

FAQ

Is this Medicare billing data? No. These are payments that drug and device manufacturers reported to CMS under the Sunshine Act. The program is run by the Medicare agency, but the rows are not claims or reimbursements.

Does a payment mean wrongdoing? No. Most records are meals, travel or lawful consulting and speaking fees. Read the payment type and context, and do not infer motive.

How current is the data? It follows the CMS publication schedule. A year is published after the reporting period, and CMS refreshes it when companies correct records.

Why did my name search return the wrong person? Names are not unique. Add the NPI, the state or the first name to narrow it down.

Can I get several years? Run the actor once per year. Each run reads one reporting year.

Limits

  • Data is as reported by manufacturers. Doctors can dispute records, shown in the disputed field.
  • A run scans up to 20,000 matching records. Narrow the filters to reach further.
  • The amount filter is applied after CMS returns the records, so a high minimum on a broad query can scan many records before enough match.
  • General payments to physicians only in this version.

Found a bug or need a field? Open an issue on the Issues tab with the run URL.

More from DWA Open Data

Browse all 69 data Actors, with live prices and sample output, at open-data-actors.pages.dev.


Feedback: if this Actor was useful, or if it fell short, an honest review on the Reviews tab helps other users decide. Problems or feature requests: please open an Issue and we usually reply within one business day.