KeyVex
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.

EndpointGET /v1/open-payments
SourceCMS 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

yearProgram year (e.g., 2023). Default: latest published year.
payment_typeDataset: general (default — meals/consulting/speaker fees), research, or ownership (physician stakes).
companySubstring against the paying manufacturer / GPO name (e.g., 'pfizer', 'medtronic').
recipient_last_nameRecipient physician / practitioner last name (exact, case-insensitive).
recipient_first_nameRecipient first name (exact, case-insensitive).
npiRecipient National Provider Identifier (exact, 10 digits). Precise join key to get_oig_exclusions.
stateTwo-letter recipient state code (e.g., 'TX').
natureSubstring against nature of payment (general only; e.g., 'consulting', 'speaker', 'royalty', 'food').
productSubstring against the associated drug / device name (general only; e.g., 'eliquis', 'ozempic').
summarizetrue = CMS's pre-aggregated per-(company, nature) yearly totals instead of individual payments.
limitRecords per page. Default 25, max 500 (CMS page cap).
offsetPagination 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

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 →
← All 60+ datasets