Home › Funding, grants and compliance › Open Payments Scraper
Open Payments scraper for doctor payments: search the public CMS Open Payments data for pharma 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.
| Field | Name | Required | What it does |
|---|---|---|---|
programYear | Program year | no | Reporting year of the CMS General Payment Data file, for example 2024. Years 2019 and later are published. |
state | Doctor state | no | Two-letter US state of the doctor's primary address, for example MI. Leave empty for all states. |
recipientLastName | Doctor last name | no | Exact last name of the doctor, any case. Names are ambiguous, so add an NPI or state when you can. |
recipientFirstName | Doctor first name | no | Exact first name of the doctor, any case. |
npi | NPI number | no | 10-digit National Provider Identifier. The most reliable way to match one doctor. |
manufacturerContains | Manufacturer name contains | no | Part of the paying company's name, for example Pfizer or Medtronic. |
natureOfPayment | Payment type contains | no | Keep payments whose type contains one of these words, for example Consulting, Food, Travel, Gift, Speaker. Leave empty for all types. |
minAmountUsd | Minimum amount (USD) | no | Keep payments of at least this many US dollars. 0 = no minimum. |
maxItems | Max payments | no | Stop after this many payments. You pay only for payments delivered. |
One row per result. These are the 21 fields declared in the actor's dataset schema (field list from the schema, not a sample run).
| Field | Type | Meaning |
|---|---|---|
recordId | string | |
programYear | integer | |
paymentDate | string | |
recipientName | string | |
recipientNpi | string | |
recipientSpecialty | string | |
recipientCity | string | |
recipientState | string | |
manufacturerName | string | |
manufacturerState | string | |
totalAmountUsd | number | |
paymentCount | integer | |
natureOfPayment | string | |
formOfPayment | string | |
productName | string | |
productCategory | string | |
contextualInfo | string | |
disputed | boolean | |
profileUrl | string | |
sourceUrl | string | |
scrapedAt | string |
Public data only, no login. Fields a source does not publish come back empty rather than guessed. Coverage and freshness follow the underlying public source.
Pay on Apify, no subscription: $0.006 per payment record (pay per event). The live price is on the actor page.
Disclosure: we build and maintain this actor.