developers:apiv2:pricing

This is an old revision of the document!


Prices, Volumes & Data Types

Two wrapper types carry exact numbers as strings:

message Price   { string value = 1; }   // e.g. "4200.50"
message Decimal { string value = 1; }   // e.g. "1.50"

T4 uses text to avoid binary floating-point rounding. Parse them into your language's native decimal type, not a double. Price is used for market/order prices; Decimal is used for order volumes and cash values.

  • Order routing — volumes (volume, max_show, max_volume, fill volumes) are Decimal. This allows the API to support fractional exchange quantities (e.g. Kalshi).
  • Market data — depth and trade volumes are plain integers (int32).

T4 publishes prices in different formats. The setting controls how prices are formatted in the trading and all other platform API's (chart's, etc.)

If you expect ES to look like 5954.75 instead of 595475, choose Real.

Set PriceFormat on LoginRequest to choose how Price strings are formatted:

PriceFormat Description Example (ES)
PRICE_FORMAT_REAL Human-readable decimal placement used by most trading UIs.
5954.75
PRICE_FORMAT_DECIMAL Raw exchange representation, without UI-friendly decimal placement.
595475
PRICE_FORMAT_CLEARING_DECIMAL Typically used for data imports and exports only.
595475

See System Price Format for more information.

  • min_price_increment (in MarketDetails) is the tick — the smallest valid price step. e.g. tick 25 → …, 4000.00, 4025.00, 4050.00, …
  • point_value (in MarketDetails) converts a price move to cash: (price2 − price1) × point_value. e.g. 4200.00→4225.00 at point_value 0.5 = 12.50 per contract.
  • Timestampsgoogle.protobuf.Timestamp (UTC). Heartbeat.timestamp is UTC epoch milliseconds.
  • Datestrade_date and similar are int64 date values.
  • Idsexchange_id, contract_id, market_id, account_id, user_id are strings, obtained from login and the Instruments API.
  • developers/apiv2/pricing.1788819780.txt.gz
  • Last modified: 2026/09/07 22:23
  • by chad