---
title: "Fund Holdings"
method: GET
path: "/api/fund-holdings"
---

# Fund Holdings

`GET /api/fund-holdings`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/fund-holdings`
- Auth: none declared

13F holdings for a given fund CIK. `max_holdings` caps the rows returned (1-500, default 50). Rows carry `ticker` (resolved symbol, else null) and `issuer_name`; no `cusip` is served.

## Query parameters

- `cik` string
- `max_holdings` integer

## Response `200`

Successful Response

- FundHoldingsResponse: `GET /api/fund-holdings?cik=…` — 13F holdings for a fund CIK (F4 backfill 2026-05-11). Both branches return {holdings} + optionally {cik, error}; the 400-no-CIK path raises HTTPException (envelope by FastAPI). `changesTotals` carries the quarter-over-quarter change buckets' pre-cut counts and `changesTruncated` whether any bucket was cut to `max_holdings`; both present only when a prior filing exists to diff against. Every holding and change-bucket row carries `name` / `issuer_name` (as filed) and `ticker` (resolved symbol, else null); no `cusip` is served on any row.
  - `cik` string, nullable
  - `holdings` object[], nullable
  - `changesTotals` object, nullable
  - `changesTruncated` boolean, nullable
  - `error` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
