CMS Open Payments Lookup + NPI Enrichment (Sunshine Act)
Pricing
from $30.00 / 1,000 payment matcheds
CMS Open Payments Lookup + NPI Enrichment (Sunshine Act)
Look up CMS Open Payments (Sunshine Act) records with optional NPI enrichment (taxonomy code only). Annual CMS data — use as lookup/audit, not a daily monitor.
Pricing
from $30.00 / 1,000 payment matcheds
Rating
0.0
(0)
Developer
Chase Mariano
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
One event per payment record from CMS Open Payments, the Sunshine Act database of payments from drug and device makers to physicians, other practitioners and teaching hospitals. Filter by manufacturer, recipient NPI list, state, specialty, program year and minimum amount. Each record is joined to the NPPES NPI registry, so you get the recipient's current taxonomy code, practice address and phone next to what the manufacturer reported. It's built for compliance audits, conflict-of-interest reviews, litigation research and KOL mapping. It's a lookup, not a data dump.
Pricing: pay per event. payment-matched: $0.03 per payment record
returned. Zero matches costs you nothing.
Input
{"dataset": "general", "manufacturer": "medtronic", "state": "CA","min_amount": 1000, "limit": 200}
Give at least one of manufacturer, npis, state or specialty.
Leave program_year empty for the latest published year. Set
dataset to research for research payments; those records carry the
study name and ClinicalTrials.gov ID.
Example output (one dataset item per payment)
{"dataset": "general", "program_year": 2025, "record_id": "1212037411","change_type": "NEW", "payment_date": "2025-06-27", "amount_usd": 36.0,"number_of_payments": 1, "nature_of_payment": "Education","form_of_payment": "In-kind items and services","manufacturer": "Medtronic, Inc.", "manufacturer_id": "100000000106","recipient_type": "Covered Recipient Non-Physician Practitioner","recipient_npi": "1528536174", "recipient_name": "BRIANA GWALTNEY","recipient_specialty": "Physician Assistants & Advanced Practice Nursing Providers|Nurse Practitioner|Family","recipient_city": "Brattleboro", "recipient_state": "VT", "recipient_zip": "05301","products": ["INTERSTIM"], "study_name": null, "clinicaltrials_gov_id": null,"dispute_status": "No", "publication_date": "2026-06-30","npi_status": "A","npi_taxonomy_code": "363LF0000X", "npi_address": "100 WASON AVE STE 120","npi_city": "SPRINGFIELD", "npi_state": "MA", "npi_zip": "01107","npi_phone": "413-241-2100"}
In that record the payment was reported in Vermont, but NPPES shows the provider now practicing in Massachusetts. That gap is what the join is for.
Output fields
One dataset item per result. Every field is always present (empty or null
when the source has no value). The fields are defined in
.actor/dataset_schema.json.
| Field | Type | Description |
|---|---|---|
dataset | string | general or research payments |
program_year | integer | Open Payments program year |
record_id | string | CMS Open Payments record ID |
change_type | string | CMS change type (NEW, CHANGED, UNCHANGED, ADDED) |
payment_date | string | Date of payment, YYYY-MM-DD |
amount_usd | number | Total amount of payment, USD |
number_of_payments | integer | Number of payments in the total (general only) |
nature_of_payment | string | Nature of payment, e.g. Food and Beverage, Consulting Fee (general only) |
form_of_payment | string | Form of payment or transfer of value |
manufacturer | string | Applicable manufacturer or GPO making the payment |
manufacturer_id | string | CMS ID of the manufacturer or GPO |
recipient_type | string | Covered recipient type (physician, NPP, teaching hospital) |
recipient_npi | string | Covered recipient NPI (research: principal investigator 1 when blank) |
recipient_name | string | Recipient name as reported to CMS |
recipient_specialty | string | Primary specialty string as published by CMS Open Payments (source: CMS; not edited) |
recipient_city | string | Recipient city as reported to CMS |
recipient_state | string | Recipient state as reported to CMS |
recipient_zip | string | Recipient ZIP (5 digits) |
products | array | Related drugs, biologicals, devices or supplies (up to 5) |
study_name | string | Research study name (research only, max 500 chars) |
clinicaltrials_gov_id | string | ClinicalTrials.gov identifier (research only) |
dispute_status | string | Whether the record is disputed for publication |
publication_date | string | CMS publication date, YYYY-MM-DD |
npi_status | string | NPPES: enumeration status (A = active) |
npi_taxonomy_code | string | NPPES: primary taxonomy code |
The NPPES join outputs the taxonomy code only. Code descriptions come
from the NUCC Health Care Provider Taxonomy code set, which NUCC licenses for
commercial use, so this Actor doesn't output them. recipient_specialty is
the specialty string exactly as CMS publishes it in Open Payments, credited to
CMS.
| npi_address | string | NPPES: practice location address |
| npi_city | string | NPPES: practice location city |
| npi_state | string | NPPES: practice location state |
| npi_zip | string | NPPES: practice location ZIP (5 digits) |
| npi_phone | string | NPPES: practice location phone |
Runs stop cleanly at your max-charge limit, so nothing is pushed past
what you agreed to pay for. If an NPI isn't in NPPES, its npi_* fields
are empty and the payment is still returned. If CMS renames a column the
run fails loudly (schema: in the status message) rather than
returning half-empty records.
About the data
CMS publishes each program year's data by June 30 of the following year
and refreshes it in January. Payments are what reporting manufacturers
and GPOs attested to. In CMS's words: "CMS does not comment on what
relationships may be beneficial or potential conflicts of interest. CMS
publishes the data attested to by reporting entities. The data is open
to individual interpretation." A payment record doesn't by itself show an
improper relationship. Check dispute_status before relying on a record.
Need provider records without payments? Try NPI Provider Lookup & Enrichment.
Source: CMS Open Payments datastore API (public, U.S. government work) and the CMS NPPES NPI Registry API v2.1 (public).