Form N-PORT Data API

Form NPORT Data API
Form NPORT-P XML converted to JSON

Form N-PORT (Monthly Portfolio Investments Report) is used by registered management investment companies and exchange-traded funds (ETF) organized as a unit investment trust. An N-PORT filing includes a fund's holdings, performance metrics, assets under management, borrowers and more. The N-PORT filing is publicly filed with the SEC on a quarterly schedule and supersedes form N-Q.

The N-PORT Data API returns standardized N-PORT filings data in structured JSON format. All filings are searchable by any N-PORT filing parameter, such as total assets, series/class IDs, monthly returns by class ID, interest rate and credit spread risks and more.

Our system converts the XML data of an N-PORT filing into a standardized JSON format, indexes the data into a large-scale database and exposes the API to access and search the entire N-PORT filings database. This process is performed in real-time and new N-PORT data is available in less than 300 milliseconds after the filing was published on SEC EDGAR.

Dataset size:
All N-PORT filings in JSON format filed since the introduction in 2019 to present.
Data update frequency:
New filings are indexed and searchable in 300 milliseconds after they are published on EDGAR.
Survivorship bias free:
Yes. All Form N-PORT filings, from active and inactive funds, are included.

API Endpoints

Form N-PORT Search API

The N-PORT Data API allows searching and filtering all N-PORT filings published on the SEC EDGAR database since 2019 to present. The API accepts search queries as JSON formatted payload and returns the matching N-PORT filings in JSON format. The API endpoint is:

https://api.sec-api.io/form-nport

Supported HTTP methods: POST

Request and response content type: JSON

Form N-PORT Bulk Dataset Download

The complete set of Form N-PORT filings is available for bulk download in compressed JSONL (JSON line) files (.jsonl.gz). Each line in a .jsonl.gz file represents the full content of a single N-PORT filing in structured JSON format. The dataset is organized by year and month, using the filename format YYYY-MM.jsonl.gz, where YYYY is the year (e.g., 2024) and MM is the month (e.g., 02 for February). Each .jsonl.gz file includes all N-PORT filings with a filedAt timestamp that falls within the respective year and month. This timestamp reflects when the filing was accepted by the EDGAR system.

New filings are added daily to the bulk dataset between 1:00 AM and 4:00 AM ET.

An accompanying index.json file provides metadata for all available .jsonl.gz files, including:

  • key (string) - The file path, e.g. 2025/2025-03.jsonl.gz.
  • updatedAt (date) - The last update timestamp, e.g. 2025-04-03T14:06:34.000Z.
  • size (integer) - The file size in bytes, e.g. 106764954.

The index.json file is especially useful for programmatic access and automation, allowing to monitor updates and manage downloads at scale.

EndpointDescriptionHTTP MethodResponse Format
/bulk/form-nport/YEAR/YEAR-MONTH.jsonl.gzGzip-compressed JSONL file containing all N-PORT filings for the specified year and month.GETjsonl.gz
/bulk/form-nport/index.jsonJSON file containing the paths, file update times and file sizes of all jsonl.gz files of all NPORT data files.GETjson

Bulk Download Endpoint Examples

  • https://api.sec-api.io/bulk/form-nport/2025/2025-02.jsonl.gz
  • https://api.sec-api.io/bulk/form-nport/index.json

Authentication

Use the API key shown in your user profile after sign up. There are two ways to use your API key. It's either/or.

  • Set as Authorization header. Before making a POSTrequest to https://api.sec-api.io/form-nport, set the Authorization header to YOUR_API_KEY
  • Set as query parameter. Example: https://api.sec-api.io/form-nport?token=YOUR_API_KEY
    In this case, make POST requests to the endpoint https://api.sec-api.io/form-nport?token=YOUR_API_KEY and not to https://api.sec-api.io/form-nport.

Request Parameters

All N-PORT filing properties are searchable. Refer to the complete list of properties in the Response Structure section below. You can send a search query as JSON formatted payload to the API using the structure below.

Request parameters:

  • query (string) - Your search query written in Lucene syntax. Boolean operators (AND, OR, NOT), wildcards (*) and nested conditions are fully supported. Query examples:
    The search expression "genInfo.regCik:0000842790" returns all N-PORT filings filed by CIK 0000842790.
    "accessionNo:\"0001752724-22-020473\"" returns the filing with accession number 0001752724-22-020473.
    "seriesClassInfo.classIds:C000084554" returns all N-PORT filings covering the class/contract with ID C000084554.
    "invstOrSecs.cusip.value:681936BM1" returns all filings showing an investment in the company with CUSIP 681936BM1.
    "fundInfo.totAssets:[5000000000 TO *]" returns all filings with total assets greater than $5 billion.
  • from (integer) - The start index position of your search. Increase from in order to paginate through the results. For example, set from to 20 to return search results from position 20 to 30. Default: 0.
  • size (integer) - The number of N-PORT filings to be returned in one response. Default: 10. Max: 10.
  • sort (array) - An array of sort definitions. Each array item defines the sort order, e.g. results to be sorted by filing date.
    Example: [{ "fundInformation.totalAssets": { "order": "desc" } }] sort filings by total assets in descending order.
    Default:[{ "filedAt": { "order": "desc" } }]

Request Examples

Search N-PORT filings by series ID: Find the 10 most recently submitted N-PORT filings for the series ID S000025654.

Open in Data Browser

Search N-PORT filings by class ID: Find the 10 most recently submitted N-PORT filings referring to the class ID C000120702.

Open in Data Browser

Find all portfolio reports of investment companies with total assets exceeding $1 billion, sort the result by the date each N-PORT filing was published on SEC EDGAR, starting with the latest filing.

Open in Data Browser

Find all portfolio reports of investment companies with investments into Amazon or Apple.

Open in Data Browser

Response Structure

