Company and governance data

Executive Compensation

POSThttps://api.sec-api.io/compensation

Search the compensation of named executives, standardised from the DEF 14A proxy statements filed since 2005. A new record is searchable around 300 milliseconds after EDGAR publishes the filing, and a GET request to https://api.sec-api.io/compensation/TSLA or /compensation/1318605 returns every record of one company.

Read the guide for this API →

Authentication

Send the API key either as a header or as a query parameter. The header is preferred; the query parameter exists for cases where a header cannot be set, such as opening a URL directly in a browser.

Authorization: required header

The API key on its own. Do not prefix it with Bearer or any other word.

Example Authorization: YOUR_API_KEY

token: optional query parameter

The API key, appended to the URL. Use this only when a header is not possible.

Request body

A JSON object. Content-Type must be application/json.

query: required string

The search expression in Lucene syntax, written as field:value. Every field listed under Searchable fields can be used, combined with AND, OR, NOT, parentheses, ranges and wildcards. Range expressions use square brackets, for example year:[2018 TO 2022] or salary:[100000 TO *].

Example ticker:TSLA AND year:2024

from: string, Maximum 10000

Index of the first result to return, used for pagination. Increment by the value of size to page through results. A single query can reach at most 10000 items. Narrow the query, for example by reporting year, when it matches more.

Default "0"

size: string, Maximum 50

Number of compensation records to return in one response.

Default "50"

sort: array of object

Sort order. Each item maps one field to an order object, for example [{ "salary": { "order": "desc" } }].

Default [{ "year": { "order": "desc" } }]

order: string

Either asc or desc.

Searchable fields

Every field below can be used inside query. 14 fields are searchable, and they match the structure of the objects returned in the response.

FieldDescription
tickerTicker symbol of the reporting company
cikCIK of the reporting company
nameExecutive name
positionExecutive position / title (e.g. "Chief Executive Officer")
yearReporting year, e.g. 2024
salaryAnnual base salary
bonusCash bonus
stockAwardsStock awards (grant-date fair value)

Response

A JSON object. Nested attributes are collapsed; expand one to see its fields.

(root): array of object

The response body is a JSON array, not an object. Each item is one compensation record: one executive, at one company, for one reporting year. The array holds at most size items, and it is empty when nothing matches the query.

id: string

System-internal unique identifier of the record.

cik: string

CIK of the reporting company, leading zeros removed, for example 1318605. The CIK does not change when a company is renamed or changes its ticker.

ticker: string

Ticker of the reporting company, for example TSLA.

name: string

Name of the executive as reported in the proxy statement. Spelling and capitalisation vary between filings.

position: string

Position of the executive, for example Chief Financial Officer. Titles are not standardised, so the same role can appear as Chief Executive Officer, CEO or a company-specific phrasing such as Technoking of Tesla.

year: integer

Reporting year of the compensation, for example 2024.

salary: number

Base salary for the reporting year, in US dollars.

bonus: number

Cash bonus for the reporting year, in US dollars.

stockAwards: number

Stock awards for the reporting year at grant-date fair value, in US dollars.

optionAwards: number

Option awards for the reporting year at grant-date fair value, in US dollars.

nonEquityIncentiveCompensation: number

Non-equity incentive plan compensation for the reporting year, in US dollars.

changeInPensionValueAndDeferredEarnings: number

Change in pension value and nonqualified deferred compensation earnings for the reporting year, in US dollars.

otherCompensation: number

All other compensation for the reporting year, in US dollars.

total: number

Total compensation for the reporting year, in US dollars.

Status codes

200Success. The response holds an array of compensation records, which is empty when nothing matched.
400The request body could not be parsed, or the Lucene expression in query is malformed.
403The API key is missing, or it is not valid.
429Too many requests. Slow the request rate and retry.
500Server error. Retry, and report it if it persists.