Home / Developers / Executive Pay API
API reference

Executive Pay API

The Summary Compensation Table from a company's proxy statement (DEF 14A): pay by executive and year, split into salary, bonus, stock and option awards, incentive pay, pension changes, other compensation and total. Product overview →

Endpoints

/v1/executive-compensation

GEThttps://secfeedapi.com/v1/executive-compensation

Summary Compensation Table from the latest proxy: salary, bonus, awards, total by executive and year.

ParameterTypeDescriptionExample
tickerstringTicker. One of ticker or cik is required.MSFT
cikintegerCompany CIK.789019
accessionNostringA specific DEF 14A. Defaults to the latest one.0001193125-24-242883

Request examples

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

Latest proxy for Microsoft

Usually three fiscal years per executive. total is the table's own total column.

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

r = requests.get(
    "https://secfeedapi.com/v1/executive-compensation",
    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",
  "executives": [
    {
      "name": "Satya Nadella Chairman and Chief Executive Officer",
      "year": 2025,
      "salary": 2500000.0,
      "bonus": 0.0,
      "stockAwards": 84245496.0,
      "nonEquityIncentive": 9555000.0,
      "allOther": 196294.0,
      "total": 96496790.0
    },
    {
      "name": "Satya Nadella Chairman and Chief Executive Officer",
      "year": 2024,
      "salary": 2500000.0,
      "bonus": 0.0,
      "stockAwards": 71236392.0,
      "nonEquityIncentive": 5200000.0,
      "allOther": 169791.0,
      "total": 79106183.0
    }
  ]
}

An earlier proxy statement

Pass accessionNo to read a past year's table.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=MSFT&accessionNo=0001193125-24-242883"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/executive-compensation",
    params={'ticker': 'MSFT', 'accessionNo': '0001193125-24-242883'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 789019,
  "accessionNo": "0001193125-24-242883",
  "executives": [
    {
      "name": "Satya Nadella Chairman and Chief Executive Officer",
      "year": 2024,
      "salary": 2500000.0,
      "bonus": 0.0,
      "stockAwards": 71236392.0,
      "nonEquityIncentive": 5200000.0,
      "allOther": 169791.0,
      "total": 79106183.0
    },
    {
      "name": "Satya Nadella Chairman and Chief Executive Officer",
      "year": 2023,
      "salary": 2500000.0,
      "bonus": 0.0,
      "stockAwards": 39236137.0,
      "nonEquityIncentive": 6414750.0,
      "allOther": 361650.0,
      "total": 48512537.0
    }
  ]
}

NVIDIA

The same shape for any company whose proxy has a standard table.

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

r = requests.get(
    "https://secfeedapi.com/v1/executive-compensation",
    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",
  "executives": [
    {
      "name": "Jen-Hsun Huang",
      "year": 2026,
      "salary": 1497627.0,
      "stockAwards": 24800511.0,
      "nonEquityIncentive": 6000000.0,
      "allOther": 4045691.0,
      "total": 36343830.0
    },
    {
      "name": "Jen-Hsun Huang",
      "year": 2025,
      "salary": 1486199.0,
      "stockAwards": 38811306.0,
      "nonEquityIncentive": 6000000.0,
      "allOther": 3568746.0,
      "total": 49866251.0
    }
  ]
}

Response fields

FieldTypeMeaning
cikintegerCompany CIK.
accessionNostringThe DEF 14A the table came from.
executives[].namestringName and title as printed.
executives[].yearintegerFiscal year.
executives[].salarynumberBase salary.
executives[].bonusnumberDiscretionary bonus.
executives[].stockAwardsnumberGrant date value of stock awards.
executives[].optionAwardsnumberGrant date value of option awards, when the column exists.
executives[].nonEquityIncentivenumberNon-equity incentive plan pay.
executives[].pensionAndDeferrednumberChange in pension value and nonqualified deferred compensation, when present.
executives[].allOthernumberAll other compensation.
executives[].totalnumberTotal compensation.

How to

How do I look up a company by CIK?

Pass cik instead of ticker.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?cik=789019"
How do I get the CEO's pay over three years?

Filter executives by name; each year is a separate row.

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

Call the endpoint per ticker and compare total for the same year.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=AAPL"
How do I read an older proxy?

Find its accession with the filing search API (formType DEF 14A), then pass accessionNo.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=MSFT&accessionNo=0001193125-24-242883"
Why is optionAwards missing?

Many companies no longer grant options and drop the column.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=NVDA"
Where do the numbers come from?

The Summary Compensation Table in the DEF 14A; values are as printed, in dollars.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=MSFT"
What if a company has no standard table?

The API returns an error saying no Summary Compensation Table was found.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/executive-compensation?ticker=MSFT"
Does name include the title?

Yes, most tables print both; split on the title words if you need the name alone.

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

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →