# Proxy Voting Search - Form N-PX API Reference | SEC API > Complete API reference for the SEC EDGAR Form N-PX Proxy Voting Records API. Every request parameter, every searchable field and every response attribute, with types, constraints and a live example response. Source: https://sec-api.io/api-reference/form-npx Investment companies POST`https://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 →](https://sec-api.io/docs/form-npx-proxy-voting-records-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. | 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) | | `headerData.filerInfo.registrantType` | Registrant type — "RMIC" (registered fund) or "IM" (institutional manager) | | `headerData.filerInfo.investmentCompanyType` | Investment company type — N-1A, N-2, N-3, N-4, N-6, S-1/S-3, S-6 | | `headerData.filerInfo.flags.confirmingCopyFlag` | Confirming-copy flag (true/false) | | `headerData.seriesClass.reportSeriesClass.rptIncludeAllSeriesFlag` | Filing covers all series (true/false) | | `headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo.seriesId` | Series ID covered by the filing | | `headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo.classInfo.classId` | Class ID covered by the filing | | `formData.coverPage.yearOrQuarter` | Reports a full YEAR or a QUARTER | | `formData.coverPage.reportCalendarYear` | Calendar year of the report | | `formData.coverPage.reportInfo.reportType` | Report type — FUND VOTING REPORT, FUND NOTICE REPORT, INSTITUTIONAL MANAGER VOTING REPORT, … | | `formData.coverPage.reportInfo.confidentialTreatment` | Confidential treatment requested (true/false) | | `formData.coverPage.reportInfo.noticeExplanation` | Reason a notice report was filed instead of a voting record | | `formData.coverPage.amendmentInfo.isAmendment` | Filing is an amendment (true/false) | | `formData.coverPage.amendmentInfo.amendmentType` | Amendment type — RESTATEMENT or NEW PROXY | | `formData.coverPage.fileNumber` | SEC file number on the cover page | | `formData.coverPage.reportingCrdNumber` | CRD number of the reporting entity | | `formData.coverPage.leiNumber` | LEI of the reporting entity | | `formData.coverPage.reportingPerson.name` | Name of the reporting entity (cover page) | | `formData.coverPage.reportingPerson.address.stateOrCountry` | Reporting entity state / country | | `formData.seriesPage.seriesCount` | Number of series covered in the report | | `formData.seriesPage.seriesDetails.seriesReports.idOfSeries` | Series ID covered (series page) | | `formData.seriesPage.seriesDetails.seriesReports.nameOfSeries` | Series name covered | | `formData.seriesPage.seriesDetails.seriesReports.leiOfSeries` | Series LEI | | `formData.summaryPage.otherIncludedManagersCount` | Number of additional managers whose votes are included | | `formData.summaryPage.otherManagers2.investmentManagers.name` | Name of an included investment manager | | `formData.summaryPage.otherManagers2.investmentManagers.crdNumber` | Included manager CRD number | | `formData.signaturePage.reportingPerson` | Signatory entity | | `formData.signaturePage.txTitle` | Title of the signatory | | `id` | Internal unique identifier of the filing record. | | `headerData.submissionType` | Type of the submission, either N-PX or N-PX/A. | | `headerData.filerInfo.filer.issuerCredentials.cik` | CIK of the filer, leading zeros kept, for example 0000884546. | | `headerData.filerInfo.filer.fileNumber` | SEC-assigned file number associated with the filing. | | `headerData.filerInfo.flags.overrideInternetFlag` | True when the filer chose to override the default internet submission rules. This is used where manual or alternative submission processing is needed. | | `headerData.filerInfo.periodOfReport` | Reporting period as reported in the source XML, usually MM/DD/YYYY, for example 06/30/2025. | | `headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo.includeAllClassesFlag` | True when all classes of the series are included in the filing. Individual class details may then be absent. | | `headerData.seriesClass.reportClass.rptIncludeAllClassesFlag` | True when the filing covers all classes of the fund. Individual class details may then be absent. | | `headerData.seriesClass.reportClass.classInfo.classId` | Unique identifier of the class within the series. | | `formData.coverPage.reportQuarterYear` | The quarter reported, where applicable. | | `formData.coverPage.amendmentInfo.amendmentNo` | Number assigned to the amendment. | | `formData.coverPage.amendmentInfo.confDeniedExpired` | True when a request for confidential treatment of proxy voting information was denied, or when a granted confidentiality period has expired. The information is then publicly accessible. | | `formData.coverPage.amendmentInfo.dateExpiredDenied` | Date the request for confidential treatment was denied or expired, as reported in the source XML, usually MM/DD/YYYY. | | `formData.coverPage.amendmentInfo.dateReported` | Date the proxy voting information was reported in the filing, as reported in the source XML, usually MM/DD/YYYY. | | `formData.coverPage.amendmentInfo.reasonForNonConfidentiality` | Why confidentiality was not granted or no longer applies. Either Denied or Confidential Treatment Expired. | | `formData.coverPage.reportingPerson.phoneNumber` | Phone number of the reporting entity. | | `formData.coverPage.reportingPerson.address.street1` | Street address line 1. | | `formData.coverPage.reportingPerson.address.street2` | Street address line 2. | | `formData.coverPage.reportingPerson.address.city` | City of the reporting entity. | | `formData.coverPage.reportingPerson.address.zipCode` | Postal code of the reporting entity. | | `formData.coverPage.agentForService.name` | Full name of the agent for service. | | `formData.coverPage.agentForService.address.street1` | Primary street address line. | | `formData.coverPage.agentForService.address.street2` | Additional street address information. | | `formData.coverPage.agentForService.address.city` | City where the agent is located. | | `formData.coverPage.agentForService.address.state` | State or province where the agent is located. | | `formData.coverPage.agentForService.address.country` | Country where the agent is located. | | `formData.coverPage.agentForService.address.stateOrCountry` | US state or country of the agent. This field supersedes the fields state and country used in earlier versions of Form N-PX. | | `formData.coverPage.agentForService.address.zipCode` | Postal code of the agent address. | | `formData.coverPage.reportingSecFileNumber` | SEC file number assigned to the reporting entity, such as an investment company or investment adviser. | | `formData.coverPage.otherManagersInfo.otherManager.icaOr13FFileNumber` | Investment Company Act or Form 13F file number of the manager. | | `formData.coverPage.otherManagersInfo.otherManager.crdNumber` | CRD number of the manager. | | `formData.coverPage.otherManagersInfo.otherManager.otherFileNumber` | Alternative file number assigned by the SEC. | | `formData.coverPage.otherManagersInfo.otherManager.leiNumberOM` | Legal Entity Identifier of the manager. | | `formData.coverPage.otherManagersInfo.otherManager.managerName` | Name of the other investment manager. | | `formData.coverPage.explanatoryInformation.explanatoryChoice` | True when the filing includes additional notes. | | `formData.coverPage.explanatoryInformation.explanatoryNotes` | Explanation or comments about the filing. | | `formData.summaryPage.otherManagers2.investmentManagers.serialNo` | Sequential number identifying the manager. The voting records reference it through voteManager.otherManagers.otherManager. | | `formData.summaryPage.otherManagers2.investmentManagers.form13FFileNumber` | SEC Form 13F file number of the manager. | | `formData.summaryPage.otherManagers2.investmentManagers.secFileNumber` | SEC file number of the manager. | | `formData.summaryPage.otherManagers2.investmentManagers.leiNumber` | Legal Entity Identifier of the manager. | | `formData.signaturePage.txSignature` | Signature of the person authorised to sign for the reporting entity. | | `formData.signaturePage.txPrintedSignature` | Printed name of the authorised signatory, shown below the signature. | | `formData.signaturePage.txAsOfDate` | Date the filing was signed, as reported in the source XML, usually MM/DD/YYYY, for example 08/20/2025. | | `formData.signaturePage.secondaryRecords.secondaryRecord.txSignature` | Signature of a secondary authorised individual. | | `formData.signaturePage.secondaryRecords.secondaryRecord.printedSign` | Printed name of the secondary signatory. | | `formData.signaturePage.secondaryRecords.secondaryRecord.txTitle` | Title of the secondary signatory within the organisation. | | `formData.signaturePage.secondaryRecords.secondaryRecord.txAsOfDate` | Date the secondary signatory signed the filing, as reported in the source XML, usually MM/DD/YYYY. | ## 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. headerData: object EDGAR submission header of the filing, holding the filer classification and the series and classes the filing reports on. submissionType: string Type of the submission, either N-PX or N-PX/A. filerInfo: object Information about the filer of the submission. registrantType: string Classification of the filer. Either RMIC, a registered management investment company, or IM, an institutional manager. filer: object Identifiers of the filer. issuerCredentials: object EDGAR credentials of the filer. cik: string CIK of the filer, leading zeros kept, for example 0000884546. fileNumber: optional string SEC-assigned file number associated with the filing. flags: object Flags indicating specific processing instructions for the submission. overrideInternetFlag: boolean True when the filer chose to override the default internet submission rules. This is used where manual or alternative submission processing is needed. confirmingCopyFlag: boolean True when the filing is a confirming copy, meaning the submission is an additional copy of a filing sent before. investmentCompanyType: optional string SEC registration form of the investment company, which sets its structure and regulatory framework. Values are N-1A for an open-end mutual fund, N-2 for a closed-end fund, N-3, N-4 and N-6 for variable annuities or insurance-related funds, S-1 or S-3, and S-6 for statutory investment companies. periodOfReport: string Reporting period as reported in the source XML, usually MM/DD/YYYY, for example 06/30/2025. seriesClass: optional object The series and classes of the investment company the filing reports on. reportSeriesClass: object Series covered by the report. rptIncludeAllSeriesFlag: boolean True when the filing covers all series of the investment company. Individual series details may then be absent. rptSeriesClassInfo: optional array of object, Maximum 1000 items The specific series and their class details included in the report. seriesId: string Unique identifier of the investment series within the fund. includeAllClassesFlag: boolean True when all classes of the series are included in the filing. Individual class details may then be absent. classInfo: optional array of object, Maximum 1000 items The classes associated with the series. classId: string Unique identifier of the class within the series. reportClass: optional array of object Details of the individual classes reported in the filing, independent of the series structure. rptIncludeAllClassesFlag: boolean True when the filing covers all classes of the fund. Individual class details may then be absent. classInfo: array of object The individual classes included in the report. classId: string Unique identifier of the class within the series. formData: object The content of the form itself: cover page, summary page, series page and signature page. coverPage: object Cover page of the filing, holding the reporting entity, the period covered and the report type. yearOrQuarter: string Whether the report covers a full year or a single quarter. Either YEAR or QUARTER. reportCalendarYear: string Calendar year the report covers. reportQuarterYear: optional string The quarter reported, where applicable. amendmentInfo: optional object Amendment details, reported when the filing amends an earlier report. isAmendment: boolean True when the filing amends a previous report. amendmentNo: number Number assigned to the amendment. amendmentType: string Type of the amendment. Either RESTATEMENT or NEW PROXY. confDeniedExpired: boolean True when a request for confidential treatment of proxy voting information was denied, or when a granted confidentiality period has expired. The information is then publicly accessible. dateExpiredDenied: string Date the request for confidential treatment was denied or expired, as reported in the source XML, usually MM/DD/YYYY. dateReported: string Date the proxy voting information was reported in the filing, as reported in the source XML, usually MM/DD/YYYY. reasonForNonConfidentiality: string Why confidentiality was not granted or no longer applies. Either Denied or Confidential Treatment Expired. reportingPerson: object The entity responsible for the filing. name: string Name of the entity responsible for filing. phoneNumber: string Phone number of the reporting entity. address: object Address of the reporting entity. street1: string Street address line 1. street2: optional string Street address line 2. city: string City of the reporting entity. stateOrCountry: string US state or country of the reporting entity. This field supersedes the fields state and country used in earlier versions of Form N-PX. zipCode: string Postal code of the reporting entity. agentForService: object The designated agent who receives legal and administrative correspondence for the filer. Empty when none is reported. name: string Full name of the agent for service. address: object Mailing address of the agent for service. street1: string Primary street address line. street2: optional string Additional street address information. city: string City where the agent is located. state: optional string State or province where the agent is located. country: optional string Country where the agent is located. stateOrCountry: string US state or country of the agent. This field supersedes the fields state and country used in earlier versions of Form N-PX. zipCode: string Postal code of the agent address. reportInfo: object What kind of report the filer submitted. reportType: string Type of the report. FUND VOTING REPORT is a full proxy voting record filed by an investment company. FUND NOTICE REPORT states that no securities were held for voting. INSTITUTIONAL MANAGER VOTING REPORT is a full proxy voting report filed by an institutional manager. INSTITUTIONAL MANAGER NOTICE REPORT states that no votes were cast. INSTITUTIONAL MANAGER COMBINATION REPORT is a partial voting report where some votes are reported elsewhere. noticeExplanation: optional string Why a notice report was filed instead of a full voting record. Values are ALL VOTES BY OTHER PERSONS, REPORTING PERSON DID NOT EXERCISE VOTING and REPORTING PERSON HAS POLICY TO NOT VOTE. confidentialTreatment: optional boolean True when the SEC granted confidential treatment to part of the filing. Certain proxy votes are then omitted from public disclosure. fileNumber: string SEC-assigned file number of the registrant or institutional manager, used for identification in regulatory filings. reportingCrdNumber: optional string CRD number of the reporting entity, assigned by FINRA or by the Investment Adviser Registration Depository. reportingSecFileNumber: optional string SEC file number assigned to the reporting entity, such as an investment company or investment adviser. leiNumber: optional string Legal Entity Identifier of the reporting entity, assigned by an accredited LEI issuer. otherManagersInfo: optional object Other managers whose votes are included in the report. otherManager: array of object, Maximum 999 items The additional managers whose proxy votes are reported. icaOr13FFileNumber: string Investment Company Act or Form 13F file number of the manager. crdNumber: string CRD number of the manager. otherFileNumber: string Alternative file number assigned by the SEC. leiNumberOM: string Legal Entity Identifier of the manager. managerName: string Name of the other investment manager. explanatoryInformation: object Additional details the filer provided about the submission. explanatoryChoice: boolean True when the filing includes additional notes. explanatoryNotes: optional string Explanation or comments about the filing. summaryPage: object Summary of the included managers and their votes. otherIncludedManagersCount: number Number of additional managers whose votes are included in the report. otherManagers2: optional object Details of the included investment managers. investmentManagers: array of object, Maximum 999 items The investment managers included in the filing. serialNo: number Sequential number identifying the manager. The voting records reference it through voteManager.otherManagers.otherManager. form13FFileNumber: string SEC Form 13F file number of the manager. crdNumber: string CRD number of the investment manager. secFileNumber: string SEC file number of the manager. leiNumber: string Legal Entity Identifier of the manager. name: string Name of the investment manager. seriesPage: optional object The series of the investment company covered by the report, with the number of series and the details of each one. seriesCount: number Total number of investment series reported in the filing. seriesDetails: object Details of each investment series in the report, such as its identifier, name and Legal Entity Identifier. seriesReports: array of object, Maximum 999 items The series in the report, each one a distinct investment series of the investment company. idOfSeries: string Unique identifier of the series, usually an SEC-assigned number that tracks the series within an investment company. nameOfSeries: string Official name of the investment series as registered with the SEC. leiOfSeries: string Legal Entity Identifier of the investment series. signaturePage: object The authorised signatory of the filing, with name, signature, title and date of signing. reportingPerson: string Name of the person or entity that signs the filing for the reporting entity. txSignature: string Signature of the person authorised to sign for the reporting entity. txPrintedSignature: string Printed name of the authorised signatory, shown below the signature. txTitle: string Title of the signatory within the reporting entity, for example Chief Compliance Officer. txAsOfDate: string Date the filing was signed, as reported in the source XML, usually MM/DD/YYYY, for example 08/20/2025. secondaryRecords: optional object Additional signature records, reported when the filing needs several signatories or secondary authorisations. secondaryRecord: array of object The additional authorised signatories of the filing. txSignature: string Signature of a secondary authorised individual. printedSign: string Printed name of the secondary signatory. txTitle: string Title of the secondary signatory within the organisation. txAsOfDate: string Date the secondary signatory signed the filing, as reported in the source XML, usually MM/DD/YYYY. ## 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. | ## Request example POST https://api.sec-api.io/form-npx ```json { "query": "cik:884546", "from": "0", "size": "1", "sort": [{ "filedAt": { "order": "desc" } }] } ``` ```python from sec_api import FormNPXApi formNpxApi = FormNPXApi("YOUR_API_KEY") response = formNpxApi.get_metadata({ "query": "cik:884546", "from": "0", "size": "1", "sort": [{"filedAt": {"order": "desc"}}], }) npx_filing_metadata = response["data"] ``` ```javascript import { formNpxApi } from "sec-api"; formNpxApi.setApiKey("YOUR_API_KEY"); const response = await formNpxApi.getMetadata({ query: "cik:884546", from: "0", size: "1", sort: [{ filedAt: { order: "desc" } }], }); const npxFilingMetadata = response.data; ``` ```bash curl -X POST https://api.sec-api.io/form-npx \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "cik:884546", "from": "0", "size": "1", "sort": [{ "filedAt": { "order": "desc" } }] }' ``` ## Response example 200 OK · application/json ```json { "total": { "value": 2, "relation": "eq" }, "data": [ { "id": "723cc6d725f186bd4436136332d7fc98", "accessionNo": "0001021408-25-003152", "formType": "N-PX", "filedAt": "2025-08-25T14:01:44-04:00", "periodOfReport": "2025-06-30", "cik": "884546", "ticker": "", "companyName": "CHARLES SCHWAB INVESTMENT MANAGEMENT INC", "proxyVotingRecordsAttached": true, "headerData": { "submissionType": "N-PX", "filerInfo": { "registrantType": "IM", "filer": { "issuerCredentials": { "cik": "0000884546" } }, "flags": { "overrideInternetFlag": false, "confirmingCopyFlag": false }, "periodOfReport": "06/30/2025" } }, "formData": { "coverPage": { "yearOrQuarter": "YEAR", "reportCalendarYear": "2025", "reportingPerson": { "name": "Charles Schwab Investment Management Inc", "phoneNumber": "4156677000", "address": { "street1": "211 Main Street", "city": "San Francisco", "stateOrCountry": "CA", "zipCode": "94105" } }, "agentForService": {}, "reportInfo": { "reportType": "INSTITUTIONAL MANAGER VOTING REPORT", "confidentialTreatment": false }, "fileNumber": "028-03128", "explanatoryInformation": { "explanatoryChoice": false } }, "summaryPage": { "otherIncludedManagersCount": 0 }, "signaturePage": { "reportingPerson": "Charles Schwab Investment Management Inc", "txSignature": "Omar Aguilar", "txPrintedSignature": "Omar Aguilar", "txTitle": "Chief Executive Officer", "txAsOfDate": "08/20/2025" } } } ] } ```