Instrument Types
This reference documents all instrument-related types in the Trading API, including asset classes, symbol formats, and trading specifications.
Enums
AssetClass
The asset class categorizes the type of instrument being traded.
| Value | Description |
|---|---|
STOCK | Equities and stock instruments (e.g., AAPL, MSFT) |
FOREX | Foreign exchange currency pairs (e.g., EUR/USD, GBP/JPY) |
CRYPTO | Cryptocurrency pairs (e.g., BTC/USD, ETH/USD) |
FUTURES | Futures contracts |
Symbol Format
Symbols use a canonical format that's consistent across all providers. The unified Trading API normalizes provider-specific formats automatically.
Format by Asset Class
| Asset Class | Format | Examples |
|---|---|---|
| Stocks | Ticker symbol | AAPL, MSFT, GOOGL |
| Forex | Base/Quote | EUR/USD, GBP/JPY, USD/CHF |
| Crypto | Base/Quote | BTC/USD, ETH/USD, SOL/USDT |
| Futures | Contract code | ES, NQ, CL |
Currency Pairs
For forex and crypto pairs, the format is BASE/QUOTE:
- Base currency: The currency being bought or sold
- Quote currency: The currency used to price the base
For example, in EUR/USD:
- EUR is the base currency
- USD is the quote currency
- A price of 1.0850 means 1 EUR = 1.0850 USD
SymbolInfo Schema
Trading specifications for an instrument returned from the GET /symbol/{symbol} endpoint.
Required Fields
| Field | Type | Description |
|---|---|---|
symbol | string | Symbol in canonical format (e.g., "AAPL", "EUR/USD") |
asset_class | AssetClass | Asset classification (STOCK, FOREX, CRYPTO, FUTURES) |
min_quantity | string | Minimum order quantity in base units |
quantity_step | string | Quantity step size (lot size) |
tradeable | boolean | Whether the symbol is currently tradeable |
Optional Fields
| Field | Type | Description |
|---|---|---|
base_currency | string | Base currency for pairs (e.g., "EUR" in EUR/USD) |
quote_currency | string | Quote currency for pairs (e.g., "USD" in EUR/USD) |
min_price_increment | string | Minimum price increment (tick size) |
max_quantity | string | Maximum order quantity |
margin_requirement | string | Initial margin as decimal (e.g., "0.10" for 10%) |
contract_size | string | Contract size for derivatives (e.g., "100" for options) |
Examples
Stock SymbolInfo
{
"symbol": "AAPL",
"asset_class": "STOCK",
"min_quantity": "1",
"quantity_step": "1",
"tradeable": true,
"min_price_increment": "0.01"
}
Forex SymbolInfo
{
"symbol": "EUR/USD",
"asset_class": "FOREX",
"min_quantity": "1000",
"quantity_step": "1000",
"tradeable": true,
"base_currency": "EUR",
"quote_currency": "USD",
"min_price_increment": "0.00001",
"margin_requirement": "0.02"
}
Crypto SymbolInfo
{
"symbol": "BTC/USD",
"asset_class": "CRYPTO",
"min_quantity": "0.0001",
"quantity_step": "0.0001",
"tradeable": true,
"base_currency": "BTC",
"quote_currency": "USD",
"min_price_increment": "0.01",
"max_quantity": "100"
}
Quantity and Price Constraints
When placing orders, ensure quantities and prices conform to the symbol's specifications:
- Quantity: Must be >=
min_quantityand divisible byquantity_step - Price: Must be divisible by
min_price_increment(for limit orders) - Max quantity: If
max_quantityis specified, order quantity must not exceed it
Example Validation
For EUR/USD with min_quantity: "1000" and quantity_step: "1000":
- ✅
1000- Valid (meets minimum, divisible by step) - ✅
5000- Valid (divisible by step) - ❌
500- Invalid (below minimum) - ❌
1500- Invalid (not divisible by step)
Related Types
- Order Types - Place orders using symbols
- Position Types - Track holdings by symbol