---
title: "List Holdings"
method: GET
path: "/holdings"
tags: ["Holdings"]
---

# List Holdings

`GET /holdings`

## Request

- Base URL: `https://api.finta.io/v1`
- URL: `https://api.finta.io/v1/holdings`
- Auth: HTTP bearer

Returns investment holdings for a specific bank connection. Holdings include stocks, bonds, ETFs, and other securities. Currently only available for Plaid connections with the Investments product enabled.

## Query parameters

- `bankConnectionId` string, uuid, required
- `accountIds` string
- `limit` integer
- `cursor` string

## Response `200`

List of holdings with securities

- HoldingsListResponse
  - `data` object, required
    - `holdings` Holding[], required: List of holdings
      - `id` string, required: Unique identifier for the holding (format: accountId:securityId)
      - `accountId` string, required: ID of the account this holding belongs to
      - `securityId` string, required: ID of the security. Use this to look up security details in the securities array.
      - `quantity` number, nullable, required: Number of shares/units held
      - `costBasis` number, nullable, required: Total cost basis (original purchase value)
      - `institutionPrice` number, nullable, required: Current price per share as reported by the institution
      - `institutionValue` number, nullable, required: Current total value (quantity * institutionPrice). Null if quantity or price is unavailable.
      - `currency` string, nullable, required: ISO 4217 currency code (e.g., 'USD')
      - `priceAsOf` string, nullable, required: Date of the price quote (ISO 8601 format)
      - `provider` 'Plaid', required: The data provider for this holding (currently only Plaid)
    - `securities` Security[], required: List of securities referenced by the holdings in this response
      - `id` string, required: Unique identifier for the security
      - `symbol` string, nullable, required: Ticker symbol (e.g., 'AAPL', 'VTI')
      - `name` string, nullable, required: Full name of the security
      - `type` string, nullable, required: Security type (e.g., 'equity', 'etf', 'mutual fund', 'fixed income')
  - `meta` object, required
    - `count` integer, required: Number of holdings in this response
    - `totalCount` integer, required: Total number of holdings available
    - `hasMore` boolean, required: Whether more results are available
    - `nextPage` string, nullable, required: URL to fetch the next page of results. Null if no more results are available.

## Other responses

- `400`: Bad request - Invalid query parameters
- `401`: Unauthorized - missing, invalid, disabled or expired API key
- `403`: API access requires active pro subscription or trial
- `404`: Bank connection not found
- `429`: Rate limit exceeded - retry after the `retryAfter` timestamp
- `500`: Internal server error. Failures during authentication return MiddlewareErrorResponse; failures inside the endpoint return ErrorResponse.
- `502`: Provider service unavailable

---

[API](https://skmtc.dev/finta/apis/finta-api.md) · [All operations](https://skmtc.dev/finta/apis/finta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/finta/apis/finta-api/revisions/80b98582afde?raw)
