Home / Developers / Pay vs Performance API
API reference

Pay vs Performance API

The pay versus performance table from a company's proxy statement, read from its XBRL: compensation actually paid to the CEO and other named officers next to shareholder return, peer return, net income and the company's chosen measure, year by year. Also returns the insider trading policy and award timing disclosures. Product overview →

Endpoints

/v1/pay-vs-performance

GEThttps://secfeedapi.com/v1/pay-vs-performance

Pay versus performance by fiscal year (PEO and other NEO pay, compensation actually paid, TSR, net income, company-selected measure) plus insider-trading-policy and award-timing disclosures.

ParameterTypeDescriptionExample
tickerstringCompany ticker. Use either ticker or cik.NVDA
cikstringCompany CIK. Takes precedence over ticker.1045810
accessionNostringA specific DEF 14A accession number. Defaults to the latest DEF 14A.0001045810-26-000036

Request examples

Every response below is real output from the API, trimmed to the first records.

NVIDIA's latest pay versus performance table

Five fiscal years with summary compensation, compensation actually paid and return figures.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=NVDA"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/pay-vs-performance",
    params={'ticker': 'NVDA'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 1045810,
  "accessionNo": "0001045810-26-000036",
  "peoName": "Jen-Hsun Huang",
  "companySelectedMeasureName": "Non-GAAP Operating Income",
  "measures": [
    "3-Year TSR relative to the S&P 500",
    "Non-GAAP Operating Income"
  ],
  "years": [
    {
      "fiscalYearEnd": "2026-01-25",
      "peoSummaryCompTotal": 36343830.0,
      "peoCompActuallyPaid": 162180936.0,
      "otherNeoAvgSummaryCompTotal": 14422317.0,
      "otherNeoAvgCompActuallyPaid": 57721552.0,
      "totalShareholderReturn": 1445.67,
      "peerGroupTotalShareholderReturn": 198.1,
      "netIncome": 120067000000.0,
      "companySelectedMeasure": 137300000000.0
    },
    {
      "fiscalYearEnd": "2025-01-26",
      "peoSummaryCompTotal": 49866251.0,
      "peoCompActuallyPaid": 344188027.0,
      "otherNeoAvgSummaryCompTotal": 20343288.0,
      "otherNeoAvgCompActuallyPaid": 125583913.0,
      "totalShareholderReturn": 1100.69,
      "peerGroupTotalShareholderReturn": 168.46,
      "netIncome": 72880000000.0,
      "companySelectedMeasure": 86789000000.0
    }
  ],
  "governance": {
    "insiderTradingPoliciesAdopted": "true",
    "mnpiDisclosureTimedForCompensation": "false",
    "awardTimingDisclosure": "Equity Grant Timing Practices The CC approves all equity award grants to our executive officers on or before the grant date. Typically, the CC completes its annual executive compensation review, sets performance goals and target compensation, and grants equity awards in March . T..."
  }
}

Apple by CIK

cik works the same way as ticker.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?cik=320193"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/pay-vs-performance",
    params={'cik': '320193'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 320193,
  "accessionNo": "0001308179-26-000008",
  "peoName": "Mr. Cook",
  "companySelectedMeasureName": "Net Sales",
  "measures": [
    "Net Sales",
    "Operating Income"
  ],
  "years": [
    {
      "fiscalYearEnd": "2025-09-27",
      "peoSummaryCompTotal": 74294811.0,
      "peoCompActuallyPaid": 108423733.0,
      "otherNeoAvgSummaryCompTotal": 23812358.0,
      "otherNeoAvgCompActuallyPaid": 34125743.0,
      "totalShareholderReturn": 233.88,
      "peerGroupTotalShareholderReturn": 279.51,
      "netIncome": 112010000000.0,
      "companySelectedMeasure": 416161000000.0
    },
    {
      "fiscalYearEnd": "2024-09-28",
      "peoSummaryCompTotal": 74609802.0,
      "peoCompActuallyPaid": 168980568.0,
      "otherNeoAvgSummaryCompTotal": 27178896.0,
      "otherNeoAvgCompActuallyPaid": 58633525.0,
      "totalShareholderReturn": 207.59,
      "peerGroupTotalShareholderReturn": 206.32,
      "netIncome": 93736000000.0,
      "companySelectedMeasure": 391035000000.0
    }
  ],
  "governance": {
    "insiderTradingPoliciesAdopted": "true",
    "mnpiDisclosureTimedForCompensation": "false",
    "awardTimingDisclosure": "Equity awards are discretionary and are generally granted to our named executive officers on the first day of the applicable fiscal year . In certain circumstances, including the hiring or promotion of an officer, the People and Compensation Committee may approve grants to be eff..."
  }
}

