Investment companies
Proxy Voting Search - Form N-PX
https://api.sec-api.io/form-npxSearch every Form N-PX filing published on SEC EDGAR since 2024 and get the filing metadata back as JSON. Funds and institutional managers file Form N-PX each year by 31 August to disclose how they voted on shareholder proposals during the 12 months to 30 June.
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. Every field listed under Searchable fields can be used, combined with AND, OR, NOT, ranges and wildcards.
Example cik:884546
from: string, Maximum 10000
Index of the first result to return, used for pagination. Increment by the value of size to page through results.
Default "0"
size: string, Maximum 50
Number of N-PX filings to return in one response.
Default "50"
sort: array of object
Sort order. Each item maps one field to an order object, for example [{ "filedAt": { "order": "desc" } }].
Default [{ "filedAt": { "order": "desc" } }]
order: string
Either asc or desc.
Searchable fields
Every field below can be used inside query. 82 fields are searchable, and they match the structure of the objects returned in the response.
| Field | Description |
|---|---|
accessionNo | Filing accession number |
formType | Form type — "N-PX" or "N-PX/A" |
filedAt | Filing acceptance timestamp (ISO 8601) |
periodOfReport | Reporting period end (typically YYYY-06-30) |
cik | CIK of the reporting entity |
ticker | Ticker of the filer (if publicly traded) |
companyName | Name of the filer |
proxyVotingRecordsAttached | Filing includes proxy voting records (true/false) |
A JSON object. Nested attributes are collapsed; expand one to see its fields.
total: object
How many N-PX filings matched the query.
value: integer
Number of matching filings, capped at 10000. A value of 10000 with relation gte means more than 10000 filings matched.
relation: string
Either eq, meaning value is exact, or gte, meaning value is a floor.
data: array of object
The matching N-PX filings, at most size per response. The individual proxy votes are not included here. Download them per filing from the N-PX Voting Records API.
id: string
Internal unique identifier of the filing record.
accessionNo: string
Accession number of the N-PX filing, for example 0001021408-24-007161. Pass it to the N-PX Voting Records API to download the votes.
formType: string
Form type of the filing. Either N-PX, the annual report of proxy voting record, or N-PX/A, an amendment to a previously filed Form N-PX.
filedAt: string
Timestamp EDGAR accepted the filing, ISO 8601 in Eastern Time, for example 2024-05-15T16:17:15-04:00.
periodOfReport: string
Reporting period covered by the filing, YYYY-MM-DD. It is usually the 12-month period ending on 30 June of the filing year, for example 2024-06-30.
cik: string
CIK of the reporting entity, leading zeros removed, for example 1021408.
ticker: optional string
Ticker of the filer at the time of filing, when the filer represents a publicly traded company. Empty otherwise.
companyName: string
Name of the filer of the proxy voting record, for example American Growth Fund Inc.
proxyVotingRecordsAttached: boolean
True when the filing includes proxy voting records. Download the records separately from the N-PX Voting Records API.
headerData: object
EDGAR submission header of the filing, holding the filer classification and the series and classes the filing reports on.
formData: object
The content of the form itself: cover page, summary page, series page and signature page.
Status codes
200 | Success. The response holds total and data. |
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. |