Response type: JSON

  • filings (array) - An array of N-PORT filings matching your search query. Each array item represents an entire N-PORT filing.
    • filedAt (date) - Filing date and time, e.g. 2021-08-31T07:51:48-04:00
    • accessionNo (string) - Accession number of the filing, e.g. 0001752724-22-020473
    • submissionType (string) - The form type. Either NPORT-P or NPORT-P/A.
    • filerInfo (object) - Information about the filing entity.
      • filer (object)
        • fileNumber (string)
        • issuerCredentials (object)
          • cik (string)
      • seriesClassInfo (array) - Series and class IDs
        • seriesId (string) - Series ID, e.g. S000009165
        • seriesLei (string) - LEI of the series
        • seriesName (string) - Name of the series, e.g. Alger Weatherbie Specialized Growth Fund
        • classIds (array) - Array of strings containing all class IDs of the series, e.g. ["C000024920", "C000095960"]
    • genInfo (object) - Part A: General Information
      • regName (string) - Name of the filer, e.g. Alger Funds
      • regFileNumber (string) - File number of the filer, e.g. 811-01355
      • regCik (string) - CIK of the filer, e.g. 0000003521
      • regLei (string) - LEI of the filer, e.g. 549300GSR7CWA7IW4H72
      • regStreet1 (string) - Street 1
      • regStreet2 (string) - Street 2
      • regZipOrPostalCode (string) - ZIP code
      • regCountry (string)
      • regStateConditional (object)
        • regCountry (string)
        • regState (string)
      • regPhone (string) - Phone number of filer.
      • seriesName (string) - Series name.
      • seriesId (string) - Series ID.
      • seriesLei (string) - Series LEI.
      • repPdEnd (date) - End of reporting period, e.g. 2020-10-31
      • repPdDate (date) - Date of reporting period, e.g. 2020-07-31
      • isFinalFiling (boolean)
    • fundInfo (object) - Part B: Information About the Fund
      • totAssets (float) - Item B.1.a Total assets
      • totLiabs (float) - Item B.1.b Total liabilities
      • netAssets (float) - Item B.1.c Net assets
      • assetsAttrMiscSec (float) - Item B.2.a Assets attributable to miscellaneous securities reported in Part D.
      • assetsInvested (float) - Item B.2.b Assets invested in a Controlled Foreign Corporation for the purpose of investing in certain types of instruments such as, but not limited to, commodities.
      • amountsPayableOneYear (object) - Item B.2.c. Borrowings attributable to amounts payable for notes payable, bonds, and similar debt, as reported pursuant to rule 6-04(13)(a) of Regulation S-X [17 CFR 210.6-04(13)(a)].
        Amounts payable within one year.
        • banks (float) - Banks or other financial institutions for borrowings.
        • controlledCompanies (float) - Controlled companies.
        • otherAffiliates (float) - Other affiliates.
        • others (float) - Others.
      • amountsPayableAfterOneYear (object) - Item B.2.c. Amounts payable after one year.
        • banks (float) - Banks or other financial institutions for borrowings.
        • controlledCompanies (float) - Controlled companies.
        • otherAffiliates (float) - Other affiliates.
        • others (float) - Others.
      • delayDeliv (float) - Item B.2.d Payables for investments purchased either (i) on a delayed delivery, when-issued, or other firm commitment basis, or (ii) on a standby commitment basis.
        (i) On a delayed delivery, when-issued, or other firm commitment basis:
      • standByCommit (float) - Item B.2.d (ii) On a standby commitment basis.
      • liquidPref (float) - Item B.2.e Liquidation preference of outstanding preferred stock issued by the Fund.
      • cshNotRptdInCorD (float) - Item B.2.f. Cash and cash equivalents not reported in Parts C and D.
      • curMetrics (object) - Item B.3. Currency metrics.
        • curMetric (array)
          • curCd (string) - ISO currency metric code, e.g. United States Dollar
          • interestRateRiskDv01 (object) - Item B.3.a. Interest Rate Risk (DV01). For each currency for which the Fund had a value of 1% or more of the Fund’s net asset value, provide the change in value of the portfolio resulting from a 1 basis point change in interest rates, for each of the following maturities: 3 month, 1 year, 5 years, 10 years, and 30 years.
            • period3Mon (float) - 3 month.
            • period1Yr (float) - 1 year.
            • period5Yr (float) - 5 years.
            • period10Yr (float) - 10 years.
            • period30Yr (float) - 30 years.
          • interestRateRiskDv100 (object) - Item 3.B.b. Interest Rate Risk (DV100). For each currency for which the Fund had a value of 1% or more of the Fund’s net asset value, provide the change in value of the portfolio resulting from a 100 basis point change in interest rates, for each of the following maturities: 3 month, 1 year, 5 years, 10 years, and 30 years.
            • period3Mon (float) - 3 month.
            • period1Yr (float) - 1 year.
            • period5Yr (float) - 5 years.
            • period10Yr (float) - 10 years.
            • period30Yr (float) - 30 years.
      • creditSpreadRisk (object) - Item 3.B.c. Credit Spread Risk (SDV01, CR01 or CS01). Provide the change in value of the portfolio resulting from a 1 basis point change in credit spreads where the shift is applied to the option adjusted spread, aggregated by investment grade and non-investment grade exposures, for each of the following maturities: 3 month, 1 year, 5 years, 10 years, and 30 years.
        • investmentGrade (object) - Investment grade.
          • period3Mon (float) - 3 month.
          • period1Yr (float) - 1 year.
          • period5Yr (float) - 5 years.
          • period10Yr (float) - 10 years.
          • period30Yr (float) - 30 years.
        • nonInvestmentGrade (object) - Non-investment grade.
          • period3Mon (float) - 3 month.
          • period1Yr (float) - 1 year.
          • period5Yr (float) - 5 years.
          • period10Yr (float) - 10 years.
          • period30Yr (float) - 30 years.
      • borrowers (array, optional) - Item B.4.a. For each borrower in any securities lending transaction, provide the following information:
        • name (string) - i. Name of borrower,
        • lei (string) - ii. LEI (if any) of borrower
        • aggregateValue (float) - iii. Aggregate value of all securities on loan to the borrower.
      • isNonCashCollateral (boolean) - Item B.4.b Did any securities lending counterparty provide any non-cash collateral?
      • aggregateAmount (float) - Item B.4.b i. Aggregate principal amount.
      • aggregateCollateral (float) - Item B.4.b ii. Aggregate value of collateral.
      • investmentCategory (string) - Item B.4.b iii. Category of investments that most closely represents the collateral, selected from among the following: asset-backed securities, agency collateralized mortgage obligations, agency debentures and agency strips, agency mortgage-backed securities, U.S. Treasuries (including strips), other instrument. If "other instrument," include a brief description, including, if applicable, whether it is an irrevocable letter of credit.
      • returnInfo (object) - Item B.5 Return information.
        • monthlyTotalReturns (array) - Monthly total returns of the Fund for each of the preceding three months. If the Fund is a Multiple Class Fund, report returns for each class. Such returns shall be calculated in accordance with the methodologies outlined in Item 26(b) (1) of Form N-1A, Instruction 13 to sub-Item 1 of Item 4 of Form N-2, or Item 26(b) (i) of Form N-3, as applicable.
          • classId (string) - Class identification number(s) (if any) of the Class(es) for which returns are reported.
          • returnMonth1 (float) - Monthly total returns of the Fund for each of the preceding three months – Month 1.
          • returnMonth2 (float) - Monthly total returns of the Fund for each of the preceding three months – Month 2.
          • returnMonth3 (float) - Monthly total returns of the Fund for each of the preceding three months – Month 3.
        • monthlyReturnCategories (array) - For each of the preceding three months, monthly net realized gain (loss) and net change in unrealized appreciation (or depreciation) attributable to derivatives for each of the following categories: commodity contracts, credit contracts, equity contracts, foreign exchange contracts, interest rate contracts, and other contracts. Within each such asset category, further report the same information for each of the following types of derivatives instrument: forward, future, option, swaption, swap, warrant, and other. Report in U.S. dollars. Losses and depreciation shall be reported as negative numbers.
          • commodityContracts (object) - Asset category: Commodity Contracts
          • creditContracts (object) - Asset category: Credit Contracts
          • equityContracts (object) - Asset category: Equity Contracts
          • foreignExchgContracts (object) - Asset category: Foreign Exchange Contracts
          • interestRtContracts (object) - Asset category: Interest Rate Contracts
          • otherContracts (object) - Asset category: Other Contracts
    • invstOrSecs (array) - Part C: Schedule of Portfolio Investments
      • name (string) - a. Name of issuer (if any).
      • lei (string) - b. LEI (if any) of issuer. In the case of a holding in a fund that is a series of a series trust, report the LEI of the series.
      • title (string) - c. Title of the issue or description of the investment.
      • cusip (string) - d. CUSIP (if any).
      • identifiers (object) - At least one of the following other identifiers:
        • isin (object, optional) - ISIN, e.g. FR0000120628
          • value (string)
        • ticker (string, optional) - Ticker, e.g. CS
          • value (string)
        • other (string, optional) - Other identifier, e.g. AXAF1
          • value (string)
          • otherDesc (string)
      • balance (float) - Balance, e.g. 39542
      • units (string) - Units, e.g. Number of shares
      • descOthUnits (string) - Description of other units
      • curCd (string) - Currency. Indicate the currency in which the investment is denominated, e.g. United States Dollar
      • currencyConditional (object)
        • curCd (string)
        • exchangeRt (float)
      • valUSD (float) - Value. Report values in U.S. dollars. If currency of investment is not denominated in U.S. dollars, provide the exchange rate used to calculate value, e.g. 6178437.50
      • pctVal (float) - Percentage value compared to net assets of the Fund, e.g. 0.717838123833
      • payoffProfile (string) - Indicate payoff profile among the following categories (long, short, N/A). For derivatives, respond N/A to this Item and respond to the relevant payoff profile question in Item C.11.
      • assetCat (string) - Asset type: short-term investment vehicle (e.g., money market fund, liquidity pool, or other cash management vehicle), repurchase agreement, equity-common, equity-preferred, debt, derivative-commodity, derivative-credit, derivative-equity, derivative-foreign exchange, derivative-interest rate, derivatives-other, structured note, loan, ABS-mortgage backed security, ABS-asset backed commercial paper, ABS-collateralized bond/debt obligation, ABS-other, commodity, real estate, other. If “other,” provide a brief description.
      • issuerCat (string) - Issuer type: corporate, U.S. Treasury, U.S. government agency, U.S. government sponsored entity, municipal, non-U.S. sovereign, private fund, registered fund, other. If “other”, provide a brief description.
      • invCountry (string) - Report the ISO country code that corresponds to the country where the issuer is organized, e.g. US
      • isRestrictedSec (boolean) - Is the investment a Restricted Security?
      • fairValueLevel (string) - Indicate the level within the fair value hierarchy in which the fair value measurements fall pursuant to U.S. Generally Accepted Accounting Principles 7 (ASC 820, Fair Value Measurement). Options: 1, 2, 3 or N/A. Report "N/A" if the investment does not have a level associated with it (i.e., net asset value used as the practical expedient).
      • debtSec (object) - Item C.9. Debt Securities.
        • maturityDt (date) - Maturity date.
        • couponKind (string) - Select the category that most closely reflects the coupon type among the following (fixed, floating, variable, none).
        • annualizedRt (float) - Annualized rate.
        • isDefault (boolean) - Currently in default?
        • areIntrstPmntsInArrs (boolean) - Are there any interest payments in arrears or have any coupon payments been legally deferred by the issuer?
        • isPaidKind (boolean) - Is any portion of the interest paid in kind? [Y/N] Enter “N” if the interest may be paid in kind but is not actually paid in kind or if the Fund has the option of electing in-kind payment and has elected to be paid in-kind.
        • isMandatoryConvrtbl (boolean) - Mandatory convertible?
        • isContngtConvrtbl (boolean) - Contingent convertible?
        • dbtSecRefInstruments (object) - Description of the reference instrument, including the name of issuer, title of issue, and currency in which denominated, as well as CUSIP of reference instrument, ISIN (if CUSIP is not available), ticker (if CUSIP and ISIN are not available), or other identifier (if CUSIP, ISIN, and ticker are not available).
          • dbtSecRefInstrument (array)
            • name (string)
            • title (string)
            • curCd (string)
            • identifiers (object)
              • cusip (object)
              • isin (object)
              • ticker (object)
              • other (object)
        • currencyInfos (object) - Conversion ratio per US$1000 notional, or, if bond currency is not in U.S. dollars, per 1000 units of the relevant currency, indicating the relevant currency. If there is more than one conversion ratio, provide each conversion ratio.
        • delta (string) - Delta (if applicable).
      • repurchaseAgrmt (object) - Item C.10. Repurchase and Reverse Repurchase Agreements.
        • transCat (string) - Select the category that reflects the transaction (repurchase, reverse repurchase). Select “repurchase agreement” if the Fund is the cash lender and receives collateral. Select “reverse repurchase agreement” if the Fund is the cash borrower and posts collateral.
        • clearedCentCparty (object) - Cleared by central counterparty? [Y/N] If Y, provide the name of the central counterparty. If N, provide the name and LEI (if any) of counterparty.
          • isCleared (boolean)
          • centralCounterparty (string)
        • notClearedCentCparty (object)
        • isTriParty (boolean) - Tri-party?
        • repurchaseRt (float) - Repurchase rate.
        • maturityDt (date) - Maturity date.
        • repurchaseCollaterals (object) - Provide the following information concerning the securities subject to the repurchase agreement (i.e., collateral). If multiple securities of an issuer are subject to the repurchase agreement, those securities may be aggregated in responding to Items C.10.f.i-iii.
          • repurchaseCollateral (array)
            • principalAmt (float) - Principal amount.
            • principalCd (string)
            • collateralVal (float) - Value of collateral.
            • collateralCd (string)
            • invstCat (string) - Category of investments that most closely represents the collateral, selected from among the following (asset-backed securities; agency collateralized mortgage obligations; agency debentures and agency strips; agency mortgage-backed securities; private label collateralized mortgage obligations; corporate debt securities; equities; money market; U.S. Treasuries (including strips); other instrument). If “other instrument,” include a brief description, including, if applicable, whether it is a collateralized debt obligation, municipal debt, whole loan, or international debt.
      • derivativeInfo (object) - Item C.11. Derivatives.
        • fwdDeriv (object) - Forwards
          • counterparties (array) - Counterparty. Provide the name and LEI (if any) of counterparty (including a central counterparty). Each item has counterpartyName (string) and counterpartyLei (string; "N/A" when unavailable).
          • amtCurSold (float) - Amount of currency sold.
          • curSold (string) - Description of currency sold.
          • amtCurPur (float) - Amount of currency purchased.
          • curPur (string) - Description of currency purchased.
          • settlementDt (date) - Settlement date.
          • unrealizedAppr (float) - Unrealized appreciation or depreciation. Depreciation shall be reported as a negative number.
          • payOffProf (number) - Payoff profile, selected from among the following (long, short).
          • descRefInstrmnt (object) - Description of reference instrument, as required by sub-Item C.11.c.iii.
          • expDate (date) - Expiration date.
          • notionalAmt (float) - Aggregate notional amount or contract value on trade date.
          • curCd (string)
          • derivCat (string) - Type of derivative instrument that most closely represents the investment.
        • futrDeriv (object) - Futures
          • counterparties (array) - Counterparty. Provide the name and LEI (if any) of counterparty (including a central counterparty). Each item has counterpartyName (string) and counterpartyLei (string; "N/A" when unavailable).
          • payOffProf (string) - Payoff profile, selected from among the following (long, short).
          • descRefInstrmnt (object) - Description of reference instrument, as required by sub-Item C.11.c.iii.
          • expDate (date) - Expiration date.
          • notionalAmt (float) - Aggregate notional amount or contract value on trade date.
          • curCd (string)
          • unrealizedAppr (float) - Unrealized appreciation or depreciation. Depreciation shall be reported as a negative number.
          • derivCat (string)
        • swapDeriv (object) - Swaps
          • counterparties (array) - Counterparty. Provide the name and LEI (if any) of counterparty (including a central counterparty). Each item has counterpartyName (string) and counterpartyLei (string; "N/A" when unavailable).
          • amtCurSold (float) - Amount of currency sold.
          • curSold (string) - Description of currency sold.
          • amtCurPur (float)
          • curPur (string)
          • settlementDt (date) - Settlement date.
          • unrealizedAppr (float) - Unrealized appreciation or depreciation. Depreciation shall be reported as a negative number.
          • descRefInstrmnt (object) - Description of reference instrument. For basket swaps, carries an indexBasketInfo object with indexName, indexIdentifier, and narrativeDesc; for single-name references, an otherRefInst object with issuerName and issueTitle.
          • swapFlag (string) - Y if the swap is traded on a swap execution facility (SEF), N otherwise.
          • fixedRecDesc (object) - Description of the fixed leg received. Keys: amount, curCd, fixedOrFloating (Fixed), fixedRt.
          • floatingRecDesc (object) - Description of the floating leg received. Keys: rtResetTenors (a rtResetTenor array with rateTenor, rateTenorUnit, resetDt, resetDtUnit), curCd, fixedOrFloating (Floating), floatingRtIndex, floatingRtSpread, pmntAmt.
          • otherRecDesc (object) - Description of an other-type leg received (used when the leg is neither a plain fixed nor floating rate, e.g. an index or basket return).
          • fixedPmntDesc (object) - Description of the fixed leg paid. Keys: amount, curCd, fixedOrFloating (Fixed), fixedRt.
          • floatingPmntDesc (object) - Description of the floating leg paid. Same shape as floatingRecDesc.
          • otherPmntDesc (object) - Description of an other-type leg paid (used when the leg is neither a plain fixed nor floating rate).
          • terminationDt (date) - Termination or maturity date.
          • upfrontPmnt (float) - Upfront payments.
          • pmntCurCd (string) - ISO currency code in which the upfront payment is denominated.
          • upfrontRcpt (float) - Upfront receipts.
          • rcptCurCd (string) - ISO currency code in which the upfront receipt is denominated.
          • notionalAmt (float) - Notional amount.
          • curCd (string) - ISO currency code in which the notional amount is denominated.
          • derivCat (string) - Type of derivative instrument that most closely represents the investment. For this object the value is SWP (swap).
        • optionSwaptionWarrantDeriv (object) - Options and warrants, including options on a derivative (e.g. swaptions).
          • counterparties (array) - Counterparty. Provide the name and LEI (if any) of counterparty (including a central counterparty). Each item has counterpartyName (string) and counterpartyLei (string; "N/A" when unavailable).
          • putOrCall (string) - Type of option (Put or Call), as applicable.
          • writtenOrPur (string) - Payoff profile: indicates whether the position is Written or Purchased.
          • descRefInstrmnt (object) - Description of reference instrument, as required by sub-Item C.11.c.iii.
          • shareNo (float) - Number of shares (or principal amount) of underlying reference instrument per contract.
          • exercisePrice (float) - Exercise price or rate.
          • exercisePriceCurCd (string) - ISO currency code in which the exercise price is denominated (e.g. USD).
          • expDt (date) - Expiration date.
          • delta (float) - Delta (only required for options on equities; left blank/null for options on all other reference instruments).
          • unrealizedAppr (float) - Unrealized appreciation or depreciation. Depreciation shall be reported as a negative number.
          • derivCat (string) - Type of derivative instrument that most closely represents the investment (e.g. OPT option, SWO swaption, WAR warrant).
        • othDeriv (object) - Other derivatives — instruments that do not fit any of the other derivative categories (forwards, futures, swaps, options/swaptions/warrants).
          • counterparties (array) - Counterparty. Provide the name and LEI (if any) of counterparty (including a central counterparty). Each item has counterpartyName (string) and counterpartyLei (string; "N/A" when unavailable).
          • descRefInstrmnt (object) - Description of reference instrument, as required by sub-Item C.11.c.iii.
          • terminationDt (date) - Termination or maturity date.
          • notionalAmts (object) - Notional amount(s). Carries a notionalAmt array, where each entry has an amount (amt) and ISO currency code (curCd).
          • delta (float) - Delta (only required for options on equities; left blank/null otherwise).
          • unrealizedAppr (float) - Unrealized appreciation or depreciation. Depreciation shall be reported as a negative number.
          • derivCat (string) - Type of derivative instrument that most closely represents the investment. For this object the value is OTH (other).
          • othDesc (string) - Free-text description of the derivative instrument when derivCat is OTH (e.g. rights).
      • securityLending (object) - Item C.12. Securities lending.
        • isCashCollateral (boolean) - a. Does any amount of this investment represent reinvestment of cash collateral received for loaned securities?
        • isNonCashCollateral (boolean) - b. Does any portion of this investment represent that is treated as a Fund asset and received for loaned securities?
        • isLoanByFund (boolean) - c. Is any portion of this investment on loan by the Fund?

