com.binance.api.client.impl.BinanceApiService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of binance-api-client Show documentation
Show all versions of binance-api-client Show documentation
Java implementation for Binance API
package com.binance.api.client.impl;
import com.binance.api.client.constant.BinanceApiConstants;
import com.binance.api.client.domain.OrderSide;
import com.binance.api.client.domain.OrderType;
import com.binance.api.client.domain.SwapRemoveType;
import com.binance.api.client.domain.TimeInForce;
import com.binance.api.client.domain.account.*;
import com.binance.api.client.domain.account.request.CancelOrderListResponse;
import com.binance.api.client.domain.account.request.CancelOrderResponse;
import com.binance.api.client.domain.event.ListenKey;
import com.binance.api.client.domain.general.Asset;
import com.binance.api.client.domain.general.ExchangeInfo;
import com.binance.api.client.domain.general.ServerTime;
import com.binance.api.client.domain.market.*;
import retrofit2.Call;
import retrofit2.http.*;
import java.util.List;
/**
* Binance's REST API URL mappings and endpoint security configuration.
*/
public interface BinanceApiService {
// General endpoints
@GET("/api/v1/ping")
Call ping();
@GET("/api/v1/time")
Call getServerTime();
@GET("/api/v3/exchangeInfo")
Call getExchangeInfo();
@GET
Call> getAllAssets(@Url String url);
// Market data endpoints
@GET("/api/v1/depth")
Call getOrderBook(@Query("symbol") String symbol, @Query("limit") Integer limit);
@GET("/api/v1/trades")
Call> getTrades(@Query("symbol") String symbol, @Query("limit") Integer limit);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@GET("/api/v1/historicalTrades")
Call> getHistoricalTrades(@Query("symbol") String symbol, @Query("limit") Integer limit, @Query("fromId") Long fromId);
@GET("/api/v1/aggTrades")
Call> getAggTrades(@Query("symbol") String symbol, @Query("fromId") String fromId, @Query("limit") Integer limit,
@Query("startTime") Long startTime, @Query("endTime") Long endTime);
@GET("/api/v1/klines")
Call> getCandlestickBars(@Query("symbol") String symbol, @Query("interval") String interval, @Query("limit") Integer limit,
@Query("startTime") Long startTime, @Query("endTime") Long endTime);
@GET("/api/v1/ticker/24hr")
Call get24HrPriceStatistics(@Query("symbol") String symbol);
@GET("/api/v1/ticker/24hr")
Call> getAll24HrPriceStatistics();
@GET("/api/v1/ticker/allPrices")
Call> getLatestPrices();
@GET("/api/v3/ticker/price")
Call getLatestPrice(@Query("symbol") String symbol);
@GET("/api/v1/ticker/allBookTickers")
Call> getBookTickers();
// Account endpoints
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/api/v3/order")
Call newOrder(@Query("symbol") String symbol, @Query("side") OrderSide side, @Query("type") OrderType type,
@Query("timeInForce") TimeInForce timeInForce, @Query("quantity") String quantity, @Query("price") String price,
@Query("newClientOrderId") String newClientOrderId, @Query("stopPrice") String stopPrice,
@Query("icebergQty") String icebergQty, @Query("newOrderRespType") NewOrderResponseType newOrderRespType,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/api/v3/order")
Call newOrderQuoteQty(@Query("symbol") String symbol, @Query("side") OrderSide side, @Query("type") OrderType type,
@Query("timeInForce") TimeInForce timeInForce, @Query("quoteOrderQty") String quoteOrderQty, @Query("price") String price,
@Query("newClientOrderId") String newClientOrderId, @Query("stopPrice") String stopPrice,
@Query("icebergQty") String icebergQty, @Query("newOrderRespType") NewOrderResponseType newOrderRespType,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/api/v3/order/test")
Call newOrderTest(@Query("symbol") String symbol, @Query("side") OrderSide side, @Query("type") OrderType type,
@Query("timeInForce") TimeInForce timeInForce, @Query("quantity") String quantity, @Query("price") String price,
@Query("newClientOrderId") String newClientOrderId, @Query("stopPrice") String stopPrice,
@Query("icebergQty") String icebergQty, @Query("newOrderRespType") NewOrderResponseType newOrderRespType,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/order")
Call getOrderStatus(@Query("symbol") String symbol, @Query("orderId") Long orderId,
@Query("origClientOrderId") String origClientOrderId, @Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@DELETE("/api/v3/order")
Call cancelOrder(@Query("symbol") String symbol, @Query("orderId") Long orderId,
@Query("origClientOrderId") String origClientOrderId, @Query("newClientOrderId") String newClientOrderId,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/openOrders")
Call> getOpenOrders(@Query("symbol") String symbol, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/allOrders")
Call> getAllOrders(@Query("symbol") String symbol, @Query("orderId") Long orderId,
@Query("limit") Integer limit, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/api/v3/order/oco")
Call newOCO(@Query("symbol") String symbol, @Query("listClientOrderId") String listClientOrderId, @Query("side") OrderSide side,
@Query("quantity") String quantity, @Query("limitClientOrderId") String limitClientOrderId, @Query("price") String price,
@Query("limitIcebergQty") String limitIcebergQty, @Query("stopClientOrderId")String stopClientOrderId, @Query("stopPrice") String stopPrice,
@Query("stopLimitPrice")String stopLimitPrice, @Query("stopIcebergQty") String stopIcebergQty, @Query("stopLimitTimeInForce") TimeInForce stopLimitTimeInForce,
@Query("newOrderRespType") NewOrderResponseType newOrderRespType, @Query("recvWindow") Long recvWindow, @Query("timestamp") long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@DELETE("/api/v3/orderList")
Call cancelOrderList(@Query("symbol") String symbol, @Query("orderListId") Long orderListId, @Query("listClientOrderId") String listClientOrderId,
@Query("newClientOrderId") String newClientOrderId, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/orderList")
Call getOrderListStatus(@Query("orderListId") Long orderListId, @Query("origClientOrderId") String origClientOrderId,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/allOrderList")
Call> getAllOrderList(@Query("fromId") Long fromId, @Query("startTime") Long startTime, @Query("endTime") Long endTime,
@Query("limit") Integer limit, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/account")
Call getAccount(@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/myTrades")
Call> getMyTrades(@Query("symbol") String symbol, @Query("limit") Integer limit, @Query("fromId") Long fromId,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/wapi/v3/withdraw.html")
Call withdraw(@Query("asset") String asset, @Query("address") String address, @Query("amount") String amount, @Query("name") String name, @Query("addressTag") String addressTag,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/wapi/v3/depositHistory.html")
Call getDepositHistory(@Query("asset") String asset, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/wapi/v3/withdrawHistory.html")
Call getWithdrawHistory(@Query("asset") String asset, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/wapi/v3/depositAddress.html")
Call getDepositAddress(@Query("asset") String asset, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/sapi/v1/asset/dust")
Call dustTransfer(@Query("asset") List asset, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/sapi/v1/sub-account/transfer/subUserHistory")
Call> getSubAccountTransfers(@Query("timestamp") Long timestamp);
// User stream endpoints
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@POST("/api/v1/userDataStream")
Call startUserDataStream();
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@PUT("/api/v1/userDataStream")
Call keepAliveUserDataStream(@Query("listenKey") String listenKey);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@DELETE("/api/v1/userDataStream")
Call closeAliveUserDataStream(@Query("listenKey") String listenKey);
// Margin Account endpoints
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@POST("/sapi/v1/margin/transfer")
Call transfer(@Query("asset") String asset, @Query("amount") String amount, @Query("type") String type, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@POST("/sapi/v1/margin/loan")
Call borrow(@Query("asset") String asset, @Query("amount") String amount, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/margin/loan")
Call queryLoan(@Query("asset") String asset, @Query("txId") String txId, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/margin/repay")
Call queryRepay(@Query("asset") String asset, @Query("txId") String txId, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/margin/maxBorrowable")
Call queryMaxBorrowable(@Query("asset") String asset, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/margin/repay")
Call queryRepay(@Query("asset") String asset, @Query("startTime") Long starttime, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@POST("/sapi/v1/margin/repay")
Call repay(@Query("asset") String asset, @Query("amount") String amount, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/margin/account")
Call getMarginAccount(@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/margin/openOrders")
Call> getOpenMarginOrders(@Query("symbol") String symbol, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@POST("/sapi/v1/margin/order")
Call newMarginOrder(@Query("symbol") String symbol, @Query("side") OrderSide side, @Query("type") OrderType type,
@Query("timeInForce") TimeInForce timeInForce, @Query("quantity") String quantity,
@Query("price") String price, @Query("newClientOrderId") String newClientOrderId, @Query("stopPrice") String stopPrice,
@Query("icebergQty") String icebergQty, @Query("newOrderRespType") NewOrderResponseType newOrderRespType,
@Query("sideEffectType") SideEffectType sideEffectType, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@DELETE("/sapi/v1/margin/order")
Call cancelMarginOrder(@Query("symbol") String symbol, @Query("orderId") Long orderId,
@Query("origClientOrderId") String origClientOrderId, @Query("newClientOrderId") String newClientOrderId,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/sapi/v1/margin/order")
Call getMarginOrderStatus(@Query("symbol") String symbol, @Query("orderId") Long orderId,
@Query("origClientOrderId") String origClientOrderId, @Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/sapi/v1/margin/myTrades")
Call> getMyMarginTrades(@Query("symbol") String symbol, @Query("limit") Integer limit, @Query("fromId") Long fromId,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@POST("/sapi/v1/userDataStream")
Call startMarginUserDataStream();
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@PUT("/sapi/v1/userDataStream")
Call keepAliveMarginUserDataStream(@Query("listenKey") String listenKey);
// Binance Liquidity Swap Pool endpoints
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
@GET("/sapi/v1/bswap/pools")
Call> listAllSwapPools();
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/bswap/liquidity")
Call> getPoolLiquidityInfo(@Query("poolId") String poolId,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@POST("/sapi/v1/bswap/liquidityAdd")
Call addLiquidity(@Query("poolId") String poolId,
@Query("asset") String asset,
@Query("quantity") String quantity,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@POST("/sapi/v1/bswap/liquidityRemove")
Call removeLiquidity(@Query("poolId") String poolId,
@Query("type") SwapRemoveType type,
@Query("asset") List asset,
@Query("shareAmount") String shareAmount,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/bswap/liquidityOps")
Call> getPoolLiquidityOperationRecords(
@Query("poolId") String poolId,
@Query("limit") Integer limit,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/bswap/liquidityOps")
Call> getLiquidityOperationRecord(
@Query("operationId") String operationId,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/bswap/quote")
Call requestQuote(
@Query("quoteAsset") String quoteAsset,
@Query("baseAsset") String baseAsset,
@Query("quoteQty") String quoteQty,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@POST("/sapi/v1/bswap/swap")
Call swap(
@Query("quoteAsset") String quoteAsset,
@Query("baseAsset") String baseAsset,
@Query("quoteQty") String quoteQty,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
@GET("/sapi/v1/bswap/swap")
Call> getSwapHistory(
@Query("swapId") String swapId,
@Query("recvWindow") Long recvWindow,
@Query("timestamp") Long timestamp);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy