Investment companies

Proxy Voting Search - Form N-PX

POSThttps://api.sec-api.io/form-npx

Search 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.

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. 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.

FieldDescription
accessionNoFiling accession number
formTypeForm type — "N-PX" or "N-PX/A"
filedAtFiling acceptance timestamp (ISO 8601)
periodOfReportReporting period end (typically YYYY-06-30)
cikCIK of the reporting entity
tickerTicker of the filer (if publicly traded)
companyNameName of the filer
proxyVotingRecordsAttachedFiling includes proxy voting records (true/false)

Response

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.

Status codes

200Success. The response holds total and data.
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.