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}
| Item | Value |
|---|---|
| Scope | trading:read |
| Auth | JWT or a connected-app token holding trading:read |
| Symbol | Path parameter, case-insensitive (e.g. AAPL) |
accountId | Optional 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.
| Broker | Supported | Notes |
|---|---|---|
| Alpaca | Yes | Source of the margin requirement and marginability data |
| TradeStation | No | The 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:
| Security | Long maintenance margin |
|---|---|
| Stock over $6.00 | 30% |
| Stock $2.50 to $6.00 | 50% |
| Stock under $2.50 | 100% |
| 2x leveraged ETF | 50% |
| 3x leveraged ETF | 75% |
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
| Status | Code | Meaning |
|---|---|---|
| 400 | NO_ASSET_LOOKUP_ACCOUNT | No connected broker supports asset lookup |
| 400 | ASSET_LOOKUP_NOT_SUPPORTED | The chosen account's broker has no asset endpoint |
| 400 | (validation) | The symbol failed validation |
| 403 | INSUFFICIENT_SCOPES | The token is missing trading:read |
| 404 | ASSET_NOT_FOUND | The broker has no asset for that symbol |
| 409 | (credential) | The broker connection has missing or bad credentials |
| 502 | The broker request failed |