Response Example

JSON
1 {
2 "total": {
3 "value": 10000,
4 "relation": "gte"
5 },
6 "filings": [
7 {
8 "submissionType": "NPORT-P/A",
9 "accessionNumber": "0001145549-22-060663",
10 "filerInfo": {
11 "filer": {
12 "issuerCredentials": {
13 "cik": "0001750821",
14 "ccc": "XXXXXXXX"
15 }
16 },
17 "seriesClassInfo": {
18 "seriesId": "S000069692",
19 "classId": [
20 "C000222265",
21 "C000222266"
22 ]
23 }
24 },
25 "genInfo": {
26 "regName": "North Square Investments Trust",
27 "regFileNumber": "811-23373",
28 "regCik": "0001750821",
29 "regLei": "549300K2CKCXH4E67T58",
30 "regStreet1": "10 South LaSalle Street",
31 "regStreet2": "Suite 1925",
32 "regCity": "Chicago",
33 "regStateConditional": {
34 "regCountry": "US",
35 "regState": "US-IL"
36 },
37 "regZipOrPostalCode": "60603",
38 "regPhone": "3128572160",
39 "seriesName": "North Square McKee Bond Fund",
40 "seriesId": "S000069692",
41 "seriesLei": "549300PHHMXSPZQUPF03",
42 "repPdEnd": "2022-10-31",
43 "repPdDate": "2022-07-31",
44 "isFinalFiling": "N"
45 },
46 "fundInfo": {
47 "totAssets": 127694318.88,
48 "totLiabs": 4923978.88,
49 "netAssets": 122770340,
50 "assetsAttrMiscSec": 0,
51 "assetsInvested": 0,
52 "amtPayOneYrBanksBorr": 0,
53 "amtPayOneYrCtrldComp": 0,
54 "amtPayOneYrOthAffil": 0,
55 "amtPayOneYrOther": 0,
56 "amtPayAftOneYrBanksBorr": 0,
57 "amtPayAftOneYrCtrldComp": 0,
58 "amtPayAftOneYrOthAffil": 0,
59 "amtPayAftOneYrOther": 0,
60 "delayDeliv": 4227285,
61 "standByCommit": 0,
62 "liquidPref": 0,
63 "curMetrics": {
64 "curMetric": [
65 {
66 "curCd": "USD",
67 "intrstRtRiskdv01": {
68 "period10Yr": 9856.91,
69 "period1Yr": 6715.44,
70 "period30Yr": 11136.99,
71 "period3Mon": 13234.65,
72 "period5Yr": 11291.54
73 },
74 "intrstRtRiskdv100": {
75 "period10Yr": 985691.78,
76 "period1Yr": 671546.48,
77 "period30Yr": 1113694.42,
78 "period3Mon": 1323461.45,
79 "period5Yr": 1129157.54
80 }
81 }
82 ]
83 },
84 "creditSprdRiskInvstGrade": {
85 "period10Yr": 9687.72,
86 "period1Yr": 5820.36,
87 "period30Yr": 10710.37,
88 "period3Mon": 9920.17,
89 "period5Yr": 11446.13
90 },
91 "creditSprdRiskNonInvstGrade": {
92 "period10Yr": 0,
93 "period1Yr": 101.19,
94 "period30Yr": 0,
95 "period3Mon": 21.28,
96 "period5Yr": 35.08
97 },
98 "isNonCashCollateral": "N",
99 "returnInfo": {
100 "monthlyTotReturns": {
101 "monthlyTotReturn": [
102 {
103 "classId": "C000222265",
104 "rtn1": 0.71,
105 "rtn2": -1.3,
106 "rtn3": 2.14
107 },
108 {
109 "classId": "C000222266",
110 "rtn1": 0.72,
111 "rtn2": -1.28,
112 "rtn3": 2.16
113 }
114 ]
115 },
116 "othMon1": {
117 "netRealizedGain": -221892.91,
118 "netUnrealizedAppr": 987371.06
119 },
120 "othMon2": {
121 "netRealizedGain": -497878.98,
122 "netUnrealizedAppr": -1303921.56
123 },
124 "othMon3": {
125 "netRealizedGain": -747377.72,
126 "netUnrealizedAppr": 3151751.49
127 }
128 },
129 "mon1Flow": {
130 "redemption": -5909235.61,
131 "reinvestment": 162967.53,
132 "sales": 658907.53
133 },
134 "mon2Flow": {
135 "redemption": -3483203.47,
136 "reinvestment": 178658.71,
137 "sales": 471975.09
138 },
139 "mon3Flow": {
140 "redemption": -3906967.84,
141 "reinvestment": 178311.02,
142 "sales": 4912153.03
143 }
144 },
145 "invstOrSecs": [
146 {
147 "name": "Fannie Mae",
148 "lei": "B1V7KEBTPIMZEU4LTD58",
149 "title": "Fannie Mae Pool",
150 "cusip": "3140X8BP1",
151 "identifiers": {
152 "isin": {
153 "value": "US3140X8BP18"
154 }
155 },
156 "balance": 138078.19,
157 "units": "PA",
158 "curCd": "USD",
159 "valUSD": 130089.31,
160 "pctVal": 0.1059615132,
161 "payoffProfile": "Long",
162 "assetCat": "ABS-MBS",
163 "issuerCat": "USGSE",
164 "invCountry": "US",
165 "isRestrictedSec": "N",
166 "fairValLevel": "2",
167 "debtSec": {
168 "maturityDt": "2050-10-01",
169 "couponKind": "Fixed",
170 "annualizedRt": 2.5,
171 "isDefault": "N",
172 "areIntrstPmntsInArrs": "N",
173 "isPaidKind": "N"
174 },
175 "securityLending": {
176 "isCashCollateral": "N",
177 "isNonCashCollateral": "N",
178 "isLoanByFund": "N"
179 }
180 },
181 {
182 "name": "Fannie Mae",
183 "lei": "B1V7KEBTPIMZEU4LTD58",
184 "title": "Fannie Mae Pool",
185 "cusip": "3140X9AE5",
186 "identifiers": {
187 "isin": {
188 "value": "US3140X9AE52"
189 }
190 },
191 "balance": 118917.08,
192 "units": "PA",
193 "curCd": "USD",
194 "valUSD": 123144.51,
195 "pctVal": 0.1003047723,
196 "payoffProfile": "Long",
197 "assetCat": "ABS-MBS",
198 "issuerCat": "USGSE",
199 "invCountry": "US",
200 "isRestrictedSec": "N",
201 "fairValLevel": "2",
202 "debtSec": {
203 "maturityDt": "2037-12-01",
204 "couponKind": "Fixed",
205 "annualizedRt": 4,
206 "isDefault": "N",
207 "areIntrstPmntsInArrs": "N",
208 "isPaidKind": "N"
209 },
210 "securityLending": {
211 "isCashCollateral": "N",
212 "isNonCashCollateral": "N",
213 "isLoanByFund": "N"
214 }
215 },
216 {
217 "name": "Fannie Mae",
218 "lei": "B1V7KEBTPIMZEU4LTD58",
219 "title": "Fannie Mae Pool",
220 "cusip": "3140X9K95",
221 "identifiers": {
222 "isin": {
223 "value": "US3140X9K957"
224 }
225 },
226 "balance": 144438.16,
227 "units": "PA",
228 "curCd": "USD",
229 "valUSD": 142437.65,
230 "pctVal": 0.116019594,
231 "payoffProfile": "Long",
232 "assetCat": "ABS-MBS",
233 "issuerCat": "USGSE",
234 "invCountry": "US",
235 "isRestrictedSec": "N",
236 "fairValLevel": "2",
237 "debtSec": {
238 "maturityDt": "2046-06-01",
239 "couponKind": "Fixed",
240 "annualizedRt": 3,
241 "isDefault": "N",
242 "areIntrstPmntsInArrs": "N",
243 "isPaidKind": "N"
244 },
245 "securityLending": {
246 "isCashCollateral": "N",
247 "isNonCashCollateral": "N",
248 "isLoanByFund": "N"
249 }
250 }
251 // cut for brevity
252 ]
253 }
254 // cut for brevity
255 ]
256 }

