---
title: "SEC Form 13F Holdings Search"
method: POST
path: "/us/sec-13f/holdings-search/v1"
tags: ["United States", "SEC Form 13F"]
---

# SEC Form 13F Holdings Search

`POST /us/sec-13f/holdings-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/us/sec-13f/holdings-search/v1`
- Auth: HTTP bearer

Search the positions institutional managers reported on Form 13F by free text over the issuer and the manager, by CUSIP, manager CIK or CRD, options only, the quarter reported and a minimum position value. Largest first, pages of up to 50. Answers both who holds one security and what one manager holds. Served by Croma (`as_of` says how current the data is).

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Palabras a buscar en los nombres (opcional).
  - `cusip` string: CUSIP del valor, nueve caracteres, p. ej. `037833100` (opcional).
  - `manager_cik` string: CIK del emisor en EDGAR, con o sin ceros a la izquierda (opcional).
  - `manager_crd` string: Número CRD del asesor que administra el fondo (opcional).
  - `put_call` '' | 'PUT' | 'CALL': `PUT` o `CALL` para ver solo posiciones en opciones; vacío incluye todas (opcional).
  - `period_from` string, date: Optional date filter in yyyy-mm-dd format.
  - `period_to` string, date: Optional date filter in yyyy-mm-dd format.
  - `min_value` number: Monto mínimo en dólares (opcional).
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Resultados por página (1-50).

## Response `200`

Successful response

- Sec13fHoldingsSearchResponse
  - `data` Sec13fHoldingsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `cusip` string, nullable, required
    - `manager_cik` string, nullable, required
    - `manager_crd` string, nullable, required
    - `put_call` string, nullable, required
    - `period_from` string, nullable, required
    - `period_to` string, nullable, required
    - `min_value` number, nullable, required
    - `total` number, required: Positions matching the filters, across every page, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required: Pages over `total`; there are more when `total_is_exact` is false.
    - `count` number, required
    - `holdings` object[], required
      - `id` string, required: The filing's accession number and the position's sequence within it, joined by a colon: the key.
      - `accession_number` string, required: The filing that reported the position.
      - `filed_on` string, required: `yyyy-mm-dd` EDGAR accepted the filing.
      - `period` string, required: `yyyy-mm-dd` of the quarter end the position is reported as of.
      - `manager_cik` string, required: The reporting manager's EDGAR Central Index Key, without leading zeros.
      - `manager_name` string, required: The reporting manager's name.
      - `manager_crd` string, nullable, required: The manager's CRD number, when the filing carries one.
      - `issuer_name` string, required: The issuer as the manager spells it, e.g. `APPLE INC`.
      - `cusip` string, required: The security's CUSIP, the key every manager reports the same position under.
      - `figi` string, nullable, required: The security's FIGI, when the manager reported one.
      - `class_title` string, nullable, required: The class of security, e.g. `COM`, `CL A`.
      - `value` number, nullable, required: The position's value, US dollars. Filings before 2023 reported thousands; this is normalized to dollars.
      - `shares` number, nullable, required: Shares or principal amount held.
      - `share_type` string, nullable, required: `SH` for shares, `PRN` for principal amount.
      - `put_call` string, nullable, required: `PUT` or `CALL` when the position is an option, null when it is the security itself.
      - `discretion` string, nullable, required: `SOLE`, `DFND` or `OTR`: who decides on the position.
      - `other_managers` string, nullable, required: The other managers sharing the position, as the table numbers them.
      - `voting_sole` number, nullable, required
      - `voting_shared` number, nullable, required
      - `voting_none` number, nullable, required

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
