.NET

Models

Response data models in the .NET SDK

All models live in the SsiSdk.Models namespace as sealed class (or record) types with auto-properties:

using SsiSdk.Models;

General conventions since 3.3.x: money and prices are decimal (never double); a field the server may omit is nullable (int?, decimal?, string?) and is null when absent.

Authentication

Token

FieldTypeDescription
AccessTokenstringAccess token (a credential, never log it)
TokenTypestringToken type (default "Bearer")
ExpiresAtlongAccess token expiry, epoch seconds. 0 means unknown (treated as expired)
RefreshTokenstringRefresh token (a credential)
RefreshTokenExpiresAtlongRefresh token expiry, epoch seconds. 0 means unknown
EffectiveExpiresAtlong (read-only)The earliest known expiry of the two tokens, or 0 if neither is known
CanRefreshbool (read-only)Whether the refresh token can be used to renew

Token.ToString() masks AccessToken and RefreshToken.

OtpResponse

Result of RequestOtpTypedAsync().

FieldTypeDescription
MessagestringMessage from the server
TransactionIdstring?Smart OTP transaction id used to poll for approval, when the server issues one (null otherwise)

Account

Account

FieldTypeDescription
AccountNostringAccount number
AccountTypestring?An AccountType value ("Cash", "Margin", "Derivative"); the raw text if the type is not recognised; null when absent

Market Data

OhlcData

FieldTypeDescription
SymbolstringTicker symbol
TradingDatestringTrading date
OpenPricedecimalOpen price
HighPricedecimalHigh price
LowPricedecimalLow price
ClosePricedecimalClose price
VolumeintVolume
ValuedecimalTraded value

MarketIndexes

FieldTypeDescription
IndexstringIndex code
IndexNamestringIndex name
Boardstring?Board, as sent by the server (null when empty)

MarketIndexSummary

FieldTypeDescription
IndexstringIndex code
BoardstringBoard
TradingDatestringTrading date
IndexValuedecimalIndex value
IndexChangedecimalChange
IndexChangePercentdecimalChange (%)
TotalTradeintTotal traded volume
TotalTradeValuedecimalTotal traded value
TotalAdvanceStockintAdvancing stocks
TotalDeclineStockintDeclining stocks
TotalSteadyStockintUnchanged stocks
TotalMatchintTotal matched volume
TotalMatchValuedecimalTotal matched value
TotalDealintTotal put-through volume
TotalDealValuedecimalTotal put-through value
TotalCeilingStockintStocks at ceiling
TotalFloorStockintStocks at floor
TotalPropBuy / TotalPropSellintProprietary buy / sell volume
TotalPropBuyValue / TotalPropSellValuedecimalProprietary buy / sell value
TotalBuyForeign / TotalSellForeigndecimal?Foreign buy / sell volume
TotalBuyForeignValue / TotalSellForeignValuedecimal?Foreign buy / sell value
NetPurchasesForeignVolume / NetPurchasesForeignValuedecimal?Foreign net buy volume / value

SecuritiesInfo

FieldTypeDescription
SymbolstringTicker symbol
Boardstring?Board
IndexstringIndex
SymbolNameVistringVietnamese name
SymbolNameEnstringEnglish name
LotSizeint?Lot size (null when the server omits it)
ListedSharesint?Listed shares (null when the server omits it)
IcbCode / IcbNamestring?ICB industry code / name
MaturityDatestring?Maturity date
FirstTradingDate / LastTradingDatestring?First / last trading date
CwUnderlyingSymbolstring?CW underlying symbol
CwExercisePrice / CwExecutionRatiodecimal?CW exercise price / ratio
IIndexdecimal?I-index
INavdecimal?iNAV
OpenInterestdecimal?Open interest
SettlementPricedecimal?Settlement price
StockTypestring?Security type

SecuritiesSummary

FieldTypeDescription
SymbolstringTicker symbol
TradingDatestringTrading date
PriceChange / PriceChangePercentdecimalPrice change / price change (%)
OpenPrice / HighPrice / LowPrice / ClosePricedecimalOpen / high / low / close
AveragePricedecimalAverage price
TotalMatch / TotalMatchValueint / decimalMatched volume / value
TotalBuy / TotalTradeBuyint / decimalBuy volume / value
TotalSell / TotalTradeSellint / decimalSell volume / value
TotalForeignBuy / TotalForeignSellintForeign buy / sell volume
TotalForeignBuyValue / TotalForeignSellValuedecimalForeign buy / sell value
RemainForeignRoom / TotalForeignRoomintRemaining / total foreign room
TotalDeal / TotalDealValueint / decimalPut-through volume / value
OpenInterest / SettlementPricedecimalOpen interest / settlement price
Ceiling / Floor / RefPricedecimal?Ceiling / floor / reference price

