Skip to main content
GET
/
trading
/
accounts
/
{account_id}
/
positions
List positions for an account
curl --request GET \
  --url https://api.bluumfinance.com/v1/trading/accounts/{account_id}/positions \
  --header 'Authorization: Basic <encoded-value>'
[
  {
    "id": "pos_a1b2c3d4e5f6g7h8",
    "account_id": "3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b",
    "symbol": "AAPL",
    "asset_id": "6c5b2403-24a9-4b55-a3dd-5cb1e4b50da6",
    "currency": "USD",
    "quantity": "10.5",
    "average_cost_basis": "175.50",
    "total_cost_basis": "1842.75",
    "current_price": "180.00",
    "market_value": "1890.00",
    "unrealized_pl": "47.25",
    "unrealized_pl_percent": "2.56",
    "last_transaction_at": "2025-01-15T14:30:15Z",
    "created_at": "2025-01-10T10:00:00Z",
    "updated_at": "2025-01-15T14:30:15Z"
  },
  {
    "id": "pos_b2c3d4e5f6g7h8i9",
    "account_id": "3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b",
    "symbol": "MSFT",
    "asset_id": "7d6c3514-35ba-5c66-b4ee-6dc2f5c61eb7",
    "currency": "USD",
    "quantity": "5.0",
    "average_cost_basis": "350.00",
    "total_cost_basis": "1750.00",
    "current_price": "365.50",
    "market_value": "1827.50",
    "unrealized_pl": "77.50",
    "unrealized_pl_percent": "4.43",
    "last_transaction_at": "2025-01-12T11:20:00Z",
    "created_at": "2025-01-08T09:00:00Z",
    "updated_at": "2025-01-15T16:00:00Z"
  }
]

Authorizations

Authorization
string
header
required

HTTP Basic Authentication using the API Key as username and API Secret as password.

Path Parameters

account_id
string<uuid>
required
Example:

"3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b"

Query Parameters

symbol
string

Filter positions by symbol.

non_zero_only
boolean
default:false

Only return positions with non-zero quantity.

refresh_prices
boolean
default:false

When true, fetches live prices from market data providers. Response will include price_source, price_confidence, and price_timestamp fields. Note: This adds latency as it fetches real-time data.

Response

List of positions for the account

id
string<uuid>

Unique identifier for the position.

Example:

"pos_a1b2c3d4e5f6g7h8"

account_id
string<uuid>

Account ID associated with the position.

Example:

"3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b"

symbol
string

The ticker symbol of the asset.

Example:

"AAPL"

asset_id
string<uuid>

Asset ID.

Example:

"6c5b2403-24a9-4b55-a3dd-5cb1e4b50da6"

currency
string

ISO 4217 currency code for the asset's trading currency.

Example:

"USD"

quantity
string

Current quantity owned (can be negative for shorts).

Example:

"10.5"

average_cost_basis
string

Average cost per unit.

Example:

"175.50"

total_cost_basis
string

Total cost basis (quantity * average_cost_basis).

Example:

"1842.75"

current_price
string

Current market price.

Example:

"180.00"

market_value
string

Current market value (quantity * current_price).

Example:

"1890.00"

unrealized_pl
string

Unrealized profit/loss (market_value - total_cost_basis).

Example:

"47.25"

unrealized_pl_percent
string

Unrealized P/L as percentage.

Example:

"2.56"

price_source
enum<string>

Source of the price data. Present when refresh_prices=true.

Available options:
ALPACA,
NAYA,
DATABASE,
UNAVAILABLE
Example:

"ALPACA"

price_confidence
enum<string>

Confidence level of the price data. Present when refresh_prices=true.

Available options:
REAL_TIME,
DELAYED,
END_OF_DAY,
STALE,
UNAVAILABLE
Example:

"REAL_TIME"

price_timestamp
string<date-time>

When the price was recorded by the source. Present when refresh_prices=true.

Example:

"2025-10-18T10:30:00Z"

last_transaction_at
string<date-time> | null

Timestamp of last transaction.

Example:

"2025-10-18T10:30:00Z"

created_at
string<date-time>

Timestamp when the position was created.

Example:

"2025-10-18T10:30:00Z"

updated_at
string<date-time>

Timestamp when the position was last updated.

Example:

"2025-10-18T10:30:00Z"