UNPKG

okx-api

Version:

Complete & robust Node.js SDK for OKX's REST APIs and WebSockets, with TypeScript & end-to-end tests

1,161 lines (1,160 loc) 47.5 kB
import { AxiosRequestConfig } from 'axios'; import { ASSET_BILL_TYPE } from './constants'; import { AccountAssetValuation, AccountBalance, AccountBill, AccountChangeMarginResult, AccountConfiguration, AccountFeeRate, AccountHistoryBill, AccountInstrument, AccountIsolatedMode, AccountLevel, AccountLeverage, AccountLeverageResult, AccountMaxLoan, AccountMaxOrderAmount, AccountMaxTradableAmount, AccountModeResult, AccountPosition, AccountPositionModeResult, AccountPositionRisk, AccountRiskState, AdjustLeverageInfo, AdjustMarginBalanceRequest, AlgoLongHistoryRequest, AlgoOrderDetailsRequest, AlgoOrderDetailsResult, AlgoOrderListItem, AlgoOrderRequest, AlgoOrderResult, AlgoRecentHistoryRequest, AmendAlgoOrderRequest, AmendAlgoOrderResult, AmendedOrder, AmendOrderRequest, AmendRecurringBuyOrderRequest, AmendTPSLRequest, Announcement, APICredentials, APIMarket, APIResponse, AssetBillDetails, AutoLoanResult, BlockCounterParty, BlockMakerInstrumentSettings, BlockMMPConfig, BlockRFQResult, BorrowRepayHistoryItem, CancelAlgoOrderRequest, CancelAllAfterResponse, CancelBlockQuoteRequest, CancelBlockQuoteResult, CancelBlockRFQRequest, CancelBlockRFQResult, CancelledOrderResult, CancelMultipleBlockQuoteRequest, CancelMultipleBlockRFQRequest, CancelSignalBotsResult, CancelSpreadOrderResponse, CancelSubOrderRequest, Candle, CandleNoVolume, CandleRequest, ChangePositionMarginRequest, CloseContractGridPositionRequest, ClosedPositions, ClosePositionRequest, CloseSubpositionRequest, ContractGridDirection, ConvertQuoteEstimateRequest, ConvertTradeRequest, CopySettingsRequest, CreateBlockQuoteRequest, CreateBlockQuoteResult, CreateBlockRFQRequest, CreateRFQResult, CreateSignalBotRequest, CreateSignalBotResult, CreateSignalRequest, CreateSignalResult, CurrentSubposition, EconomicCalendarData, EconomicCalendarRequest, ExecuteBlockQuoteRequest, ExecuteBlockQuoteResult, FillsHistoryRequest, FixedLoanBorrowingLimit, FixedLoanBorrowQuote, FundingBalance, FundingCurrency, FundingRateRequest, FundsTransferRequest, FundTransferResult, FundTransferState, GetAccountConfigurationResult, GetActiveSpreadOrdersRequest, GetBlockQuoteParams, GetBlockQuoteResult, GetBlockRFQSParams, GetBorrowRepayHistoryRequest, GetContractOpenInterestHistoryRequest, GetContractTakerVolumeRequest, GetCopySettingsResult, GetCopyTradersRequest, GetCopyTradersResult, GetCopyTradingConfigResult, GetCTBatchLeverageInfoRequest, GetCTBatchLeverageInfoResult, GetCTHistoryLeadTradersRequest, GetCTHistoryLeadTradersResult, GetCTMyLeadTradersResult, GetCTProfitDetailsRequest, GetCTProfitDetailsResult, GetCTTotalProfitResult, GetCTUnrealizedProfitResult, GetCurrentSubpositionsRequest, GetDepositWithdrawStatusRequest, GetFixedLoanBorrowingOrdersListRequest, GetFixedLoanBorrowQuoteRequest, GetGridAlgoOrdersRequest, GetHistoricPositionParams, GetInstrumentsRequest, GetLeadTraderPositionsRequest, GetLeadTraderRanksRequest, GetLeadTraderRanksResult, GetLeadTraderStatsRequest, GetLendingOrderListRequest, GetLendingSubOrderListRequest, GetManagedSubAccountTransferHistoryRequest, GetOptionTradesRequest, GetPositionsParams, GetPremiumHistoryRequest, GetPrivateLeadTraderRanksRequest, GetPrivateLeadTraderRanksResult, GetQuickMarginBorrowRepayHistoryRequest, GetRecurringBuyOrderListRequest, GetRSIBackTestingRequest, GetSignalBotEventHistoryRequest, GetSignalBotPositionHistoryRequest, GetSignalBotRequest, GetSignalBotSubOrdersRequest, GetSignalsRequest, GetSignalsResult, GetSpreadCandlesRequest, GetSpreadOrderHistoryArchiveRequest, GetSpreadOrderHistoryRequest, GetSpreadsRequest, GetSpreadTradesRequest, GetSubAccountMaxWithdrawalsRequest, GetSubpositionsHistoryRequest, GetTopTradersContractLongShortRatioRequest, GetVIPInterestRequest, GetVIPLoanOrderDetailRequest, GetVIPLoanOrderListRequest, Greeks, GridAlgoOrderRequest, GridAlgoOrderType, GridAlgoSubOrderType, HistoricAccountPosition, HistoricAlgoOrder, HistoricOrder, IndexTicker, Instrument, InstrumentType, InterestAccrued, InterestRate, LeadTraderCurrentPosition, LeadTraderPnl, LeadTraderPositionHistory, LeadTraderPreference, LeadTraderStats, LendingOrder, ManagedSubAccountTransfer, MarginMode, MaxGridQuantityRequest, MaxWithdrawal, MMPConfig, NonTradableAsset, numberInString, OptionTrade, OptionTrades, OrderBook, OrderDetails, OrderFill, OrderHistoryRequest, OrderIdRequest, OrderListItem, OrderPrecheckRequest, OrderRequest, OrderResult, PaginatedSymbolRequest, Pagination, PlaceCTAlgoOrderRequest, PlaceCTAlgoOrderResult, PlaceRecurringBuyOrderRequest, PlaceSpreadOrderRequest, PlaceSpreadOrderResponse, PlaceSubOrderRequest, PositionBuilderRequest, PositionSide, PosMode, PublicBlockTrade, PublicSpreadTrade, QuickMarginBorrowRepayRecord, QuickMarginBorrowRepayRequest, QuickMarginBorrowRepayResult, RecurringBuyOrder, RecurringBuyOrderResult, RecurringBuySubOrder, RestClientOptions, SetCTBatchLeverageRequest, SetCTBatchLeverageResult, SetLeverageRequest, SetMMPConfigRequest, SetMmpConfigRequest, SetMMPConfigResult, SetMmpConfigResult, SetQuoteProductsRequest, SetSignalInstrumentsRequest, SetSubAccountLoanAllocationRequest, SpreadCandle, SpreadDetails, SpreadOrder, SpreadOrderBook, SpreadTicker, SpreadTrade, StopGridAlgoOrderRequest, SubAccount, SubAccountAPIReset, SubAccountBalances, SubAccountMaxWithdrawal, SubAccountTransferRequest, SubAccountTransferResult, SubmitFixedLoanBorrowingOrderRequest, SubpositionsHistory, SystemTime, Ticker, TimestampObject, Trade, UnitConvertData, UnitConvertRequest, UpdateFixedLoanBorrowingOrderRequest, UpdateSpreadOrderRequest, UpdateSpreadOrderResponse, VIPInterest, VIPLoanOrder, VIPLoanOrderDetail, WithdrawalHistoryRequest, WithdrawRequest, WithdrawResponse } from './types'; import { AccruedInterestItem, AccruedInterestRequest, AdjustCollateralRequest, CollateralAssetsResponse, LoanHistoryItem, LoanHistoryRequest, LoanInfo, MaxLoanRequest, MaxLoanResponse } from './types/rest/response/private-flexible-loan'; import BaseRestClient from './util/BaseRestClient'; export declare class RestClient extends BaseRestClient { /** * @public Creates an instance of the REST API client. * * @param credentials - Note: This parameter will be removed! Pass `null` here and use the restClientOptions parameter (3rd one) instead! * @param environment - Note: This parameter will be removed! Pass `prod` here and use the restClientOptions parameter (3rd one) instead! * @param restClientOptions * @param requestOptions * @returns */ constructor(credentials?: APICredentials | null, environment?: APIMarket, restClientOptions?: RestClientOptions, requestOptions?: AxiosRequestConfig); /** * * Custom SDK functions * */ /** * This method is used to get the latency and time sync between the client and the server. * This is not official API endpoint and is only used for internal testing purposes. * Use this method to check the latency and time sync between the client and the server. * Final values might vary slightly, but it should be within few ms difference. * If you have any suggestions or improvements to this measurement, please create an issue or pull request on GitHub. */ fetchLatencySummary(): Promise<any>; /** * * OKX misc endpoints * */ getServerTime(): Promise<number>; /** * * Trading account endpoints * */ getAccountInstruments(params: GetInstrumentsRequest): Promise<AccountInstrument[]>; getBalance(params?: { ccy?: string; }): Promise<AccountBalance[]>; getPositions(params?: GetPositionsParams): Promise<AccountPosition[]>; getPositionsHistory(params?: GetHistoricPositionParams): Promise<HistoricAccountPosition[]>; getAccountPositionRisk(params?: { instType?: Omit<'SPOT', InstrumentType>; }): Promise<AccountPositionRisk[]>; /** Up to last 7 days */ getBills(params?: any): Promise<AccountBill[]>; /** Last 3 months */ getBillsArchive(params?: any): Promise<AccountBill[]>; /** * Apply for bill data since 1 February, 2021 except for the current quarter. * Check the file link from the "Get bills details (since 2021)" endpoint in 30 hours to allow for data generation. * During peak demand, data generation may take longer. If the file link is still unavailable after 48 hours, reach out to customer support for assistance. * It is only applicable to the data from the unified account. * * This endpoint submits a request for bill data. You can then use getRequestedBillsHistoryLink to get the link to the bill data. * It may take some time to generate the data. */ requestBillsHistoryDownloadLink(params: { year: string; quarter: 'Q1' | 'Q2' | 'Q3' | 'Q4'; }): Promise<AccountHistoryBill[]>; /** * This endpoint returns the link to the bill data which you can request using requestBillsHistoryDownloadLink. */ getRequestedBillsHistoryLink(params: { year: string; quarter: 'Q1' | 'Q2' | 'Q3' | 'Q4'; }): Promise<AccountHistoryBill[]>; getAccountConfiguration(): Promise<AccountConfiguration[]>; setPositionMode(params: { posMode: PosMode; }): Promise<AccountPositionModeResult[]>; setLeverage(params: SetLeverageRequest): Promise<AccountLeverageResult[]>; /** Max buy/sell amount or open amount */ getMaxBuySellAmount(params: { instId: string; tdMode: 'cross' | 'isolated' | 'cash'; ccy?: string; px?: string; leverage?: string; unSpotOffset?: boolean; }): Promise<AccountMaxOrderAmount[]>; getMaxAvailableTradableAmount(params: { instId: string; ccy?: string; tdMode: 'cross' | 'isolated' | 'cash'; reduceOnly?: boolean; unSpotOffset?: boolean; }): Promise<AccountMaxTradableAmount[]>; changePositionMargin(params: ChangePositionMarginRequest): Promise<AccountChangeMarginResult[]>; getLeverage(params: { instId?: string; ccy?: string; mgnMode: MarginMode; }): Promise<AccountLeverage[]>; /** * @deprecated - will be removed in next major release * Use getLeverage() instead */ getLeverageV2(params: { instId?: string; ccy?: string; mgnMode: MarginMode; }): Promise<AccountLeverage[]>; getLeverageEstimatedInfo(params: { instType: string; mgnMode: MarginMode; lever: string; instId?: string; ccy?: string; posSide: PositionSide; }): Promise<AdjustLeverageInfo[]>; getMaxLoan(params: { instId: string; mgnMode: MarginMode; mgnCcy?: string; ccy?: string; }): Promise<AccountMaxLoan[]>; getFeeRates(params: { instType: InstrumentType; instId?: string; uly?: string; instFamily?: string; ruleType?: string; }): Promise<AccountFeeRate[]>; getInterestAccrued(params?: { type?: '1' | '2'; ccy?: string; instId?: string; mgnMode?: MarginMode; after?: string; before?: string; limit?: string; }): Promise<InterestAccrued[]>; getInterestRate(params?: { ccy?: string; }): Promise<InterestRate[]>; setGreeksDisplayType(params: { greeksType: 'PA' | 'BS'; }): Promise<Greeks[]>; setIsolatedMode(params: { isoMode: 'automatic' | 'autonomy'; type: 'MARGIN' | 'CONTRACTS'; }): Promise<AccountIsolatedMode[]>; getMaxWithdrawals(params?: { ccy?: string; }): Promise<MaxWithdrawal[]>; getAccountRiskState(): Promise<AccountRiskState[]>; setAccountCollateralAssets(params: { type: 'all' | 'custom'; collateralEnabled: boolean; ccyList?: string[]; }): Promise<{ type: string; ccyList: string[]; collateralEnabled: boolean; }[]>; getAccountCollateralAssets(params?: { ccy?: string; collateralEnabled?: boolean; }): Promise<{ ccy: string; collateralEnabled: boolean; }[]>; submitQuickMarginBorrowRepay(params: QuickMarginBorrowRepayRequest): Promise<QuickMarginBorrowRepayResult[]>; getQuickMarginBorrowRepayHistory(params: GetQuickMarginBorrowRepayHistoryRequest): Promise<QuickMarginBorrowRepayRecord[]>; borrowRepayVIPLoan(params: { ccy: string; side: 'borrow' | 'repay'; amt: numberInString; ordId?: string; }): Promise<any[]>; getVIPLoanBorrowRepayHistory(params?: any): Promise<any[]>; getVIPInterestAccrued(params: GetVIPInterestRequest): Promise<VIPInterest[]>; getVIPInterestDeducted(params: GetVIPInterestRequest): Promise<VIPInterest[]>; getVIPLoanOrders(params: GetVIPLoanOrderListRequest): Promise<VIPLoanOrder[]>; getVIPLoanOrder(params: GetVIPLoanOrderDetailRequest): Promise<VIPLoanOrderDetail[]>; getBorrowInterestLimits(params?: { type?: '1' | '2'; ccy?: string; }): Promise<any[]>; getFixedLoanBorrowLimit(): Promise<FixedLoanBorrowingLimit[]>; getFixedLoanBorrowQuote(params: GetFixedLoanBorrowQuoteRequest): Promise<FixedLoanBorrowQuote[]>; submitFixedLoanBorrowOrder(params: SubmitFixedLoanBorrowingOrderRequest): Promise<{ ordId: string; }[]>; updateFixedLoanBorrowOrder(params: UpdateFixedLoanBorrowingOrderRequest): Promise<{ ordId: string; }[]>; manualRenewFixedLoanBorrowOrder(params: { ordId: string; maxRate: string; }): Promise<{ ordId: string; }[]>; repayFixedLoanBorrowOrder(params: { ordId: string; }): Promise<{ ordId: string; }[]>; convertFixedLoanToMarketLoan(params: { ordId: string; }): Promise<{ ordId: string; }[]>; reduceFixedLoanLiabilities(params: { ordId: string; pendingRepay: boolean; }): Promise<{ ordId: string; pendingRepay: boolean; }[]>; getFixedLoanBorrowOrders(params: GetFixedLoanBorrowingOrdersListRequest): Promise<any[]>; manualBorrowRepay(params: { ccy: string; side: 'borrow' | 'repay'; amt: string; }): Promise<{ ccy: string; side: 'borrow' | 'repay'; amt: string; }[]>; setAutoRepay(params: { autoRepay: boolean; }): Promise<{ autoRepay: boolean; }[]>; getBorrowRepayHistory(params?: GetBorrowRepayHistoryRequest): Promise<BorrowRepayHistoryItem[]>; positionBuilder(params: PositionBuilderRequest): Promise<any[]>; updateRiskOffsetAmount(params: { ccy: string; clSpotInUseAmt: string; }): Promise<{ ccy: string; clSpotInUseAmt: string; }[]>; getGreeks(params?: { ccy?: string; }): Promise<any[]>; getPMLimitation(params: { instType: 'SWAP' | 'FUTURES' | 'OPTION'; uly?: string; instFamily?: string; }): Promise<any[]>; updateRiskOffsetType(params: { type: '1' | '2' | '3' | '4'; }): Promise<{ type: '1' | '2' | '3' | '4'; }[]>; activateOption(): Promise<{ ts: string; }[]>; setAutoLoan(params: { autoLoan: boolean; }): Promise<AutoLoanResult[]>; presetAccountLevelSwitch(params: { acctLv: '2' | '3' | '4'; lever?: string; riskOffsetType?: '1' | '2' | '3' | '4'; }): Promise<any[]>; getAccountSwitchPrecheck(params: { acctLv: '1' | '2' | '3' | '4'; }): Promise<any[]>; setAccountMode(params: { acctLv: AccountLevel; }): Promise<AccountModeResult[]>; resetMMPStatus(params: { instType?: 'OPTION'; instFamily: string; }): Promise<{ result: boolean; }[]>; setMMPConfig(params: SetMMPConfigRequest): Promise<SetMMPConfigResult[]>; getMMPConfig(params?: { instFamily?: string; }): Promise<MMPConfig[]>; /** * * Orderbook trading - trade endpoints * */ submitOrder(params: OrderRequest): Promise<OrderResult[]>; submitMultipleOrders(params: OrderRequest[]): Promise<OrderResult[]>; cancelOrder(params: OrderIdRequest): Promise<CancelledOrderResult[]>; cancelMultipleOrders(params: OrderIdRequest[]): Promise<CancelledOrderResult[]>; amendOrder(params: AmendOrderRequest): Promise<AmendedOrder[]>; amendMultipleOrders(params: AmendOrderRequest[]): Promise<AmendedOrder[]>; closePositions(params: ClosePositionRequest): Promise<ClosedPositions[]>; getOrderDetails(params: OrderIdRequest): Promise<OrderDetails[]>; getOrderList(params?: OrderHistoryRequest): Promise<OrderListItem[]>; /** * Get history for last 7 days */ getOrderHistory(params: OrderHistoryRequest): Promise<HistoricOrder[]>; /** * Get history for last 3 months */ getOrderHistoryArchive(params: OrderHistoryRequest): Promise<HistoricOrder[]>; /** * Get history for last 7 days */ getFills(params?: FillsHistoryRequest): Promise<OrderFill[]>; /** * Get history for last 3 months */ getFillsHistory(params: FillsHistoryRequest): Promise<OrderFill[]>; /** Get easy convert currency list */ getEasyConvertCurrencies(params?: { source?: string; }): Promise<any>; /** * * Place easy convert : Convert small currencies to mainstream currencies. * Only applicable to the crypto balance less than $10. * * Maximum 5 currencies can be selected in one order. * If there are multiple currencies, separate them with commas in the "from" field. * */ submitEasyConvert(params: { fromCcys: string[]; toCcy: string; source?: string; }): Promise<APIResponse<any>>; /** Get easy convert history : Get the history and status of easy convert trades. */ getEasyConvertHistory(params?: Pagination): Promise<APIResponse<any>>; /** * * Get one-click repay currency list : Get list of debt currency data and repay currencies. * Debt currencies include both cross and isolated debts. */ getOneClickRepayCurrencyList(params?: { debtType?: 'cross' | 'isolated'; }): Promise<APIResponse<any>>; /** * Trade one-click repay to repay cross debts. * Isolated debts are not applicable. * The maximum repayment amount is based on the remaining available balance of funding and trading accounts. */ submitOneClickRepay(params: { debtCcys: string[]; repayCcy: string; }): Promise<APIResponse<any>>; /** Get the history and status of one-click repay trades. */ getOneClickRepayHistory(params?: Pagination): Promise<APIResponse<any>>; cancelMassOrder(params: { instType: string; instFamily: string; lockInterval?: string; }): Promise<{ result: boolean; }[]>; cancelAllAfter(params: { timeOut: string; tag?: string; }): Promise<CancelAllAfterResponse[]>; getAccountRateLimit(): Promise<any[]>; submitOrderPrecheck(params: OrderPrecheckRequest): Promise<any[]>; /** * * Orderbook trading - Algo trading endpoints * */ placeAlgoOrder(params: AlgoOrderRequest): Promise<AlgoOrderResult[]>; cancelAlgoOrder(params: CancelAlgoOrderRequest[]): Promise<AlgoOrderResult[]>; amendAlgoOrder(params: AmendAlgoOrderRequest): Promise<AmendAlgoOrderResult[]>; cancelAdvanceAlgoOrder(params: CancelAlgoOrderRequest[]): Promise<AlgoOrderResult[]>; getAlgoOrderDetails(params: AlgoOrderDetailsRequest): Promise<AlgoOrderDetailsResult[]>; getAlgoOrderList(params: AlgoRecentHistoryRequest): Promise<AlgoOrderListItem[]>; getAlgoOrderHistory(params: AlgoLongHistoryRequest): Promise<HistoricAlgoOrder[]>; /** * * Orderbook trading - Grid trading endpoints * */ placeGridAlgoOrder(params: GridAlgoOrderRequest): Promise<any[]>; amendGridAlgoOrder(params: { algoId: string; instId: string; slTriggerPx?: string; tpTriggerPx?: string; tpRatio?: string; slRatio?: string; triggerParams?: { triggerAction?: string; triggerStrategy?: string; triggerPx?: string; stopType?: string; }[]; }): Promise<any[]>; stopGridAlgoOrder(orders: StopGridAlgoOrderRequest[]): Promise<any[]>; closeGridContractPosition(params: CloseContractGridPositionRequest): Promise<any[]>; cancelGridContractCloseOrder(params: { algoId: string; ordId: string; }): Promise<any[]>; instantTriggerGridAlgoOrder(params: { algoId: string; }): Promise<{ algoId: string; algoClOrdId: string; }[]>; getGridAlgoOrderList(params: GetGridAlgoOrdersRequest): Promise<any[]>; getGridAlgoOrderHistory(params: GetGridAlgoOrdersRequest): Promise<any[]>; getGridAlgoOrderDetails(params: { algoOrdType: GridAlgoOrderType; algoId: string; }): Promise<any[]>; getGridAlgoSubOrders(params: { algoOrdType: GridAlgoOrderType; algoId: string; type: GridAlgoSubOrderType; groupId?: string; after?: numberInString; before?: numberInString; limit?: number; }): Promise<any[]>; getGridAlgoOrderPositions(params: { algoOrdType: 'contract_grid'; algoId: string; }): Promise<any[]>; spotGridWithdrawIncome(params: { algoId: string; }): Promise<any[]>; computeGridMarginBalance(params: { algoId: string; type: 'add' | 'reduce'; amt?: numberInString; }): Promise<any[]>; adjustGridMarginBalance(params: { algoId: string; type: 'add' | 'reduce'; amt?: numberInString; percent?: numberInString; }): Promise<any[]>; adjustGridInvestment(params: { algoId: string; amt: string; }): Promise<{ algoId: string; }[]>; getGridAIParameter(params: { algoOrdType: GridAlgoOrderType; instId: string; direction: ContractGridDirection; duration?: '7D' | '30D' | '180D'; }): Promise<any[]>; computeGridMinInvestment(params: { amt: string; ccy: string; }): Promise<any[]>; getRSIBackTesting(params: GetRSIBackTestingRequest): Promise<{ triggerNum: string; }[]>; getMaxGridQuantity(params: MaxGridQuantityRequest): Promise<{ maxGridQty: string; }[]>; /** * * Orderbook trading - Signal bot trading endpoints * */ createSignal(params: CreateSignalRequest): Promise<CreateSignalResult[]>; getSignals(params: GetSignalsRequest): Promise<GetSignalsResult[]>; createSignalBot(params: CreateSignalBotRequest): Promise<CreateSignalBotResult[]>; cancelSignalBots(params: { algoId: string; }): Promise<CancelSignalBotsResult[]>; updateSignalMargin(params: AdjustMarginBalanceRequest): Promise<{ algoId: string; }[]>; updateSignalTPSL(params: AmendTPSLRequest): Promise<{ algoId: string; }[]>; setSignalInstruments(params: SetSignalInstrumentsRequest): Promise<{ algoId: string; }[]>; getSignalBotOrder(params: { algoOrdType: string; algoId: string; }): Promise<any[]>; getActiveSignalBot(params: GetSignalBotRequest): Promise<any[]>; getSignalBotHistory(params: GetSignalBotRequest): Promise<any[]>; getSignalBotPositions(params: { algoOrdType: string; algoId: string; }): Promise<any[]>; getSignalBotPositionHistory(params: GetSignalBotPositionHistoryRequest): Promise<any[]>; closeSignalBotPosition(params: { algoId: string; instId: string; }): Promise<{ algoId: string; }[]>; placeSignalBotSubOrder(params: PlaceSubOrderRequest): Promise<any[]>; cancelSubOrder(params: CancelSubOrderRequest): Promise<any[]>; getSignalBotSubOrders(params: GetSignalBotSubOrdersRequest): Promise<any[]>; getSignalBotEventHistory(params: GetSignalBotEventHistoryRequest): Promise<any[]>; /** * * Orderbook trading - Recurring buy endpoints * */ submitRecurringBuyOrder(params: PlaceRecurringBuyOrderRequest): Promise<RecurringBuyOrderResult[]>; amendRecurringBuyOrder(params: AmendRecurringBuyOrderRequest): Promise<RecurringBuyOrderResult[]>; stopRecurringBuyOrder(params: { algoId: string; }): Promise<RecurringBuyOrderResult[]>; getRecurringBuyOrders(params: GetRecurringBuyOrderListRequest): Promise<RecurringBuyOrder[]>; getRecurringBuyOrderHistory(params: GetRecurringBuyOrderListRequest): Promise<RecurringBuyOrder[]>; getRecurringBuyOrderDetails(params: { algoId: string; }): Promise<RecurringBuyOrder[]>; getRecurringBuySubOrders(params: GetRecurringBuyOrderListRequest): Promise<RecurringBuySubOrder[]>; /** * * Orderbook trading - Copy trading endpoints * */ getCopytradingSubpositions(params?: GetCurrentSubpositionsRequest): Promise<CurrentSubposition[]>; getCopytradingSubpositionsHistory(params?: GetSubpositionsHistoryRequest): Promise<SubpositionsHistory[]>; submitCopytradingAlgoOrder(params: PlaceCTAlgoOrderRequest): Promise<PlaceCTAlgoOrderResult[]>; closeCopytradingSubposition(params: CloseSubpositionRequest): Promise<{ subPosId: string; tag: string; }[]>; getCopytradingInstruments(params?: { instType?: 'SPOT' | 'SWAP'; }): Promise<{ instId: string; enabled: boolean; }[]>; setCopytradingInstruments(params: { instType?: 'SPOT' | 'SWAP'; instId: string; }): Promise<{ instId: string; enabled: boolean; }[]>; getCopytradingProfitDetails(params?: GetCTProfitDetailsRequest): Promise<GetCTProfitDetailsResult[]>; getCopytradingTotalProfit(params?: { instType?: 'SPOT' | 'SWAP'; }): Promise<GetCTTotalProfitResult[]>; getCopytradingUnrealizedProfit(params?: { instType?: 'SPOT' | 'SWAP'; }): Promise<GetCTUnrealizedProfitResult[]>; getCopytradingTotalUnrealizedProfit(params?: { instType?: 'SWAP'; }): Promise<{ instType?: 'SWAP'; instId: string; }[]>; applyCopytradingLeadTrading(params: { profitSharingTs: string; totalUnrealizedProfitSharingAmt: string; }): Promise<{ result: boolean; }[]>; stopCopytradingLeadTrading(params?: { instType?: 'SWAP'; }): Promise<{ result: boolean; }[]>; updateCopytradingProfitSharing(params: { instType?: 'SWAP'; profitSharingRatio: string; }): Promise<{ result: boolean; }[]>; getCopytradingAccount(): Promise<GetAccountConfigurationResult[]>; setCopytradingFirstCopy(params: CopySettingsRequest): Promise<{ result: boolean; }[]>; updateCopytradingCopySettings(params: CopySettingsRequest): Promise<{ result: boolean; }[]>; stopCopytradingCopy(params: { instType?: 'SWAP'; uniqueCode: string; subPosCloseType: 'market_close' | 'copy_close' | 'manual_close'; }): Promise<{ result: boolean; }[]>; getCopytradingCopySettings(params: { instType?: 'SWAP'; uniqueCode: string; }): Promise<GetCopySettingsResult[]>; getCopytradingBatchLeverageInfo(params: GetCTBatchLeverageInfoRequest): Promise<GetCTBatchLeverageInfoResult[]>; setCopytradingBatchLeverage(params: SetCTBatchLeverageRequest): Promise<SetCTBatchLeverageResult[]>; getCopytradingMyLeadTraders(params?: { instType?: 'SWAP'; }): Promise<GetCTMyLeadTradersResult[]>; getCopytradingLeadTradersHistory(params?: GetCTHistoryLeadTradersRequest): Promise<GetCTHistoryLeadTradersResult[]>; getCopytradingConfig(params?: { instType?: 'SWAP'; }): Promise<GetCopyTradingConfigResult[]>; getCopytradingLeadRanks(params?: GetLeadTraderRanksRequest): Promise<GetLeadTraderRanksResult[]>; getCopytradingLeadWeeklyPnl(params: { instType?: 'SWAP'; uniqueCode: string; }): Promise<LeadTraderPnl[]>; getCopytradingLeadDailyPnl(params: GetLeadTraderStatsRequest): Promise<LeadTraderPnl[]>; getCopytradingLeadStats(params: GetLeadTraderStatsRequest): Promise<LeadTraderStats[]>; getCopytradingLeadPreferences(params: { instType?: 'SWAP'; uniqueCode: string; }): Promise<LeadTraderPreference[]>; getCopytradingLeadOpenPositions(params: GetLeadTraderPositionsRequest): Promise<LeadTraderCurrentPosition[]>; getCopytradingLeadPositionHistory(params: GetLeadTraderPositionsRequest): Promise<LeadTraderPositionHistory[]>; getCopyTraders(params: GetCopyTradersRequest): Promise<GetCopyTradersResult[]>; getCopytradingLeadPrivateRanks(params?: GetPrivateLeadTraderRanksRequest): Promise<GetPrivateLeadTraderRanksResult[]>; getCopytradingLeadPrivateWeeklyPnl(params: { instType?: 'SWAP'; uniqueCode: string; }): Promise<LeadTraderPnl[]>; getCopytradingPLeadPrivateDailyPnl(params: GetLeadTraderStatsRequest): Promise<LeadTraderPnl[]>; geCopytradingLeadPrivateStats(params: GetLeadTraderStatsRequest): Promise<LeadTraderStats[]>; getCopytradingLeadPrivatePreferences(params: { instType?: 'SWAP'; uniqueCode: string; }): Promise<LeadTraderPreference[]>; getCopytradingLeadPrivateOpenPositions(params: GetLeadTraderPositionsRequest): Promise<LeadTraderCurrentPosition[]>; getCopytradingLeadPrivatePositionHistory(params: GetLeadTraderPositionsRequest): Promise<LeadTraderPositionHistory[]>; getCopyTradersPrivate(params: GetCopyTradersRequest): Promise<GetCopyTradersResult[]>; /** * * Orderbook trading - Market data endpoints * */ getTickers(params: { instType: InstrumentType; uly?: string; instFamily?: string; }): Promise<Ticker[]>; getTicker(params: { instId: string; }): Promise<Ticker[]>; getOrderBook(params: { instId: string; sz?: numberInString; }): Promise<OrderBook[]>; getFullOrderBook(params: { instId: string; sz?: string; }): Promise<OrderBook[]>; getCandles(params: CandleRequest): Promise<Candle[]>; getHistoricCandles(params: CandleRequest): Promise<Candle[]>; getTrades(params: { instId: string; limit?: number; }): Promise<Trade[]>; getHistoricTrades(params: { instId: string; after?: numberInString; before?: numberInString; limit?: numberInString; type?: '1' | '2'; }): Promise<Trade[]>; getOptionTradesByInstrument(params: { instFamily: string; }): Promise<OptionTrade[]>; getOptionTrades(params: GetOptionTradesRequest): Promise<OptionTrades[]>; get24hrTotalVolume(): Promise<any[]>; /** * * Block trading - REST endpoints * */ getBlockCounterParties(): Promise<BlockCounterParty[]>; createBlockRFQ(params: CreateBlockRFQRequest): Promise<CreateRFQResult[]>; cancelBlockRFQ(params: CancelBlockRFQRequest): Promise<CancelBlockRFQResult[]>; cancelMultipleBlockRFQs(params: CancelMultipleBlockRFQRequest): Promise<CancelBlockRFQResult[]>; cancelAllRFQs(): Promise<TimestampObject[]>; executeBlockQuote(params: ExecuteBlockQuoteRequest): Promise<ExecuteBlockQuoteResult[]>; getQuoteProducts(): Promise<BlockMakerInstrumentSettings[]>; updateBlockQuoteProducts(params: SetQuoteProductsRequest): Promise<{ result: boolean; }[]>; resetBlockMmp(): Promise<{ ts: string; }[]>; updateBlockMmpConfig(params: SetMmpConfigRequest): Promise<SetMmpConfigResult[]>; getBlockMmpConfig(): Promise<BlockMMPConfig[]>; createBlockQuote(params: CreateBlockQuoteRequest): Promise<CreateBlockQuoteResult[]>; cancelBlockQuote(params: CancelBlockQuoteRequest): Promise<CancelBlockQuoteResult[]>; cancelMultipleBlockQuotes(params: CancelMultipleBlockQuoteRequest): Promise<CancelBlockQuoteResult[]>; cancelAllBlockQuotes(): Promise<TimestampObject[]>; cancelAllBlockAfter(params: { timeOut: string; }): Promise<{ triggerTime: string; ts: string; }[]>; getBlockRFQs(params?: GetBlockRFQSParams): Promise<BlockRFQResult[]>; getBlockQuotes(params?: GetBlockQuoteParams): Promise<GetBlockQuoteResult[]>; getBlockTrades(params?: any): Promise<any[]>; getPublicRFQBlockTrades(params?: any): Promise<any[]>; getBlockTickers(params: { instType: InstrumentType; uly?: string; }): Promise<any[]>; getBlockTicker(params: { instId: string; }): Promise<any[]>; getBlockPublicTrades(params: { instId: string; }): Promise<PublicBlockTrade[]>; /** * * Spread trading - REST endpoints * */ submitSpreadOrder(params: PlaceSpreadOrderRequest): Promise<PlaceSpreadOrderResponse[]>; cancelSpreadOrder(params?: { ordId?: string; clOrdId?: string; }): Promise<CancelSpreadOrderResponse[]>; cancelAllSpreadOrders(params?: { sprdId?: string; }): Promise<{ result: boolean; }[]>; updateSpreadOrder(params: UpdateSpreadOrderRequest): Promise<UpdateSpreadOrderResponse[]>; getSpreadOrder(params: { ordId?: string; clOrdId?: string; }): Promise<SpreadOrder[]>; getSpreadActiveOrders(params?: GetActiveSpreadOrdersRequest): Promise<SpreadOrder[]>; getSpreadOrdersRecent(params?: GetSpreadOrderHistoryRequest): Promise<SpreadOrder[]>; getSpreadOrdersArchive(params?: GetSpreadOrderHistoryArchiveRequest): Promise<SpreadOrder[]>; getSpreadTrades(params?: GetSpreadTradesRequest): Promise<SpreadTrade[]>; getSpreads(params?: GetSpreadsRequest): Promise<SpreadDetails[]>; getSpreadOrderBook(params: { sprdId: string; sz?: string; }): Promise<SpreadOrderBook[]>; getSpreadTicker(params: { sprdId: string; }): Promise<SpreadTicker[]>; getSpreadPublicTrades(params?: { sprdId?: string; }): Promise<PublicSpreadTrade[]>; getSpreadCandles(params: GetSpreadCandlesRequest): Promise<SpreadCandle[]>; getSpreadHistoryCandles(params: GetSpreadCandlesRequest): Promise<SpreadCandle[]>; cancelSpreadAllAfter(params: { timeOut: string; }): Promise<{ triggerTime: string; ts: string; }[]>; /** * * Public data - rest endpoints * */ getInstruments(params: { instType: InstrumentType; uly?: string; instFamily?: string; instId?: string; }): Promise<Instrument[]>; getDeliveryExerciseHistory(params: any): Promise<any[]>; getOpenInterest(params: any): Promise<any[]>; getFundingRate(params: any): Promise<any[]>; getFundingRateHistory(params: FundingRateRequest): Promise<any[]>; getMinMaxLimitPrice(params: any): Promise<any[]>; getOptionMarketData(params: any): Promise<any[]>; getEstimatedDeliveryExercisePrice(params: any): Promise<any[]>; getDiscountRateAndInterestFreeQuota(params: any): Promise<any[]>; getSystemTime(params: any): Promise<SystemTime[]>; getMarkPrice(params: any): Promise<any[]>; getPositionTiers(params: any): Promise<any[]>; getInterestRateAndLoanQuota(params: any): Promise<any[]>; getVIPInterestRateAndLoanQuota(params: any): Promise<any[]>; getUnderlying(params: any): Promise<any[]>; getInsuranceFund(params: any): Promise<any[]>; getUnitConvert(params: UnitConvertRequest): Promise<UnitConvertData[]>; getOptionTickBands(params: { instType: string; instFamily?: string; }): Promise<any[]>; getPremiumHistory(params: GetPremiumHistoryRequest): Promise<any[]>; getIndexTickers(params?: { quoteCcy?: string; instId?: string; }): Promise<IndexTicker[]>; getIndexCandles(params: CandleRequest): Promise<CandleNoVolume[]>; getHistoricIndexCandles(params: CandleRequest): Promise<CandleNoVolume[]>; getMarkPriceCandles(params: CandleRequest): Promise<CandleNoVolume[]>; getHistoricMarkPriceCandles(params: CandleRequest): Promise<CandleNoVolume[]>; getOracle(): Promise<any[]>; getExchangeRate(): Promise<any[]>; getIndexComponents(params: { index: string; }): Promise<any[]>; getEconomicCalendar(params: EconomicCalendarRequest): Promise<EconomicCalendarData[]>; getPublicBlockTrades(params: { instId: string; }): Promise<any[]>; /** * * Trading statistics - REST endpoints * */ getSupportCoin(): Promise<any[]>; getOpenInterestHistory(params: GetContractOpenInterestHistoryRequest): Promise<any[]>; getTakerVolume(params: { instType: string; ccy: string; period?: string; end?: string; begin?: string; }): Promise<any[]>; getContractTakerVolume(params: GetContractTakerVolumeRequest): Promise<any[]>; getMarginLendingRatio(params: { ccy: string; begin?: numberInString; end?: numberInString; period: '5m' | '1H' | '1D'; }): Promise<any[]>; getTopTradersAccountRatio(params: GetTopTradersContractLongShortRatioRequest): Promise<any[]>; getTopTradersContractPositionRatio(params: GetTopTradersContractLongShortRatioRequest): Promise<any[]>; getLongShortContractRatio(params: GetTopTradersContractLongShortRatioRequest): Promise<any[]>; getLongShortRatio(params: { ccy: string; begin?: numberInString; end?: numberInString; period: '5m' | '1H' | '1D'; }): Promise<any[]>; getContractsOpenInterestAndVolume(params: { ccy: string; begin?: numberInString; end?: numberInString; period: '5m' | '1H' | '1D'; }): Promise<any[]>; getOptionsOpenInterestAndVolume(params: { ccy: string; period: '8H' | '1D'; }): Promise<any[]>; getPutCallRatio(params: { ccy: string; period: '8H' | '1D'; }): Promise<any[]>; getOpenInterestAndVolumeExpiry(params: { ccy: string; period: '8H' | '1D'; }): Promise<any[]>; getOpenInterestAndVolumeStrike(params: { ccy: string; expTime: string; period: '8H' | '1D'; }): Promise<any[]>; getTakerFlow(params: { ccy: string; period: '8H' | '1D'; }): Promise<any[]>; /** * * Funding account - REST endpoints * */ getCurrencies(params?: { ccy?: string; }): Promise<FundingCurrency[]>; getBalances(params?: { ccy?: string; }): Promise<FundingBalance[]>; getNonTradableAssets(params?: { ccy?: string; }): Promise<NonTradableAsset[]>; getAccountAssetValuation(params?: { ccy?: string; }): Promise<AccountAssetValuation[]>; fundsTransfer(params: FundsTransferRequest): Promise<FundTransferResult[]>; /** Either parameter transId or clientId is required. */ getFundsTransferState(params?: { transId?: string; clientId?: string; type?: '0' | '1' | '2'; }): Promise<FundTransferState[]>; getAssetBillsDetails(params?: { ccy?: string; type?: `${ASSET_BILL_TYPE}`; clientId?: string; after?: numberInString; before?: numberInString; limit?: numberInString; }): Promise<AssetBillDetails[]>; getLightningDeposits(params: { ccy: string; amt: numberInString; to?: '6' | '18'; }): Promise<any[]>; getDepositAddress(params: { ccy: string; }): Promise<any[]>; getDepositHistory(params?: any): Promise<any[]>; submitWithdraw(params: WithdrawRequest): Promise<WithdrawResponse[]>; submitWithdrawLightning(params: { ccy: string; invoice: string; memo?: string; }): Promise<any[]>; cancelWithdrawal(params: { wdId: string; }): Promise<any[]>; getWithdrawalHistory(params?: WithdrawalHistoryRequest): Promise<any[]>; getDepositWithdrawStatus(params: GetDepositWithdrawStatusRequest): Promise<any[]>; getExchanges(): Promise<any[]>; applyForMonthlyStatement(params?: { month?: string; }): Promise<any[]>; getMonthlyStatement(params: { month: string; }): Promise<any[]>; getConvertCurrencies(): Promise<any[]>; getConvertCurrencyPair(params: { fromCcy: string; toCcy: string; }): Promise<any[]>; estimateConvertQuote(params: ConvertQuoteEstimateRequest): Promise<any[]>; convertTrade(params: ConvertTradeRequest): Promise<any[]>; getConvertHistory(params?: any): Promise<any[]>; /** * * Subaccount - REST endpoints * */ /** View sub-account list */ getSubAccountList(params?: any): Promise<SubAccount[]>; resetSubAccountAPIKey(params: { subAcct: string; apiKey: string; label?: string; perm?: string; ip?: string; }): Promise<SubAccountAPIReset[]>; getSubAccountBalances(params: { subAcct: string; }): Promise<SubAccountBalances[]>; getSubAccountFundingBalances(params: { subAcct: string; ccy?: string; }): Promise<FundingBalance[]>; getSubAccountMaxWithdrawal(params: GetSubAccountMaxWithdrawalsRequest): Promise<SubAccountMaxWithdrawal[]>; /** History of sub-account transfer */ getSubAccountTransferHistory(params?: { ccy?: string; type?: '0' | '1'; subAcct?: string; after?: string; before?: string; limit?: string; }): Promise<any[]>; getManagedSubAccountTransferHistory(params: GetManagedSubAccountTransferHistoryRequest): Promise<ManagedSubAccountTransfer[]>; /** Master accounts manage the transfers between sub-accounts */ transferSubAccountBalance(params: SubAccountTransferRequest): Promise<SubAccountTransferResult[]>; setSubAccountTransferOutPermission(params: { subAcct: string; canTransOut: boolean; }): Promise<any[]>; getSubAccountCustodyTradingList(params?: { subAcct?: string; }): Promise<any[]>; setSubAccountLoanAllocation(params: SetSubAccountLoanAllocationRequest): Promise<{ result: boolean; }[]>; getSubAccountBorrowInterestAndLimit(params: { subAcct: string; ccy?: string; }): Promise<any[]>; /** * * Financial product - on chain earn endpoints * */ /** Get earn offers */ getStakingOffers(params?: { productId?: string; protocolType?: 'staking' | 'defi'; ccy?: string; }): Promise<any[]>; submitStake(params: { productId: string; investData: { ccy: string; amt: string; }[]; term?: string; }): Promise<any[]>; redeemStake(params: { ordId: string; protocolType: 'staking' | 'defi'; allowEarlyRedeem?: boolean; }): Promise<any[]>; cancelStakingRequest(params: { ordId: string; protocolType: 'staking' | 'defi'; }): Promise<any[]>; /** Earn/staking get active orders */ getActiveStakingOrders(params?: { productId?: string; protocolType?: 'staking' | 'defi'; ccy?: string; state?: '8' | '13' | '9' | '1' | '2'; }): Promise<any[]>; /** Earn/staking get order history */ getStakingOrderHistory(params?: { productId?: string; protocolType?: string; ccy?: string; after?: string; before?: string; limit?: string; }): Promise<any[]>; /** * * Financial product - ETH staking endpoints * */ getETHStakingProductInfo(): Promise<any[]>; purchaseETHStaking(params: { amt: string; }): Promise<any[]>; redeemETHStaking(params: { amt: string; }): Promise<any[]>; getETHStakingBalance(): Promise<any[]>; getETHStakingHistory(params: { type: 'purchase' | 'redeem'; status?: 'pending' | 'success' | 'failed'; after?: string; before?: string; limit?: string; }): Promise<any[]>; getAPYHistory(params: { days: string; }): Promise<any[]>; /** * * Financial product - simple earn flexible endpoints * */ getSavingBalance(params?: { ccy?: string; }): Promise<any[]>; savingsPurchaseRedemption(params: { ccy: string; amt: numberInString; side: 'purchase' | 'redempt'; rate: numberInString; }): Promise<any[]>; setLendingRate(params: { ccy: string; rate: numberInString; }): Promise<any[]>; getLendingHistory(params?: PaginatedSymbolRequest): Promise<any[]>; getPublicBorrowInfo(params?: { ccy?: string; }): Promise<any[]>; getPublicBorrowHistory(params?: PaginatedSymbolRequest): Promise<any[]>; /** * * Financial product - simple earn fixed endpoints * */ getLendingOffers(params?: { ccy?: string; term?: string; }): Promise<any[]>; getLendingAPYHistory(params: { ccy: string; term: string; }): Promise<any[]>; getLendingVolume(params: { ccy: string; term: string; }): Promise<any[]>; placeLendingOrder(params: LendingOrder): Promise<any[]>; amendLendingOrder(params: LendingOrder): Promise<any[]>; getLendingOrders(params: GetLendingOrderListRequest): Promise<any[]>; getLendingSubOrders(params: GetLendingSubOrderListRequest): Promise<any[]>; /** * * Financial product - Flexible loan endpoints * */ getBorrowableCurrencies(): Promise<{ borrowCcy: string; }[]>; getCollateralAssets(params?: { ccy?: string; }): Promise<CollateralAssetsResponse[]>; getMaxLoanAmount(params: MaxLoanRequest): Promise<MaxLoanResponse[]>; adjustCollateral(params: AdjustCollateralRequest): Promise<[]>; getLoanInfo(): Promise<LoanInfo[]>; getLoanHistory(params?: LoanHistoryRequest): Promise<LoanHistoryItem[]>; getAccruedInterest(params?: AccruedInterestRequest): Promise<AccruedInterestItem[]>; /** * * Affiliate endpoints * */ getInviteeDetail(params: { uid: string; }): Promise<any[]>; getAffiliateRebateInfo(params: { apiKey: string; }): Promise<any[]>; /** * * Status endpoints (public) * */ getSystemStatus(params: { state?: 'scheduled' | 'ongoing' | 'pre_open' | 'completed' | 'canceled'; }): Promise<any[]>; /** * * Announcement endpoints * */ getAnnouncements(params?: { annType?: string; page?: string; }): Promise<{ totalPage: string; details: Announcement[]; }[]>; getAnnouncementTypes(): Promise<{ annType: string; annTypeDesc: string; }[]>; /** * * Broker endpoints (private) * */ createSubAccount(params: { subAcct: string; label?: string; clientIP?: string; mainAcct: string; }): Promise<any[]>; deleteSubAccount(params: { subAcct: string; }): Promise<any[]>; createSubAccountAPIKey(params: { subAcct: string; label: string; passphrase: string; ip?: string; perm?: string; }): Promise<any[]>; }