MasterData

FieldTypeDescription
Boardstring?Board
SymbolstringTicker symbol
TradingDatestringTrading date
CeilingdecimalCeiling price
FloordecimalFloor price
RefPricedecimalReference price

CorporateAction

Every field is a string exactly as the server sends it: dates stay YYYY/MM/DD text and Ratio is not parsed, because its meaning depends on the event type. A field the server leaves blank or omits is "" (not null).

FieldTypeDescription
SymbolstringTicker symbol
EventTitlestringEvent title
ExrightDatestringEx-rights date
RecordDatestringRecord date
IssueDatestringIssue date
ExchangestringExchange
RatiostringRatio

Returned by GetCorporateActionsAsync and GetCorporateActionsHistoricalAsync (section 3.7 of API Services).

DownloadData is no longer part of the SDK: the Download* methods throw NotImplementedException.

Portfolio

EquityAccountBalance

FieldTypeDescription
AccountNostringAccount number
AccountBalancedecimalAccount balance (available cash)
TotalDebtdecimalTotal debt
InterestLoandecimalLoan interest
OverdueFeeLoandecimalOverdue loan fee
WithdrawabledecimalWithdrawable cash
OnHoldCashdecimalCash on hold
SellUnmatched / BuyUnmatcheddecimalUnmatched sell / buy amount
SellT0 / SellT1 / SellT2decimalSell amount T0 / T1 / T2
BuyT0 / BuyT1 / BuyT2decimalBuy amount T0 / T1 / T2
AdvanceCashT0 / AdvanceCashT1decimalCash advance T0 / T1
HoldSubscriptiondecimalCash held for subscription
DividenddecimalDividend

DerivativeAccountBalance

FieldTypeDescription
AccountNostringAccount number
AccountBalancedecimalAccount balance
Fee / Commission / Interest / ExtInterestdecimalFee / commission / interest
LoandecimalLoan
DeliveryAmountdecimalDelivery amount
FloatingPL / TradingPL / TotalPLdecimalFloating / trading / total P&L
WithdrawabledecimalWithdrawable amount
CashSSI / ValidNonCashSSI / WithdrawableSSIdecimalCash / valid non-cash assets / withdrawable (SSI)
CashVSDC / ValidNonCashVSDC / WithdrawableVSDCdecimalSame, at VSDC

CashWithdrawableSSI and CashWithdrawableVSDC are old names marked [Obsolete]; use WithdrawableSSI and WithdrawableVSDC.

EquityPosition

FieldTypeDescription
AccountNostringAccount number
SymbolstringTicker symbol
QuantityintTotal quantity
SellableQuantityintSellable quantity
CostPricedecimalCost price
BuyingQuantity / SellingQuantityintQuantity being bought / sold
BoughtQuantity / SoldQuantityintQuantity bought / sold
MortgageQuantityintMortgaged quantity
BlockQuantityintBlocked quantity
DividendQuantityintDividend quantity
T1SellQuantity / T2SellQuantityintT1 / T2 sell quantity
T1BuyQuantity / T2BuyQuantityintT1 / T2 buy quantity
RestrictedQuantityintRestricted quantity

DerivativePosition

FieldTypeDescription
AccountNostringAccount number
SymbolstringContract code
Long / Short / NetintLong / short / net position
BidAvgPrice / AskAvgPricedecimalAverage buy / sell price
TradePricedecimalTrade price
FloatingPL / TradingPLdecimalP&L

AllDerivativePosition

FieldTypeDescription
OpenPositionsList<DerivativePosition>Open positions
ClosedPositionsList<DerivativePosition>Closed positions
AccountNostringAccount number

Position

Positions of one account; a part the server did not return is null.

FieldTypeDescription
EquityList<EquityPosition>?Equity positions
DerivativeAllDerivativePosition?Derivative positions

Order

FieldTypeDescription
AccountNostringAccount number
ClientRequestIdstringClient request ID
OrderIdstringOrder ID
SymbolstringTicker symbol
Sidestring?"B" / "S"; the raw text if not recognised; null when absent
OrderTypestring?Order type (see OrderType); the raw text if not recognised; null when absent
PricedecimalOrder price; 0 when the order has no numeric price (see PriceMarker)
PriceMarkerstring?The price word the server sent instead of a number (for example "ATO", "MP"); null for a numeric price
AvgPricedecimalAverage matched price
QuantityintOrdered quantity
OsQuantityint?Outstanding quantity (null when the server omits it)
FilledQuantityintFilled quantity
CancelQuantityintCancelled quantity
Statusstring?Status code (see OrderStatus); the raw text if not recognised; null when absent
InputTime / ModifyTimestringInput / modify time
MessagestringMessage

OrderBook

The orders of an account plus the total record count reported by the server.

FieldTypeDescription
OrdersList<Order>Orders
TotalOrdersintTotal records

EquityPPMMR / DerivativePPMMR

These two models carry many detailed margin metrics (margin ratio, limits, collateral, ...), all decimal. The most commonly used fields:

FieldTypeDescription
AccountNostringAccount number
PurchasingPower (EquityPPMMR)decimalPurchasing power
WithdrawabledecimalWithdrawable cash/assets
MarginRatio (EquityPPMMR)decimalMargin ratio
TotalEquitydecimalTotal net equity
AccountBalancedecimalAccount balance

Trading Responses

PlaceOrderResponse

OrderId, ClientRequestId, Status: all string.

ModifyOrderResponse

ClientModifyId, OrderId, ClientRequestId, Status: all string.

CancelOrderResponse

ClientCancelId, OrderId, ClientRequestId, Status: all string.

MaxBuySellResponse

FieldTypeDescription
AccountNostringAccount number
SymbolstringTicker symbol
MaxBuyQuantityintMaximum buy quantity
MaxSellQuantityintMaximum sell quantity
MarginRatiostring?Margin ratio
PurchasingPowerlong?Purchasing power (VND); null when the server does not return it

PurchasePower (a string) is the old name, marked [Obsolete]; use PurchasingPower.

Batch Order Models

The models used by PlaceBatchOrdersAsync and CancelBatchOrdersAsync (REST) and by batch over the Trading WebSocket. The methods, limits, behaviour and examples are in section 5.6 of API Services; this page only lists the structures.

The per-batch order limit is Config.MaxBatchOrders (default 20). The API reference states a server-side limit of 50, which has not been checked against a live server; raising MaxBatchOrders is the caller's decision.

BatchPlaceOrderItem

A record with the same parameters as PlaceOrderAsync.

PropertyTypeRequiredDescription
AccountNostringYesTrading account. Orders in one batch may belong to different accounts, but the API Key must be granted access to all of them.
SymbolstringYesTicker symbol
SidestringYesOrderSide.Buy ("B") or OrderSide.Sell
QuantityintYesQuantity, must be greater than 0
Pricedecimal?YesPrice, must not be negative. null is sent as "0" for market-type orders. Required for OrderType.LO and OrderType.PLO.
OrderTypestringYesOrderType.LO, OrderType.ATO, OrderType.ATC, OrderType.MP, ...
ClientRequestIdstring?NoYour own order id, 1 to 20 characters. If null, the SDK generates one.

BatchCancelOrderItem

PropertyTypeRequiredDescription
AccountNostringYesTrading account
OrderIdstring?One of the twoSystem-generated order id
ClientRequestIdstring?One of the twoThe ClientRequestId you used when placing the order

Each cancel item needs exactly one of OrderId or ClientRequestId, otherwise ValidationException is thrown.

BatchOrderResponse

PropertyTypeDescription
BatchRequestIdstringBatch id returned
ResultsList<BatchOrderResult>One element per order, in the same order as the request

BatchOrderResult

PropertyTypeDescription
ClientRequestIdstringThe order id you sent, or the generated one
OrderIdstringSystem order id (when accepted)
StatusstringOrder status after the request (orderStatus)
Successbooltrue if the order was accepted for processing
ErrorCodestringError code of this order when Success is false
ErrorMessagestringError description of this order when Success is false
ClientCancelIdstringCancel id, in cancel results

Always check Success on every element of Results: a rejected order does not throw an exception.

Conditional Orders (FCO)

FcoPrice

The price field of a conditional order: a number (100.5m, 25000) or an order-type word ("MP", OrderType.MTL). A string is sent verbatim. There are implicit conversions from decimal, int, long and string. With a market word (ATO, ATC, MTL, MP, MOK, MAK) the price slip is not applied.

FCOPlaceResponse

Result of placing a conditional order: FCOID (string).

FCOCancelResponse

Result of cancelling a conditional order: FCOID (string).

FCOListResponse

List of conditional orders (paged).

FieldTypeDescription
PageIndexintCurrent page
PageSizeintPage size
ItemsCountintTotal records
PagesCountintTotal pages
FCOListList<FCOInfo>List of FCO orders

FCOInfo

Details of one conditional order.

FieldTypeDescription
FCOIDstringFCO order id
ClientIDstringUsername / Client ID
AccountNostringAccount number
QuantityintOrdered quantity
PricestringOrder price
PriceSlipdecimal?Price slip
SymbolstringTicker symbol
Typestring?Conditional order type (see FCOType)
FromDatestringEffective from
ToDatestringEffective until
MatchedQuantityintMatched quantity
IsPlaceOrderboolWhether the order has been sent to the order book
Statusstring?FCO status (see FCOStatus)
DetailstringStatus detail
ParamsFCOParams?Trigger parameters of the FCO order
OrderTypestring?Order type

FCOParams

Trigger parameters of a conditional order. A value that is not set is null.

FieldTypeDescription
StopPricedecimal?Stop / trigger price
Sidestring?Order side (Buy/Sell)
ActivePricedecimal?Activation price (Trailing Stop)
TrailingAmountdecimal?Trailing amount
TPActivePricedecimal?Take Profit activation price
SLActivePricedecimal?Stop Loss activation price
TPPricestring?Take Profit price
SLPricestring?Stop Loss price
TPSlipdecimal?Take Profit slip
SLSlipdecimal?Stop Loss slip
Operatorstring?Comparison operator that triggers the order (see FCOOperator). The server may return a number 0..4 in responses; the SDK maps it back to the name

FCOOrderBookResponse

FCO matching log (paged).

FieldTypeDescription
PageIndexintCurrent page
PageSizeintPage size
ItemsCountintTotal records
PagesCountintTotal pages
OrderBookList<FCOOrder>FCO order log

FCOOrder

Execution log of an FCO order.

FieldTypeDescription
FCOIDstringParent FCO id
AccountNostringAccount number
QuantityintQuantity
PricestringOrder price
SymbolstringTicker symbol
Sidestring?Order side
OrderTypestring?Child order type
IsMainOrderboolIs the main order
IsAttachedOrderboolIs an attached order
CreatedTime / UpdatedTimestringCreated / updated time
UniqueIDstringUnique id
OrderIDstringOrder id on the exchange
MatchedQuantityintMatched quantity
OSQuantityintOutstanding quantity
AvgPricedecimalAverage matched price
Statusstring?Child order status
DetailstringDetail
Typestring?Conditional order type

FCOStatusHistoryItem

One status transition of an FCO order.

FieldTypeDescription
StatestringState
TimestringTime
Codestring?Code
DetailstringDetail

Streaming Models

Streaming messages are sealed class types in SsiSdk.Models. They arrive through SetOnData / OnData (market data) and SetOnTrading (trading events) typed as object: check the type with pattern matching. A frame the SDK has no model for stays a raw JsonElement. How to subscribe is covered in section 6 of API Services.

The parser picks the model from the topic of a data frame:

TopicModel
trade.index.CODEIndexTickMessage
trade.index.CODE@1m / @5mIntervalMessage
trade.CODETradeMessage
trade.CODE@1m / @5mIntervalMessage
quote.CODEQuoteMessage
room.CODEForeignRoomMessage
indexsummary.CODEIndexSummaryMessage
market.flagMarketFlagMessage
market.* (has s, ce, fl or ref)MarketDataMessage
market.* (otherwise)MarketStatusMessage
put.CODEPutMessage
oddlot.CODEOddLotMessage

Trading events are chosen by eventType: orderEvent is OrderStatusMessage, orderMatchEvent is OrderMatchMessage, clientPortfolioEvent is PortfolioMessage, fcoEvent is FCOOrderUpdateMessage. When there is no eventType, an order.* topic is treated as OrderStatusMessage and portfolio.* as PortfolioMessage.

Unconfirmed: the SDK only maps server keys to properties. The exact meaning of each tick field (units, whether it is cumulative over the session, for example Value, TotalMatchQuantity, and the Open/High/Low/Avg fields of TradeMessage) has not been confirmed against a live server. Use Raw or Data when you need to cross-check, and do not base critical logic on them before verifying.

HeartbeatMessage

Method, Channel, Status, Message: all string.

TradeMessage

FieldTypeServer keyDescription
TypestringData type
TradingTimestringtTrading time
SymbolstringsTicker symbol
PricedecimalpMatched price
QuantityintqMatched quantity
SidestringsiMatch side; defaults to "U" when the server omits it
TotalVolumeintvTotal volume
Open / High / Low / Avgdecimal?o, h, l, anull when the server omits them

IndexTickMessage

The tick of the index itself, from trade.index.CODE.

PropertyTypeServer keyDescription
TypestringMessage type (trade)
SymbolstringsIndex code
BoardstringbBoard
StatusstringssIndex status
TradingTimestringtTrading time
Valuedecimal?vIndex value
Changedecimal?cChange (points)
ChangePercentdecimal?crChange (%)
Advancesdecimal?advAdvancing stocks
Declinesdecimal?decDeclining stocks
NoChangedecimal?ncUnchanged stocks
Ceilingsdecimal?ceStocks at ceiling
Floorsdecimal?flStocks at floor
TotalMatchValuedecimal?tmvMatched value
TotalMatchQuantitydecimal?tmqMatched quantity
TotalPutValuedecimal?tvpPut-through value
TotalPutQuantitydecimal?tqpPut-through quantity
TotalQuantitydecimal?tqTotal quantity
TotalValuedecimal?tvTotal value
RawDictionary<string, JsonElement>The payload exactly as the server sent it

Numeric fields are null when the server omits them. Use Raw for keys the SDK does not map. The "Description" column is the SDK's naming and is not confirmed against the server (see the note at the top of this section).

IntervalMessage

A candle, from trade.CODE@1m / @5m or trade.index.CODE@1m / @5m.

PropertyTypeServer keyDescription
TypestringMessage type (trade)
IntervalTimestringstCandle start time
TradingTimestringtTrading time
SymbolstringsSymbol
Open, High, Low, Closedecimalo, h, l, cCandle prices
VolumeintvVolume

IndexSummaryMessage

From indexsummary.CODE.

MemberTypeDescription
IndexstringIndex code, upper case
DataDictionary<string, JsonElement>The fields exactly as the server sent them (not mapped to typed properties)
Get(params string[] keys)JsonElement?The first key present in Data, or null

The API reference lists the index summary keys: s, b, ss, t, v, c, cr, adv, dec, nc, ce, fl, tmv, tmq, tvp, tqp, tq, tv, with the same meaning as in the tick table above. tq equals tmq plus tqp, and tv equals tmv plus tvp.

stream.Streaming.OnIndexSummary = m =>
{
    // Get returns the first key that is present (a JsonElement), or null
    Console.WriteLine($"{m.Index}: v={m.Get("v")} ({m.Data.Count} fields)");
};

QuoteMessage

FieldTypeDescription
TypestringData type
TradingTimestringTime
SymbolstringTicker symbol
BidPrices / AskPricesList<decimal>Bid / ask price levels
BidVolumes / AskVolumesList<int>Volume of each level

MarketStatusMessage

Market, Status, TradingDate: all string.

MarketFlagMessage

Market session flag (ATO, LO, ATC, ...), from the market.flag topic.

FieldTypeServer keyDescription
BoardstringbBoard
TradingTimestringtTime
FlagstringfSession flag

MarketDataMessage

Reference data (ceiling, floor, reference) of one symbol, from market.SYMBOL.

FieldTypeServer keyDescription
SymbolstringsTicker symbol
BoardstringbBoard
TradingTimestringtTime
Ceiling / Floor / RefPricedecimal?ce, fl, refCeiling / floor / reference price

ForeignRoomMessage

Type, TradingTime, Symbol (string); TotalRoom, CurrentRoom, BuyQuantity, SellQuantity (int); BuyValue, SellValue (long).

PutMessage

