Company and governance data
Executive Compensation
https://api.sec-api.io/compensationSearch 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.
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.
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.
| Field | Description |
|---|---|
ticker | Ticker symbol of the reporting company |
cik | CIK of the reporting company |
name | Executive name |
position | Executive position / title (e.g. "Chief Executive Officer") |
year | Reporting year, e.g. 2024 |
salary | Annual base salary |
bonus | Cash bonus |
stockAwards | Stock awards (grant-date fair value) |
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
200 | Success. The response holds an array of compensation records, which is empty when nothing matched. |
400 | The request body could not be parsed, or the Lucene expression in query is malformed. |
403 | The API key is missing, or it is not valid. |
429 | Too many requests. Slow the request rate and retry. |
500 | Server error. Retry, and report it if it persists. |