Response Structure of Bulk Download Endpoints

/bulk/form-nport/YEAR/YEAR-MONTH.jsonl.gz

Decompressed JSONL Example
1 {"submissionType":"NPORT-P","filerInfo":{...},"seriesClassInfo":{...},"genInfo":{...},"fundInfo":{...},"invstOrSecs":[{...},...]},...,"accessionNo":"0001752724-25-077616","filedAt":"2025-04-01T17:30:54-04:00","id":"254662305ce9d74fec15622e7dcd19eb"}
2 { ... }
3 { ... }

/bulk/form-nport/index.json

index.json Example
1 [
2 {
3 "key": "2025/2025-04.jsonl.gz",
4 "updatedAt": "2025-04-03T14:06:44.000Z",
5 "size": 4456349
6 },
7 {
8 "key": "2025/2025-03.jsonl.gz",
9 "updatedAt": "2025-04-03T14:06:34.000Z",
10 "size": 106764954
11 },
12 // ... more files
13 ]

FAQ

Common questions about querying the Form N-PORT Data API, the response shape, and the bulk archives.

How do I pull up the most recent monthly portfolio holdings report for a specific mutual fund or ETF?

Use the /form-nport endpoint and search for the fund you want, then take the newest result. A fund can be identified by the registrant's CIK on the general information object (genInfo.regCik), or more precisely by the SEC series identifier of the specific fund (filerInfo.seriesClassInfo.seriesId), for example S000065373. Restrict the query to that identifier so only that fund's N-PORT filings come back.