Microsoft

Check companySelectedMeasureName for the metric the board chose.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=MSFT"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/pay-vs-performance",
    params={'ticker': 'MSFT'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 789019,
  "accessionNo": "0001193125-25-245150",
  "peoName": null,
  "companySelectedMeasureName": "Microsoft Incentive Plan Revenue",
  "measures": [
    "Azure and Other Cloud Services Revenue",
    "Microsoft Cloud Revenue, excluding Azure and Other Cloud Services"
  ],
  "years": [
    {
      "fiscalYearEnd": "2025-06-30",
      "peoSummaryCompTotal": 96496790.0,
      "peoCompActuallyPaid": 131138799.0,
      "otherNeoAvgSummaryCompTotal": 24456053.0,
      "otherNeoAvgCompActuallyPaid": 31268315.0,
      "totalShareholderReturn": 255.0,
      "peerGroupTotalShareholderReturn": 276.0,
      "netIncome": 101832000000.0,
      "companySelectedMeasure": 289180000000.0
    },
    {
      "fiscalYearEnd": "2024-06-30",
      "peoSummaryCompTotal": 79106183.0,
      "peoCompActuallyPaid": 171304590.0,
      "otherNeoAvgSummaryCompTotal": 21081007.0,
      "otherNeoAvgCompActuallyPaid": 40171628.0,
      "totalShareholderReturn": 227.0,
      "peerGroupTotalShareholderReturn": 243.0,
      "netIncome": 88136000000.0,
      "companySelectedMeasure": 246120000000.0
    }
  ],
  "governance": {
    "insiderTradingPoliciesAdopted": "true",
    "mnpiDisclosureTimedForCompensation": null,
    "awardTimingDisclosure": null
  }
}

Response fields

FieldTypeMeaning
cikintegerCompany CIK.
accessionNostringProxy statement the data comes from.
peoNamestringPrincipal executive officer named in the table.
companySelectedMeasureNamestringName of the financial measure the company picked.
measures[]arrayMost important performance measures listed by the company.
years[]arrayOne object per fiscal year, newest first.
years[].fiscalYearEndstringFiscal year end date.
years[].peoSummaryCompTotalnumberCEO total from the Summary Compensation Table.
years[].peoCompActuallyPaidnumberCEO compensation actually paid.
years[].otherNeoAvgSummaryCompTotalnumberAverage summary compensation of the other named officers.
years[].otherNeoAvgCompActuallyPaidnumberAverage compensation actually paid to the other named officers.
years[].totalShareholderReturnnumberValue of a $100 investment in the company.
years[].peerGroupTotalShareholderReturnnumberValue of a $100 investment in the peer group.
years[].netIncomenumberNet income for the year.
years[].companySelectedMeasurenumberValue of the company selected measure.
governance.insiderTradingPoliciesAdoptedstringWhether the company says it adopted insider trading policies.
governance.mnpiDisclosureTimedForCompensationstringWhether disclosure of material nonpublic information was timed for compensation.
governance.awardTimingDisclosurestringText on option award timing, up to 4,000 characters.

How to

How do I compare CEO pay to shareholder return?

Read peoCompActuallyPaid next to totalShareholderReturn for each year.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=NVDA"
How do I get an older proxy's table?

Pass that proxy's accessionNo.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=NVDA&accessionNo=0001045810-26-000036"
How do I find the proxy accession numbers?

Search DEF 14A filings with the Filing Query API.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/filings?query=ticker:NVDA%20AND%20formType:%22DEF%2014A%22&size=5"
How do I see which metric the board chose?

Read companySelectedMeasureName and measures.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=MSFT"
How do I compare several companies?

Call the endpoint once per ticker and line up the years.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=AAPL"
Does it include the insider trading policy disclosure?

Yes, in governance.insiderTradingPoliciesAdopted.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?cik=320193"
Why are some years missing values?

Values come from the XBRL the company filed; if a fact is not tagged it is left out.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/pay-vs-performance?ticker=AAPL"
How do I get the full Summary Compensation Table?

Use the Executive Pay API for the same company.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=NVDA"

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →