---
title: "Portfolio changes"
method: GET
path: "/api/fund/changes"
tags: ["ETF/MF"]
---

# Portfolio changes

`GET /api/fund/changes`

![ETF](https://img.shields.io/badge/ETF-14b8a6) ![Pro](https://img.shields.io/badge/Pro-8b5cf6)

Compares the two most recent N-PORT filings and returns holdings that were added, removed, or significantly reweighted (>0.05% portfolio weight change). Useful for tracking portfolio manager decisions and rebalancing activity.

Positions are aggregated per security before comparison, so a holding a fund reports across several lines (separate lots, option strikes) counts once, with its weights summed.

## Query parameters

- `symbol` string
- `cik` integer
- `cusip` string
- `composite_figi` string
- `share_class_figi` string

## Response `200`

Portfolio changes between the two most recent quarters

- object
  - `latestDate` string — Most recent report date
  - `previousDate` string — Previous report date
  - `added` EtfChange[] — Holdings newly added to the portfolio
    - `changeType` 'added' | 'removed' | 'reweighted' — Type of change
    - `cusip` string, nullable — CUSIP identifier
    - `name` string — Holding name
    - `pctVal` number, nullable — Current portfolio weight percentage
    - `valueUsd` number, nullable — Current USD value
    - `balance` number, nullable — Current share count
    - `prevPctVal` number, nullable — Previous portfolio weight percentage
    - `prevValueUsd` number, nullable — Previous USD value
    - `prevBalance` number, nullable — Previous share count
    - `mappedSymbol` string, nullable — Mapped ticker symbol (if available)
  - `removed` EtfChange[] — Holdings removed from the portfolio
    - `changeType` 'added' | 'removed' | 'reweighted' — Type of change
    - `cusip` string, nullable — CUSIP identifier
    - `name` string — Holding name
    - `pctVal` number, nullable — Current portfolio weight percentage
    - `valueUsd` number, nullable — Current USD value
    - `balance` number, nullable — Current share count
    - `prevPctVal` number, nullable — Previous portfolio weight percentage
    - `prevValueUsd` number, nullable — Previous USD value
    - `prevBalance` number, nullable — Previous share count
    - `mappedSymbol` string, nullable — Mapped ticker symbol (if available)
  - `reweighted` EtfChange[] — Holdings with significant weight changes (>0.05%)
    - `changeType` 'added' | 'removed' | 'reweighted' — Type of change
    - `cusip` string, nullable — CUSIP identifier
    - `name` string — Holding name
    - `pctVal` number, nullable — Current portfolio weight percentage
    - `valueUsd` number, nullable — Current USD value
    - `balance` number, nullable — Current share count
    - `prevPctVal` number, nullable — Previous portfolio weight percentage
    - `prevValueUsd` number, nullable — Previous USD value
    - `prevBalance` number, nullable — Previous share count
    - `mappedSymbol` string, nullable — Mapped ticker symbol (if available)

## Other responses

- `400` — Symbol not found or not a fund (ETF or mutual fund)
- `403` — Feature not available on current plan

---

[API](https://skmtc.net/stockfit/apis/stockfit-api.md) · [All operations](https://skmtc.net/stockfit/apis/stockfit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stockfit/stockfit-api/revisions/3d5897270d8a/schema)