Type, TradingTime, Symbol (string); Price (decimal); Quantity, TotalQuantity (int); TotalValue (long).

OddLotMessage

Type, TradingTime, Symbol (string); Price (decimal); Quantity (int); BidPrices, AskPrices (List<decimal>); BidVolumes, AskVolumes (List<int>).

OrderStatusMessage

Order status update (orderEvent, topic order.<accountNo>).

FieldTypeDescription
TypestringEvent type
AccountNostringAccount number
ClientRequestId / OrderIdstringClient request id / order id
SymbolstringTicker symbol
Sidestring?"B" / "S"; the raw text if not recognised
OrderTypestring?Order type
PricedecimalOrder price; 0 when the server sent a price word (see PriceMarker)
PriceMarkerstring?Price word sent instead of a number (for example "ATO")
Quantity / OsQuantity / FilledQuantity / CancelQuantityintOrdered / outstanding / filled / cancelled quantity
AvgPricedecimalAverage matched price
Statusstring?Status code (see OrderStatus)
InputTime / ModifiedTimestringInput / modified time. ModifyTime is the old name, [Obsolete]
MessagestringMessage
RejectReasonstringReject reason
SystemRequestId, ErrorCode, ErrorMessage, NotifyId, ConnectionIdstringSystem and error information carried with the event

OrderMatchMessage

One match of an order (orderMatchEvent).

FieldTypeDescription
TypestringEvent type
NotifyId, ConnectionIdstringSystem information
ClientRequestId / OrderIdstringClient request id / order id
SymbolstringTicker symbol
Sidestring?"B" / "S"
AccountNostringAccount number
MatchPricedecimalMatched price
MatchQtyintMatched quantity
MatchTimestringMatch time

PortfolioMessage

Position update (clientPortfolioEvent, derivative accounts only). A value the server does not send is null.

FieldTypeDescription
TypestringEvent type
AccountNostringAccount number
SymbolstringContract code
LongQty / ShortQty / NetintLong / short / net quantity
BidAvgPrice / AskAvgPricedecimal?Average buy / sell price
TradePrice / MarketPricedecimal?Trade price / market price
FloatingPL / TradingPLdecimal?Floating / trading P&L
PositionTypestringPosition type

TotalAsset, CashBalance and StockValue are still in the class but deprecated: the server never sends them, so they are always null.

FCOOrderUpdateMessage

Status update of a conditional (FCO) order, received through SetOnTrading when eventType is "fcoEvent". No fco_order.* or fco.* topic is parsed separately.

Unconfirmed: the SDK code parses fcoEvent, but the SDK CHANGELOG lists fcoEvent streaming as not implemented. It has not been verified against a live server; do not rely on this stream for critical logic.

FieldTypeDescription
FCOIDstringFCO order id
ProcessStatusstring?Processing status of the FCO order (INIT, WAIT, WC, TER, ... see FCOStatus)
MatchedQuantityintMatched quantity
IsPlaceOrderboolWhether the order has been sent to the order book
SymbolstringTicker symbol
QuantityintOrdered quantity
PricestringOrder price
AccountNostringAccount number
UpdatedTimestringUpdated time
StatusstringStatus code
MessagestringDetail message / trigger reason
UsernamestringUsername that placed the order
EventTypestringEvent type ("fcoEvent")
FCOTypestring?Conditional order type (gtd, stop, ... see FCOType)

ConnectionEvent

record ConnectionEvent(string State, int ReconnectCount = 0, Exception? Error = null), received through OnConnection. State is one of the ConnectionState constants: "connected", "reconnected", "disconnected", "failed". ReconnectCount is the number of reconnects; Error is the accompanying exception when there is one.

TradingWsResponse

A successful frame from the Trading WebSocket (namespace SsiSdk, not SsiSdk.Models). See section 7 of API Services.

FieldTypeDescription
IdstringRequest id of the command
MethodstringName of the method that was sent
StatusintStatus code, default 200
ResultJsonElementThe result part; Undefined when the frame has none
RateLimitIReadOnlyDictionary<string, JsonElement>Limits the server reported with the frame (limit / remaining / resetMs)
ReceivedTimelong?Time the server received the command

Other

RateLimitInfo

record RateLimitInfo(int? Limit, int? Remaining): rate-limit information of the latest response, read through auth.RateLimit.

On this page