To get the most recent report, sort the results by filing date in descending order using the filedAt field and take the first item. The endpoint returns the full filing, including the reporting period it covers (genInfo.repPdDate) and the complete list of holdings (invstOrSecs), so the top result is the latest monthly portfolio snapshot the fund has reported.

Open in Data Browser

How can I retrieve a single portfolio report when I already know its filing accession number?

Use the /form-nport endpoint and search on the accession number field (accessionNo), which uniquely identifies a single filing, for example 0001752724-22-149907. Because an accession number maps to exactly one filing, the response contains that one N-PORT report.

Accession numbers contain hyphens, so they should be treated as an exact phrase when matched so the value is not split into separate tokens. The single matching item in the response includes the full filing content under genInfo, fundInfo, and invstOrSecs.

Open in Data Browser

Which funds report holding a particular company's stock or bond, and how do I search for that across all portfolios?

Use the /form-nport endpoint and search inside the schedule of portfolio investments, which is the invstOrSecs array. Each holding records the issuer name (invstOrSecs.name) and an issue title (invstOrSecs.title), so you can search by company name such as Amazon or Apple. Because every N-PORT filing's holdings are indexed, a name match returns every fund that reported that issuer.

For a precise match it is better to search on a security identifier rather than a name. Each holding carries a CUSIP (invstOrSecs.cusip) and, where available, an ISIN (invstOrSecs.identifiers.isin.value), for example a CUSIP like 912828XL9 or an ISIN like US3140X8BP18. Matching on one of those identifiers returns the exact funds that hold that specific stock or bond, since identifiers are unambiguous where issuer names vary in spelling.

