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.

ValueDescription
STOCKEquities and stock instruments (e.g., AAPL, MSFT)
FOREXForeign exchange currency pairs (e.g., EUR/USD, GBP/JPY)
CRYPTOCryptocurrency pairs (e.g., BTC/USD, ETH/USD)
FUTURESFutures 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 ClassFormatExamples
StocksTicker symbolAAPL, MSFT, GOOGL
ForexBase/QuoteEUR/USD, GBP/JPY, USD/CHF
CryptoBase/QuoteBTC/USD, ETH/USD, SOL/USDT
FuturesContract codeES, 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

FieldTypeDescription
symbolstringSymbol in canonical format (e.g., "AAPL", "EUR/USD")
asset_classAssetClassAsset classification (STOCK, FOREX, CRYPTO, FUTURES)
min_quantitystringMinimum order quantity in base units
quantity_stepstringQuantity step size (lot size)
tradeablebooleanWhether the symbol is currently tradeable

Optional Fields

FieldTypeDescription
base_currencystringBase currency for pairs (e.g., "EUR" in EUR/USD)
quote_currencystringQuote currency for pairs (e.g., "USD" in EUR/USD)
min_price_incrementstringMinimum price increment (tick size)
max_quantitystringMaximum order quantity
margin_requirementstringInitial margin as decimal (e.g., "0.10" for 10%)
contract_sizestringContract 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:

  1. Quantity: Must be >= min_quantity and divisible by quantity_step
  2. Price: Must be divisible by min_price_increment (for limit orders)
  3. Max quantity: If max_quantity is 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