Skip to main content

Asset Data

The asset endpoint returns per-symbol reference data, including margin requirements and the marginable, shortable, easy-to-borrow, and fractionable flags. It reads through to your connected broker; UTM does not cache asset records.

Endpoint

GET /api/v1/assets/{symbol}
ItemValue
Scopetrading:read
AuthJWT or a connected-app token holding trading:read
SymbolPath parameter, case-insensitive (e.g. AAPL)
accountIdOptional query parameter (UUID) to choose the account

Broker support

This data comes from the broker, so you must have a connected broker that supports asset lookup.

BrokerSupportedNotes
AlpacaYesSource of the margin requirement and marginability data
TradeStationNoThe Brokerage API has no per-symbol margin endpoint

When you omit accountId, UTM uses your first connected account whose broker supports asset lookup. If you have no such account, the endpoint returns 400 with code NO_ASSET_LOOKUP_ACCOUNT. If you pass an accountId for a broker that does not support asset lookup, it returns 400 with code ASSET_LOOKUP_NOT_SUPPORTED.

Response

{
"asset": {
"symbol": "AAPL",
"name": "Apple Inc. Common Stock",
"exchange": "NASDAQ",
"assetClass": "us_equity",
"status": "active",
"tradable": true,
"marginable": true,
"shortable": true,
"easyToBorrow": true,
"fractionable": true,
"maintenanceMarginRequirement": 30,
"marginRequirementLong": 30,
"marginRequirementShort": 30
},
"capabilities": {
"supportsAssetLookup": true
}
}

Margin requirement fields

The three margin fields are percentages of market value. A maintenanceMarginRequirement of 30 means the broker holds 30% of the position value as maintenance margin. A field is null when the broker did not report it for that symbol, which you can tell apart from a reported zero.

For US equities, Alpaca's published maintenance schedule maps to these values:

SecurityLong maintenance margin
Stock over $6.0030%
Stock $2.50 to $6.0050%
Stock under $2.50100%
2x leveraged ETF50%
3x leveraged ETF75%

The endpoint returns the broker's per-symbol figure. Account-level rules (for example, the concentration surcharge on a single position over 70% of equity) are applied by the broker against your account and are not reflected in this per-symbol value.

Errors

StatusCodeMeaning
400NO_ASSET_LOOKUP_ACCOUNTNo connected broker supports asset lookup
400ASSET_LOOKUP_NOT_SUPPORTEDThe chosen account's broker has no asset endpoint
400(validation)The symbol failed validation
403INSUFFICIENT_SCOPESThe token is missing trading:read
404ASSET_NOT_FOUNDThe broker has no asset for that symbol
409(credential)The broker connection has missing or bad credentials
502The broker request failed