Open in Data Browser

How do I find all portfolio reports filed between two dates?

Use the /form-nport endpoint and constrain the filing date field (filedAt), which records when EDGAR accepted the filing, to the window you want. The value of filedAt should fall between your start date and end date, for example between 2024-01-01 and 2024-03-31.

Results default to newest-first by filedAt. Because the endpoint returns at most 10 filings per response, page through larger date ranges by advancing the from offset until all matching reports have been retrieved.

Open in Data Browser

How do I see the full list of securities a fund held as of a given reporting period?

Use the /form-nport endpoint and search for the fund by its series identifier (filerInfo.seriesClassInfo.seriesId), then narrow to the report that covers the period you want. Each filing records the date of the reporting period (genInfo.repPdDate) and the end of the reporting period (genInfo.repPdEnd), so set genInfo.repPdDate to the period date you are interested in, such as 2022-07-31.

The matching filing carries the complete schedule of portfolio investments in the invstOrSecs array. Each entry describes one position, including the issuer name (invstOrSecs.name), the title of the issue (invstOrSecs.title), the balance held (invstOrSecs.balance), the value in U.S. dollars (invstOrSecs.valUSD), and the share of net assets it represents (invstOrSecs.pctVal).

Open in Data Browser

How can I find the largest funds by total assets under management?

Use the /form-nport endpoint and filter on the fund's total assets (fundInfo.totAssets), which is reported in U.S. dollars. To find large funds, require fundInfo.totAssets to be at or above a threshold such as 5000000000 for funds holding $5 billion or more.

To rank the results, sort by fundInfo.totAssets in descending order so the biggest funds appear first. Each filing also reports total liabilities (fundInfo.totLiabs) and net assets (fundInfo.netAssets) if you want to rank by net assets instead of gross assets.

Open in Data Browser

How do I identify a fund's biggest positions, ranked by their share of net assets?

Use the /form-nport endpoint and retrieve the fund's filing by its series identifier (filerInfo.seriesClassInfo.seriesId). The schedule of portfolio investments is in the invstOrSecs array, and every holding records the percentage of the fund's net assets it represents (invstOrSecs.pctVal), for example 1.704192601254 for a position worth about 1.7% of net assets.

The API sorts whole filings rather than the holdings inside one filing, so to rank a single fund's positions, read the invstOrSecs array from its filing and order the entries by invstOrSecs.pctVal descending. The holdings with the highest pctVal are the fund's largest positions; each entry also carries its dollar value (invstOrSecs.valUSD) and issuer name (invstOrSecs.name).

Open in Data Browser

How can I tell whether a fund is using leverage or has outstanding borrowings?

Use the /form-nport endpoint and look at the fund-level liability and borrowing fields on the fundInfo object. Total liabilities are reported in fundInfo.totLiabs, which can be compared against net assets (fundInfo.netAssets) to gauge how leveraged the fund is.

Outstanding borrowings are broken out by who the money is owed to and when it is due. Amounts payable within one year appear in fundInfo.amtPayOneYrBanksBorr for bank borrowings, fundInfo.amtPayOneYrCtrldComp for controlled companies, fundInfo.amtPayOneYrOthAffil for other affiliates, and fundInfo.amtPayOneYrOther for others. Amounts payable after one year appear in the matching fundInfo.amtPayAftOneYrBanksBorr, fundInfo.amtPayAftOneYrCtrldComp, fundInfo.amtPayAftOneYrOthAffil, and fundInfo.amtPayAftOneYrOther fields. A fund with no leverage reports zeros across these fields; non-zero values indicate borrowings.

Open in Data Browser

How do I find a fund's reported monthly performance returns for the trailing three months?

Use the /form-nport endpoint and retrieve the fund's filing, then read the return information under the fund object. Monthly total returns for the preceding three months are reported per share class in the array fundInfo.returnInfo.monthlyTotReturns.monthlyTotReturn.

Each entry in that array is tied to a class identifier (fundInfo.returnInfo.monthlyTotReturns.monthlyTotReturn.classId) and carries the three trailing monthly returns: month one in rtn1, month two in rtn2, and month three in rtn3. For a multi-class fund there is one entry per class, so match the classId to the share class you are interested in to read its returns.

Open in Data Browser

How can I track money flowing into and out of a fund through new sales and shareholder redemptions?

Use the /form-nport endpoint and read the monthly flow objects on the fund object. Each N-PORT filing reports flows for the three months it covers in fundInfo.mon1Flow, fundInfo.mon2Flow, and fundInfo.mon3Flow.

Each of those objects breaks the activity into three components: money received from new share sales (fundInfo.mon1Flow.sales), money paid out for shareholder redemptions (fundInfo.mon1Flow.redemption), and amounts from dividend reinvestment (fundInfo.mon1Flow.reinvestment). Comparing sales against redemptions month over month shows whether the fund was attracting or losing assets.

