Skip to main content

Compare Executive Compensation

Proxy statements (DEF 14A) contain detailed executive compensation tables. This tutorial shows how to retrieve structured compensation data and compare it across companies without manually reading proxy filings.

Prerequisites

  • An Omni Datastream API key (set as OMNI_DATASTREAM_API_KEY)
  • Basic familiarity with REST APIs
  • (Optional) Python 3.8+ or Node.js 18+ for SDK examples

Step 1 — Retrieve compensation for a single company

Use /v1/compensation to get the latest executive compensation data for a company.

curl

curl -H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
  "https://api.secapi.ai/v1/compensation?ticker=AAPL"

Python

from omni_datastream_py import OmniDatastreamClient

client = OmniDatastreamClient(api_key="your-api-key")

comp = client.compensation.get(ticker="AAPL")

for exec in comp.data:
    print(f"{exec.name} ({exec.title})")
    print(f"  Salary:       ${exec.salary:>14,.0f}")
    print(f"  Bonus:        ${exec.bonus:>14,.0f}")
    print(f"  Stock Awards: ${exec.stock_awards:>14,.0f}")
    print(f"  Total:        ${exec.total:>14,.0f}")
    print()

JavaScript

import { OmniDatastreamClient } from "@omni-datastream/sdk-js";

const client = new OmniDatastreamClient({
  apiKey: process.env.OMNI_DATASTREAM_API_KEY!,
});

const comp = await client.compensation.get({ ticker: "AAPL" });

for (const exec of comp.data) {
  console.log(`${exec.name} (${exec.title})`);
  console.log(`  Salary:       $${exec.salary.toLocaleString()}`);
  console.log(`  Bonus:        $${exec.bonus.toLocaleString()}`);
  console.log(`  Stock Awards: $${exec.stockAwards.toLocaleString()}`);
  console.log(`  Total:        $${exec.total.toLocaleString()}`);
  console.log();
}

Expected output

Tim Cook (Chief Executive Officer)
  Salary:       $    3,000,000
  Bonus:        $            0
  Stock Awards: $   40,000,000
  Total:        $   63,209,000

Luca Maestri (SVP, Chief Financial Officer)
  Salary:       $    1,000,000
  Bonus:        $            0
  Stock Awards: $   20,000,000
  Total:        $   26,900,000

Step 2 — Compare compensation across companies

The /v1/compensation/compare endpoint lets you compare CEO or C-suite compensation side by side.

curl

curl -H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
  "https://api.secapi.ai/v1/compensation/compare?tickers=AAPL,MSFT,GOOG,AMZN&role=ceo"

Python

comparison = client.compensation.compare(
    tickers=["AAPL", "MSFT", "GOOG", "AMZN"],
    role="ceo",
)

print(f"{'Company':<12} {'CEO':<25} {'Total Comp':>15}")
print("-" * 55)

for entry in comparison.data:
    print(f"{entry.ticker:<12} {entry.name:<25} ${entry.total:>14,.0f}")

JavaScript

const comparison = await client.compensation.compare({
  tickers: ["AAPL", "MSFT", "GOOG", "AMZN"],
  role: "ceo",
});

console.log("Company      CEO                       Total Comp");
console.log("-".repeat(55));

for (const entry of comparison.data) {
  console.log(
    `${entry.ticker.padEnd(12)} ${entry.name.padEnd(25)} $${entry.total.toLocaleString().padStart(14)}`
  );
}

Expected output

Company      CEO                       Total Comp
-------------------------------------------------------
AAPL         Tim Cook                  $   63,209,000
MSFT         Satya Nadella             $   48,500,000
GOOG         Sundar Pichai             $  226,000,000
AMZN         Andy Jassy                $   29,200,000

Step 3 — Analyze compensation composition

Break down the mix of salary, equity, and performance-based pay to understand how compensation is structured.

Python

comp = client.compensation.get(ticker="MSFT")

for exec in comp.data[:3]:  # top 3 executives
    total = exec.total or 1
    salary_pct = (exec.salary / total) * 100
    equity_pct = (exec.stock_awards / total) * 100
    other_pct = 100 - salary_pct - equity_pct

    print(f"{exec.name} ({exec.title})")
    print(f"  Total: ${exec.total:,.0f}")
    print(f"  Salary:  {salary_pct:5.1f}%  |  Equity: {equity_pct:5.1f}%  |  Other: {other_pct:5.1f}%")
    print()

Expected output

Satya Nadella (Chairman and Chief Executive Officer)
  Total: $48,500,000
  Salary:    5.2%  |  Equity:  82.5%  |  Other:  12.3%

Amy Hood (EVP, Chief Financial Officer)
  Total: $25,300,000
  Salary:    3.9%  |  Equity:  79.1%  |  Other:  17.0%

Bradford Smith (Vice Chair and President)
  Total: $22,100,000
  Salary:    4.5%  |  Equity:  77.3%  |  Other:  18.2%

Next steps

  • Track compensation trends: Pull historical data to see how executive pay has changed year over year.
  • Screen by pay ratio: Combine compensation data with employee count from 10-K filings to calculate CEO-to-median-worker pay ratios.
  • Build peer benchmarks: Group companies by sector and market cap to create meaningful compensation benchmarks.
See the Compensation Workflows guide for additional patterns.