Dashboard

Structural analysis

GET/api/fund/structure

ETF Pro

Comprehensive structural analysis of a fund's portfolio over time. Includes sector allocation by quarter (SIC-based), industry breakdown, geographic exposure by quarter, balance sheet trajectory, fund classifications (index/active, diversified), short positions, restricted securities, and multi-currency exposure. Sourced from N-PORT holdings joined with SIC classification data and N-CEN census data. Historical depth depends on subscription tier.

Get API key Try it live in the API explorer

Query parameters

Example request

curl 'https://api.stockfit.io/v1/api/fund/structure?symbol=SPY&cik=884394&composite_figi=BBG000BDTBL9' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

Responses

200 OK

Comprehensive structural analysis

Response schema

  • sectorsByQuarter array of object

    Sector allocation by quarter (SIC-based)

    array of:
    • reportDate string
    • sectors array of object
      array of:
      • sector string
      • holdingCount integer
      • totalValue number
      • weight number

        Percentage of mapped portfolio

    • totalHoldings integer

      Total holdings in the portfolio

    • mappedHoldings integer

      Holdings successfully mapped to SIC sectors

  • industries array of object

    Industry breakdown (latest quarter, SIC-based)

    array of:
    • industry string
    • sic string
    • holdingCount integer
    • totalValue number
    • weight number
  • industryGroupsByQuarter array of object

    Industry group allocation by quarter (8 high-value groups derived from SIC codes)

    array of:
    • reportDate string
    • groups array of object
      array of:
      • id string

        Industry group identifier

      • label string

        Industry group label

      • holdingCount integer
      • weight number
  • countriesByQuarter array of object

    Geographic exposure by quarter

    array of:
    • reportDate string
    • countries array of object
      array of:
      • country string

        ISO 2-letter country code

      • holdingCount integer
      • weight number
  • classifications array of object

    Fund classification from N-CEN (index/active, diversified, in-kind, line of credit)

    array of:
    • reportDate string
    • isIndexFund boolean
    • isNonDiversified boolean
    • isInKindEtf boolean
    • hasLineOfCredit boolean
  • balanceSheet array of object

    Balance sheet trajectory from N-PORT

    array of:
    • reportDate string
    • totalAssets number
    • totalLiabilities number
    • netAssets number
  • shortPositions array of object

    Short positions in the portfolio (latest quarter)

    array of:
    • name string
    • ticker string | null
    • valueUsd number
    • weight number
  • currencies array of object

    Multi-currency exposure (latest quarter)

    array of:
    • currency string
    • holdingCount integer
    • weight number

Example response

{
  "sectorsByQuarter": [
    {
      "reportDate": "2025-12-31",
      "sectors": [
        {
          "sector": "Technology",
          "holdingCount": 85,
          "totalValue": 230000000000,
          "weight": 32.5
        }
      ],
      "totalHoldings": 0,
      "mappedHoldings": 0
    }
  ],
  "industries": [
    {
      "industry": "Semiconductor & Related",
      "sic": "3674",
      "holdingCount": 0,
      "totalValue": 0,
      "weight": 0
    }
  ],
  "industryGroupsByQuarter": [
    {
      "reportDate": "2025-12-31",
      "groups": [
        {
          "id": "semiconductor",
          "label": "Semiconductors",
          "holdingCount": 0,
          "weight": 0
        }
      ]
    }
  ],
  "countriesByQuarter": [
    {
      "reportDate": "string",
      "countries": [
        {
          "country": "US",
          "holdingCount": 0,
          "weight": 0
        }
      ]
    }
  ],
  "classifications": [
    {
      "reportDate": "string",
      "isIndexFund": true,
      "isNonDiversified": true,
      "isInKindEtf": true,
      "hasLineOfCredit": true
    }
  ],
  "balanceSheet": [
    {
      "reportDate": "string",
      "totalAssets": 0,
      "totalLiabilities": 0,
      "netAssets": 0
    }
  ],
  "shortPositions": [
    {
      "name": "string",
      "ticker": "string",
      "valueUsd": 0,
      "weight": 0
    }
  ],
  "currencies": [
    {
      "currency": "USD",
      "holdingCount": 0,
      "weight": 0
    }
  ]
}

400 Bad Request

Symbol not found or not a fund (ETF or mutual fund)

Response schema

  • error string

    Human-readable error message

Example response

{}

403 Forbidden

Feature not available on current plan

Response schema

  • error string

    Human-readable error message

Example response

{}