Open in Data Browser

How do I find portfolio reports that cover a specific share class of a fund?

Use the /form-nport endpoint and search on the class identifier inside the filer information. A series can have several share classes, and the class identifiers are listed in filerInfo.seriesClassInfo.classId, for example C000211458. Matching on a class identifier returns the N-PORT filings of the series that contains that class.

N-PORT reports are filed at the series level rather than per class, so a returned filing covers the whole series. To read class-specific figures, look at the per-class return entries in fundInfo.returnInfo.monthlyTotReturns.monthlyTotReturn, where each entry's classId matches one share class.

Open in Data Browser

How can I find which funds have lent out securities and who borrowed them?

Use the /form-nport endpoint and look at the borrowers list on the fund object. Funds engaged in securities lending report each counterparty in the fundInfo.borrowers.borrower array. A filing with this array populated indicates the fund had securities on loan.

Each entry identifies the borrower by name (fundInfo.borrowers.borrower.name) and, where available, by legal entity identifier (fundInfo.borrowers.borrower.lei), and reports the aggregate value of all securities on loan to that borrower (fundInfo.borrowers.borrower.aggrVal). For example a filing might list borrowers such as GOLDMAN SACHS & CO. LLC or BOFA SECURITIES INC. with their aggregate loan values.

Open in Data Browser

How do I find funds holding derivatives such as options, futures, swaps, or forward contracts?

Use the /form-nport endpoint and filter the schedule of portfolio investments by asset category. Each holding records its asset type in invstOrSecs.assetCat, and derivative positions carry derivative-specific category codes, for example DE for an equity derivative, DCR for a credit derivative, DFE for a foreign exchange derivative, and DIR for an interest rate derivative.

Derivative holdings also carry a derivative detail object (invstOrSecs.derivativeInfo) with sub-objects identifying the instrument type: forwards in invstOrSecs.derivativeInfo.fwdDeriv, futures in invstOrSecs.derivativeInfo.futrDeriv, swaps in invstOrSecs.derivativeInfo.swapDeriv, and options, swaptions, and warrants in invstOrSecs.derivativeInfo.optionSwaptionWarrantDeriv. Searching for the presence of one of these sub-objects returns funds holding that kind of derivative.

Open in Data Browser

How can I identify a fund's exposure to written versus purchased options?

Use the /form-nport endpoint and look at the option detail inside each holding's derivative information. Option positions are described in invstOrSecs.derivativeInfo.optionSwaptionWarrantDeriv, which records whether the fund wrote or purchased the option in invstOrSecs.derivativeInfo.optionSwaptionWarrantDeriv.writtenOrPur, with the value Written for options the fund sold and Purchased for options the fund bought.

The same object records whether each option is a put or a call in invstOrSecs.derivativeInfo.optionSwaptionWarrantDeriv.putOrCall, with values Put or Call. Combining the two fields separates, for example, written calls from purchased puts. Each option holding also carries an exercise price (invstOrSecs.derivativeInfo.optionSwaptionWarrantDeriv.exercisePrice) and an expiration date (invstOrSecs.derivativeInfo.optionSwaptionWarrantDeriv.expDt).

Open in Data Browser

How do I find funds with meaningful holdings in companies based in a particular country?

Use the /form-nport endpoint and filter the schedule of portfolio investments by country of the issuer. Each holding records the ISO country code where the issuer is organized in invstOrSecs.invCountry, for example BR for Brazil, TW for Taiwan, or CN for China.

To find funds with meaningful exposure rather than a token position, also use the share-of-net-assets field (invstOrSecs.pctVal) and require it to be above a threshold for holdings in that country. Combining a country match on invstOrSecs.invCountry with a minimum invstOrSecs.pctVal returns funds that hold a sizable position in issuers from that country.

Open in Data Browser

How can I find funds holding restricted or hard-to-value securities?

Use the /form-nport endpoint and filter the schedule of portfolio investments on the restricted-security flag. Each holding records whether it is a restricted security in invstOrSecs.isRestrictedSec, where the value Y marks a restricted position and N an unrestricted one.

Hard-to-value positions can be found through the fair value hierarchy level (invstOrSecs.fairValLevel), which takes values 1, 2, 3, or N/A. Level 3 indicates a holding valued with unobservable inputs, which are the hardest to value. Requiring invstOrSecs.fairValLevel to be 3, on its own or together with invstOrSecs.isRestrictedSec set to Y, returns funds carrying restricted or hard-to-value securities.

Open in Data Browser

How do I find bond holdings that are currently in default or behind on interest payments?

Use the /form-nport endpoint and filter the debt-security detail inside the schedule of portfolio investments. Debt holdings carry a debt-security object (invstOrSecs.debtSec), which records whether the security is currently in default in invstOrSecs.debtSec.isDefault, with the value Y marking a defaulted bond.

The same object flags missed or deferred coupon payments in invstOrSecs.debtSec.areIntrstPmntsInArrs, where Y means there are interest payments in arrears or coupon payments have been legally deferred by the issuer. Requiring invstOrSecs.debtSec.isDefault to be Y or invstOrSecs.debtSec.areIntrstPmntsInArrs to be Y returns funds holding distressed bonds.

Open in Data Browser

How can I find a fund's holdings of fixed-rate versus floating-rate debt and their maturity dates?

Use the /form-nport endpoint and read the debt-security detail on each holding. The coupon type is recorded in invstOrSecs.debtSec.couponKind, which takes values such as Fixed, Floating, Variable, or None. Filtering on invstOrSecs.debtSec.couponKind separates fixed-rate bonds from floating-rate bonds within a fund's holdings.

Each debt holding also reports its maturity date in invstOrSecs.debtSec.maturityDt, for example 2025-07-15, and its annualized coupon rate in invstOrSecs.debtSec.annualizedRt. Combining the coupon type with the maturity date shows the rate structure and the maturity profile of the fund's bond positions.

Open in Data Browser

How do I assess a bond fund's sensitivity to interest rate changes?

Use the /form-nport endpoint and read the currency metrics on the fund object. Interest rate risk is reported per currency in the fundInfo.curMetrics.curMetric array, where each entry is tied to a currency code (fundInfo.curMetrics.curMetric.curCd), such as USD.

Within each currency entry, the field intrstRtRiskdv01 reports the change in portfolio value from a 1 basis point move in interest rates, and intrstRtRiskdv100 reports the change from a 100 basis point move. Both are broken out by maturity bucket, with sub-fields period3Mon, period1Yr, period5Yr, period10Yr, and period30Yr. Larger absolute values in fundInfo.curMetrics.curMetric.intrstRtRiskdv01 indicate a portfolio that is more sensitive to interest rate changes.

Open in Data Browser

How can I gauge a fund's exposure to credit spread movements split by investment grade and non-investment grade?

Use the /form-nport endpoint and read the credit spread risk objects on the fund object. Exposure to a 1 basis point change in credit spreads for investment-grade holdings is reported in fundInfo.creditSprdRiskInvstGrade, and for non-investment-grade holdings in fundInfo.creditSprdRiskNonInvstGrade.

