CMS Open Payments Scraper - Physician Payments
Pricing
from $2.00 / 1,000 payment relationships
CMS Open Payments Scraper - Physician Payments
Scrape CMS Open Payments: which company paid which US physician, how much and in how many transactions. Filter by company, physician, NPI or recipient type, sorted by amount, which the source does not do. Sunshine Act data for compliance, sales and research.
Pricing
from $2.00 / 1,000 payment relationships
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
What does CMS Open Payments Scraper do?
Who paid which US physician, how much, and across how many transactions — from CMS Open Payments, the federal register of industry payments to doctors and teaching hospitals.
No login. No API key. No proxies.
Relationships, not 16 million receipts
CMS publishes every individual payment: 16 million rows for 2025 alone, one per dinner, per consulting fee, per royalty cheque. Nobody wants that.
What a compliance officer or a medtech sales lead wants is the relationship: Dr Sethi received $154,631.57 from Medtronic across 151 payments. This Actor serves exactly that — one row per physician-company pair, with the total and the transaction count.
| Recipient | Paid by | Total | Payments |
|---|---|---|---|
| UT MD ANDERSON CANCER CENTER | Pfizer Inc. | $22,374,153.36 | 469 |
| THE CHILDREN'S HOSPITAL OF PHILADELPHIA | Pfizer Inc. | $10,103,322.25 | 46 |
| NISHANT SETHI | Medtronic, Inc. | $154,631.57 | 151 |
The bug it fixes, and why it matters
CMS sorts amounts as text, not as numbers.
Ask the source for the highest payments and it stops at $99,999.96 — not
because that is the maximum, but because "171059.91" sorts below
"99999.96" when the first character decides. Measured on 13 September
2026: 42,417 relationships exceed six figures, and every one of them is
invisible to the source's own ranking.
The $22.4 million MD Anderson row above is precisely what that bug hides.
The same flaw breaks numeric filters: asking the source for totals above $100,000 returns 4,931,711 rows out of 4,953,301. So this Actor sorts and thresholds numerically, on its own side, and never sends a numeric comparison to the API.
If you need the largest payments — and for compliance screening that is the entire point — this distinction is the product.
Output
| Field | Example |
|---|---|
recipientName | NISHANT SETHI |
firstName, lastName | NISHANT, SETHI |
npi | 1003024811 — joins to the NPI Registry |
recipientType | Covered Recipient Physician |
teachingHospital | UT MD ANDERSON CANCER CENTER |
payerName, payerId | Medtronic, Inc. |
paymentType | General |
totalAmountUsd | 154631.57 |
transactionCount | 151 |
averagePaymentUsd | 1024.05 |
programYear, openPaymentsUrl | 2025, link to the CMS record |
averagePaymentUsd separates cases a total alone confuses: $40,000 in one
consulting fee and $40,000 across 300 meals are very different relationships.
Input
{"payerName": "Medtronic","programYear": "2025","maxItems": 1000}
| Field | Default | Notes |
|---|---|---|
payerName | Medtronic | Prefix match — the highest-value filter |
programYear | 2025 | 2019–2025, published ~6 months in arrears |
maxItems | 1000 | One row per relationship |
minTotalUsd | — | Applied numerically, after fetching |
lastName, npi | — | One physician |
recipientType | all | Physicians, practitioners, teaching hospitals |
Use cases
- Competitive intelligence — every physician a competitor pays is a physician using their products. Medtronic alone has 79,609 relationships in 2025.
- Compliance and conflict-of-interest screening — what did our clinicians receive, from whom, and how much.
- Medical affairs and KOL mapping — who the industry actually funds, ranked by real amounts.
- Due diligence and journalism — the payment trail behind a prescriber or an institution.
- Enrichment —
npijoins straight to the NPI Registry for specialty, address and practice locations.
Limits, honestly
- Wide queries are slow. Filtering 5 million relationships takes roughly
a minute per page at the source. A large manufacturer has tens of
thousands of rows; set
maxItemsdeliberately. maxItemstruncates before sorting. Rows are fetched in the source's own order, then sorted numerically. Asking for 1,000 out of 79,609 gives the top of those 1,000, not the national top 1,000. Narrow the filter, or raise the limit, when you need a true ranking.- Teaching hospitals carry no NPI in this dataset — the column is empty for them by design, not by omission.
- CMS restates data: figures for a year can change after publication.
- A payment is a payment. It is not evidence of wrongdoing, and this data says nothing about whether any relationship was improper.
- Requests are paced out of courtesy to a free public service.
- Not affiliated with CMS.
How much does it cost?
You pay per payment relationship returned: $0.003 each, that is $3.00 per 1,000. There is no start fee, and subscription plans pay less per payment relationship.
The example input below asks for up to 500 payment relationships, so it costs $1.50 at most.
If a run reaches the spending limit you set, the output stops at that limit and never goes past it. You are never charged for rows that were not delivered.
Use CMS Open Payments Scraper as an API
Call it from your own code with the Apify client, here in Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/cms-open-payments-physicians").call(run_input={'payerName': 'Medtronic','programYear': '2025','maxItems': 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.
Other actors you might like
- FDA 510(k) Scraper: Device Clearances Data
- FDA Recalls Scraper: openFDA Enforcement
- NPI Registry Scraper: US Healthcare Providers
FAQ
Is it legal to use this data?
The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.
Can I run it on a schedule?
Yes. Create a schedule in Apify Console, daily or weekly for example, and each run delivers a fresh dataset, which you can send by email, webhook or integration.
Can AI agents use it?
Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.