Regulatory & compliance
CMS Open Payments
The Sunshine Act database: every payment or transfer of value from drug and device manufacturers to US physicians, practitioners, and teaching hospitals — ~15M records per program year, 2019→present. Served as a LIVE passthrough to CMS's own API: total_count is CMS's authoritative number for your filtered query.
Endpoint
GET /v1/open-paymentsSourceCMS Open Payments (live passthrough)
Authx-api-key — a free key works
What it returns
Rows are CMS's fields verbatim; general / research / ownership payment types have different schemas (see the tool description). See the live example below for the full field set.
Filters
| year | Program year (e.g., 2023). Default: latest published year. |
| payment_type | Dataset: general (default — meals/consulting/speaker fees), research, or ownership (physician stakes). |
| company | Substring against the paying manufacturer / GPO name (e.g., 'pfizer', 'medtronic'). |
| recipient_last_name | Recipient physician / practitioner last name (exact, case-insensitive). |
| recipient_first_name | Recipient first name (exact, case-insensitive). |
| npi | Recipient National Provider Identifier (exact, 10 digits). Precise join key to get_oig_exclusions. |
| state | Two-letter recipient state code (e.g., 'TX'). |
| nature | Substring against nature of payment (general only; e.g., 'consulting', 'speaker', 'royalty', 'food'). |
| product | Substring against the associated drug / device name (general only; e.g., 'eliquis', 'ozempic'). |
| summarize | true = CMS's pre-aggregated per-(company, nature) yearly totals instead of individual payments. |
| limit | Records per page. Default 25, max 500 (CMS page cap). |
| offset | Pagination offset into the filtered result set. |
Example request
curl "https://api.keyvex.com/v1/open-payments?limit=1" \
-H "x-api-key: YOUR_KEY"
Response
{
"results": [
{
"record_id": "1049096105",
"covered_recipient_type": "Covered Recipient Physician",
"covered_recipient_first_name": "MARK",
"covered_recipient_last_name": "KAY",
"covered_recipient_npi": "",
"covered_recipient_specialty_1": "Allopathic & Osteopathic Physicians|Pediatrics",
"teaching_hospital_name": "",
"recipient_city": "STANFORD",
"recipient_state": "CA",
"applicable_manufacturer_or_applicable_gpo_making_payment_name": "PFIZER INC.",
"total_amount_of_payment_usdollars": "12800.00",
"date_of_payment": "02/10/2023",
"number_of_payments_included_in_total_amount": "1",
"form_of_payment_or_transfer_of_value": "Cash or cash equivalent",
"nature_of_payment_or_transfer_of_value": "Consulting Fee",
"name_of_drug_or_biological_or_device_or_medical_supply_1": "",
"product_category_or_therapeutic_area_1": "",
"contextual_information": ""
}
],
"count": 1,
"has_more": true,
"total_count": 5365
}
Example questions you can answer
- A manufacturer's physician-payment footprint by nature of payment.
- Payments tied to a specific drug or device.
- Industry funding of research, with ClinicalTrials.gov IDs.
- Cross-check a paid physician against OIG exclusions by NPI.
Related datasets
Query CMS Open Payments from your AI
Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. Free key = full data, 60 requests/day.
Get a free key OpenAPI spec → REST docs →