Each of those objects is broken out by maturity bucket, with sub-fields period3Mon, period1Yr, period5Yr, period10Yr, and period30Yr. Comparing the values in fundInfo.creditSprdRiskInvstGrade against those in fundInfo.creditSprdRiskNonInvstGrade shows how the fund's spread exposure is split between higher-quality and lower-quality credit.

Open in Data Browser

How do I identify amended portfolio reports versus original filings?

Use the /form-nport endpoint and filter on the form type field (submissionType). An original N-PORT report has the value NPORT-P, while an amendment has the value NPORT-P/A. Searching for submissionType equal to NPORT-P/A returns only amended reports, and NPORT-P returns only originals.

When a fund has both an original and one or more amendments for the same period, the reporting period date (genInfo.repPdDate) is the same across them, so matching the period and the series identifier (filerInfo.seriesClassInfo.seriesId) groups the original together with its amendments.

Open in Data Browser

How can I find the final portfolio report filed by a fund that is winding down?

Use the /form-nport endpoint and filter on the final-filing flag in the general information object. Each report records whether it is the fund's last N-PORT filing in genInfo.isFinalFiling, where the value Y marks a final filing and N an ongoing one.

To find the final report for a particular fund, combine a match on genInfo.isFinalFiling set to Y with the fund's series identifier (filerInfo.seriesClassInfo.seriesId). To find all funds that have wound down, search on genInfo.isFinalFiling set to Y on its own.

Open in Data Browser

How do I find funds that hold repurchase or reverse repurchase agreements?

Use the /form-nport endpoint and filter the schedule of portfolio investments on the repurchase-agreement detail. Holdings that are repo positions carry a repurchase-agreement object (invstOrSecs.repurchaseAgrmt), and the transaction type is recorded in invstOrSecs.repurchaseAgrmt.transCat, which distinguishes a repurchase agreement, where the fund is the cash lender and receives collateral, from a reverse repurchase agreement, where the fund is the cash borrower and posts collateral.

Searching for the presence of invstOrSecs.repurchaseAgrmt returns funds holding either kind, and filtering on the value of invstOrSecs.repurchaseAgrmt.transCat separates repurchase from reverse repurchase positions. Each repo holding also reports a repurchase rate (invstOrSecs.repurchaseAgrmt.repurchaseRt) and a maturity date (invstOrSecs.repurchaseAgrmt.maturityDt).

Open in Data Browser

How can I break down a fund's portfolio by asset type, such as equities, debt, or cash-like instruments?

Use the /form-nport endpoint and group the holdings in the schedule of portfolio investments by their asset category. Each holding records its type in invstOrSecs.assetCat, with codes such as EC for common equity, EP for preferred equity, DBT for debt securities, and STIV for short-term investment vehicles such as money market or cash management positions.

To break down one fund's portfolio, read the invstOrSecs array from its filing and tally the holdings by invstOrSecs.assetCat, summing the value field (invstOrSecs.valUSD) or the share-of-net-assets field (invstOrSecs.pctVal) within each category. Asset-backed and derivative positions carry their own codes, for example ABS-MBS for mortgage-backed securities and DE for equity derivatives.

Open in Data Browser

How do I find money market or short-term cash management positions held by a fund?

Use the /form-nport endpoint and filter the schedule of portfolio investments on the asset category. Short-term cash management positions, including money market funds, liquidity pools, and similar cash vehicles, carry the asset category code STIV in invstOrSecs.assetCat.

Requiring invstOrSecs.assetCat to be STIV returns funds holding such positions. Each matching holding records the issuer name (invstOrSecs.name), for example a money market deposit account, along with its value in U.S. dollars (invstOrSecs.valUSD) and its share of net assets (invstOrSecs.pctVal).

Open in Data Browser

How can I look up which fund a series or class identifier belongs to, along with the fund family name?

Use the /form-nport endpoint and search on the series identifier (filerInfo.seriesClassInfo.seriesId) or one of its class identifiers (filerInfo.seriesClassInfo.classId). Any matching filing identifies the fund: the series name is reported in genInfo.seriesName, for example Innovator S&P 500 Buffer ETF - June, and the series identifier is repeated in genInfo.seriesId.

The fund family, meaning the registrant or trust that the series belongs to, is reported in genInfo.regName, for example Innovator ETFs Trust, together with the registrant's CIK in genInfo.regCik. A single filing therefore resolves a series or class identifier to both the fund's name and its fund family.

Open in Data Browser

How do I page through a large set of matching portfolio reports when there are more results than one response returns?

Use the /form-nport endpoint with the from and size parameters to page through results. The size parameter sets how many filings come back in one response and has a maximum of 10, which is also the default. The from parameter sets the starting offset, so setting from to 10 returns the next page of results, from to 20 the page after that, and so on.

Keep the sort order stable across pages, for example sorting by filedAt descending, so filings are not skipped or repeated as you advance the offset. Continue increasing from in steps of size until a page returns fewer than size filings, which marks the end of the result set.

Open in Data Browser

How can I download the entire historical set of portfolio reports for a given month in bulk rather than querying one by one?

Use the bulk download endpoint /bulk/form-nport/YEAR/YEAR-MONTH.jsonl.gz, which returns a gzip-compressed JSONL file containing every N-PORT filing whose filing date (filedAt) falls within that year and month. For example the path /bulk/form-nport/2025/2025-02.jsonl.gz returns all filings from February 2025.

Each line in the decompressed file is the full JSON of one N-PORT filing, with the same structure as a single result from the /form-nport search endpoint, including genInfo, fundInfo, and invstOrSecs. This lets you process a whole month of filings locally instead of paging through search queries one response at a time.

How do I programmatically discover which bulk data files are available and when they were last updated?

Use the bulk index endpoint /bulk/form-nport/index.json, which returns a JSON array describing every available monthly bulk file. Each entry records the file path in key, for example 2025/2025-03.jsonl.gz, which is the path to pass to the /bulk/form-nport/YEAR/YEAR-MONTH.jsonl.gz download endpoint.

Each entry also records when the file was last refreshed in updatedAt, for example 2025-04-03T14:06:34.000Z, and the file size in bytes in size. Reading this index lets an automated process detect which months are available, watch the updatedAt timestamps for changes, and decide which files to download.

How can I compare a fund's holdings across consecutive quarters to see which positions were added, increased, or sold?

Use the /form-nport endpoint and retrieve the same fund's filings over time by searching on its series identifier (filerInfo.seriesClassInfo.seriesId) and sorting by filing date (filedAt). Each filing covers one reporting period, identified by genInfo.repPdDate, so two consecutive reports give you the holdings at two points in time.

To compare them, match holdings between the two invstOrSecs arrays on a stable security identifier, either the CUSIP (invstOrSecs.cusip) or the ISIN (invstOrSecs.identifiers.isin.value). A security present in the later filing but not the earlier one was added, one present earlier but not later was sold, and for securities present in both, comparing the balance held (invstOrSecs.balance) or the value in U.S. dollars (invstOrSecs.valUSD) shows whether the position was increased or reduced.

Open in Data Browser

References

For more information about N-PORT filings visit the SEC websites here: