Build with the AI Skill
Trade ItTrade ItDocs
Accounts

Get holdings

POST /api/tool/execute

Returns normalized holdings for one of the authenticated user's connected brokerage accounts.

OAuth scopes: brokerage:read, tool:execute

Plan: Trade It Pro

Returns: Holding[]

Request body

tool_name*string

Selects this API operation.

get_holdings

Parameters for this operation.

account_id*number | string

ID of the brokerage account to inspect, from get_accounts.

refreshboolean

When true, requests the freshest available brokerage data. Real-time refresh requires a Pro plan and has a 1 minute per-account cooldown. Omit or false to return the last synced data.

Example request

curl https://api.tradeit.app/api/tool/execute \
  --request POST \
  --header "Authorization: Bearer $TRADE_IT_ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "tool_name": "get_holdings",
    "params": {
      "account_id": 304,
      "refresh": true
    }
  }'

Example response

200 OK

[
  {
    "key": "equity:NET",
    "symbol": "NET",
    "display_symbol": "NET",
    "quantity": 0.024277,
    "average_price": { "amount": 2, "currency": "USD" },
    "average_unit_cost": { "amount": 82.38, "currency": "USD" },
    "description": "Cloudflare, Inc.",
    "type": 2,
    "instrument_kind": "equity",
    "market_price": { "amount": 191.42, "currency": "USD" },
    "market_value": { "amount": 4.65, "currency": "USD" },
    "unrealized_pnl": { "amount": 2.65, "currency": "USD" },
    "unrealized_pnl_percent": 132.5,
    "price_kind": "brokerage",
    "price_as_of": "2026-03-17T14:20:00.000Z",
    "delayed": false
  },
  {
    "key": "option:AMZN 260116C00295000",
    "symbol": "AMZN 260116C00295000",
    "display_symbol": "AMZN Jan 16 2026 $295 Call",
    "quantity": 1,
    "average_price": { "amount": 1, "currency": "USD" },
    "average_unit_cost": { "amount": 1, "currency": "USD" },
    "type": 2,
    "instrument_kind": "option",
    "option_symbol": "260116C00295000",
    "underlying_symbol": "AMZN",
    "multiplier": 100
  }
]

Note

The response is an array, not the { "results": [...] } shape used by the older account holdings route. Enrichment fields can be absent or null when a brokerage does not supply them.

On this page