Aster USDF 백서

Aster USDF

원문

bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 42쪽 중 31쪽

-sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9" (stdin)= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9 ``` > **curl command:** ``` (HMAC SHA256) $ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi/asterdex.com/fapi/v1/order?symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTC' -d 'quantity=1&price=9000&recvWindow=5000&timestamp=1591702613943&signature=3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9' ``` * **queryString:** symbol=BTCUSDT\&side=BUY\&type=LIMIT\&timeInForce=GTC * **requestBody:** quantity=1\&price=9000\&recvWindow=5000\&timestamp= 1591702613943 Note that the signature is different in example 3.\ There is no & between "GTC" and "quantity=1". ### Public endpoints info #### Terminology * `base asset` refers to the asset that is the `quantity` of a symbol. * `quote asset` refers to the asset that is the `price` of a symbol. #### ENUM definitions **Symbol type:** * FUTURE **Contract type (contractType):** * PERPETUAL **Contract status (contractStatus, status):** * PENDING\_TRADING * TRADING * PRE\_SETTLE * SETTLING * CLOSE **Order status (status):** * NEW * PARTIALLY\_FILLED * FILLED * CANCELED * REJECTED * EXPIRED **Order types (orderTypes, type):** * LIMIT * MARKET * STOP * STOP\_MARKET * TAKE\_PROFIT * TAKE\_PROFIT\_MARKET * TRAILING\_STOP\_MARKET **Order side (side):** * BUY * SELL **Position side (positionSide):** * BOTH * LONG * SHORT **Time in force (timeInForce):** * GTC - Good Till Cancel * IOC - Immediate or Cancel * FOK - Fill or Kill * GTX - Good Till Crossing (Post Only) **Working Type (workingType)** * MARK\_PRICE * CONTRACT\_PRICE **Response Type (newOrderRespType)** * ACK * RESULT **Kline/Candlestick chart intervals:** m → minutes; h → hours; d → days; w → weeks; M → months * 1m * 3m * 5m * 15m * 30m * 1h * 2h * 4h * 6h * 8h * 12h * 1d * 3d * 1w * 1M **Rate limiters (rateLimitType)** > REQUEST\_WEIGHT ``` { "rateLimitType": "REQUEST_WEIGHT", "interval": "MINUTE", "intervalNum": 1, "limit": 2400 } ``` > ORDERS ``` { "rateLimitType": "ORDERS", "interval": "MINUTE", "intervalNum": 1, "limit": 1200 } ``` * REQUEST\_WEIGHT * ORDERS **Rate limit intervals (interval)** * MINUTE ### Filters Filters define trading rules on a symbol or an exchange. #### Symbol filters **PRICE\_FILTER** > **/exchangeInfo format:** ``` { "filterType": "PRICE_FILTER", "minPrice": "0.00000100", "maxPrice": "100000.00000000", "tickSize": "0.00000100" } ``` The `PRICE_FILTER` defines the `price` rules for a symbol. There are 3 parts: * `minPrice` defines the minimum `price`/`stopPrice` allowed; disabled on `minPrice` == 0. * `maxPrice` defines the maximum `price`/`stopPrice` allowed; disabled on `maxPrice` == 0. * `tickSize` defines the intervals that a `price`/`stopPrice` can be increased/decreased by; disabled on `tickSize` == 0. Any of the above variables can be set to 0, which disables that rule in the `price filter`. In order to pass the `price filter`, the following must be true for `price`/`stopPrice` of the enabled rules: * `price` >= `minPrice` * `price` <= `maxPrice` * (`price`-`minPrice`) % `tickSize` == 0 **LOT\_SIZE** > **/exchangeInfo format:** ``` { "filterType": "LOT_SIZE", "minQty": "0.00100000", "maxQty": "100000.00000000", "stepSize": "0.00100000" } ``` The `LOT_SIZE` filter defines the `quantity` (aka "lots" in auction terms) rules for a symbol. There are 3 parts: * `minQty` defines the minimum `quantity` allowed. * `maxQty` defines the maximum `quantity` allowed. * `stepSize` defines the intervals that a `quantity` can be increased/decreased by. In order to pass the `lot size`, the following must be true for `quantity`: * `quantity` >= `minQty` * `quantity` <= `maxQty` * (`quantity`-`minQty`) % `stepSize` == 0 **MARKET\_LOT\_SIZE** > **/exchangeInfo format:** ``` { "filterType": "MARKET_LOT_SIZE", "minQty": "0.00100000", "maxQty": "100000.00000000", "stepSize": "0.00100000" } ``` The `MARKET_LOT_SIZE` filter defines the `quantity` (aka "lots" in auction terms) rules for `MARKET` orders on a symbol. There are 3 parts: * `minQty` defines the minimum `quantity` allowed. * `maxQty` defines the maximum `quantity` allowed. * `stepSize` defines the intervals that a `quantity` can be increased/decreased by. In order to pass the `market lot size`, the following must be true for `quantity`: * `quantity` >= `minQty` * `quantity` <= `maxQty` * (`quantity`-`minQty`) % `stepSize` == 0 **MAX\_NUM\_ORDERS** > **/exchangeInfo format:** ``` { "filterType": "MAX_NUM_ORDERS", "limit": 200 } ``` The `MAX_NUM_ORDERS` filter defines the maximum number of orders an account is allowed to have open on a symbol. Note that both "algo" orders and normal orders are counted for this filter. **MAX\_NUM\_ALGO\_ORDERS** > **/exchangeInfo format:** ``` { "filterType": "MAX_NUM_ALGO_ORDERS", "limit": 100 } ``` The `MAX_NUM_ALGO_ORDERS` filter defines the maximum number of all kinds of algo orders an account is allowed to have open on a symbol. The algo orders include `STOP`, `STOP_MARKET`, `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`, and `TRAILING_STOP_MARKET` orders. **PERCENT\_PRICE** > **/exchangeInfo format:** ``` { "filterType": "PERCENT_PRICE", "multiplierUp": "1.1500", "multiplierDown": "0.8500", "multiplierDecimal": 4 } ``` The `PERCENT_PRICE` filter defines valid range for a price based on the mark price. In order to pass the `percent price`, the following must be true for `price`: * BUY: `price` <= `markPrice` \* `multiplierUp` * SELL: `price` >= `markPrice` \* `multiplierDown` **MIN\_NOTIONAL** > **/exchangeInfo format:** ``` { "filterType": "MIN_NOTIONAL", "notional": "1" } ``` The `MIN_NOTIONAL` filter defines the minimum notional value allowed for an order on a symbol. An order's notional value is the `price` \* `quantity`. Since `MARKET` orders have no price, the mark price is used. *** ## Market data endpoints ### Test connectivity > **Response:** ``` {} ``` `GET /fapi/v1/ping` Test connectivity to the Rest API. **Weight:** 1 **Parameters:** NONE ### ### Check Server Time > **Response:** ``` { "serverTime": 1499827319559 } ``` `GET /fapi/v1/time` Test connectivity to the Rest API and get the current server time. **Weight:** 1 **Parameters:** NONE ### ### Exchange information > **Response:** ``` { "exchangeFilters": [], "rateLimits": [ { "interval": "MINUTE", "intervalNum": 1, "limit": 2400, "rateLimitType": "REQUEST_WEIGHT" }, { "interval": "MINUTE", "intervalNum": 1, "limit": 1200, "rateLimitType": "ORDERS" } ], "serverTime": 1565613908500, // Ignore please. If you want to check current server time, please check via "GET /fapi/v1/time" "assets": [ // assets information { "asset": "BUSD", "marginAvailable": true, // whether the asset can be used as margin in Multi-Assets mode "autoAssetExchange": 0 // auto-exchange threshold in Multi-Assets margin mode }, { "asset": "USDT", "marginAvailable": true, "autoAssetExchange": 0 }, { "asset": "BTC", "marginAvailable": false, "autoAssetExchange": null } ], "symbols": [ { "symbol": "DOGEUSDT", "pair": "DOGEUSDT", "contractType": "PERPETUAL", "deliveryDate": 4133404800000, "onboardDate": 1598252400000, "status": "TRADING", "maintMarginPercent": "2.5000", // ignore "requiredMarginPercent": "5.0000", // ignore "baseAsset": "BLZ", "quoteAsset": "USDT", "marginAsset": "USDT", "pricePrecision": 5, // please do not use it as tickSize "quantityPrecision": 0, // please do not use it as stepSize "baseAssetPrecision": 8, "quotePrecision": 8, "underlyingType": "COIN", "underlyingSubType": ["STORAGE"], "settlePlan": 0, "triggerProtect": "0.15", // threshold for algo order with "priceProtect" "filters": [ { "filterType": "PRICE_FILTER", "maxPrice": "300", "minPrice": "0.0001", "tickSize": "0.0001" }, { "filterType": "LOT_SIZE", "maxQty": "10000000", "minQty": "1", "stepSize": "1" }, { "filterType": "MARKET_LOT_SIZE", "maxQty": "590119", "minQty": "1", "stepSize": "1" }, { "filterType": "MAX_NUM_ORDERS", "limit": 200 }, { "filterType": "MAX_NUM_ALGO_ORDERS", "limit": 100 }, { "filterType": "MIN_NOTIONAL", "notional": "1", }, { "filterType": "PERCENT_PRICE", "multiplierUp": "1.1500", "multiplierDown": "0.8500", "multiplierDecimal": 4 } ], "OrderType": [ "LIMIT", "MARKET", "STOP", "STOP_MARKET", "TAKE_PROFIT", "TAKE_PROFIT_MARKET", "TRAILING_STOP_MARKET" ], "timeInForce": [ "GTC", "IOC", "FOK", "GTX" ], "liquidationFee": "0.010000", // liquidation fee rate "marketTakeBound": "0.30", // the max price difference rate( from mark price) a market order can make } ], "timezone": "UTC" } ``` `GET /fapi/v1/exchangeInfo` Current exchange trading rules and symbol information. **Weight:** 1 **Parameters:** NONE ### ### Order book > **Response:** ``` { "lastUpdateId": 1027024, "E": 1589436922972, // Message output time "T": 1589436922959, // Transaction time "bids": [ [ "4.00000000", // PRICE "431.00000000" // QTY ] ], "asks": [ [ "4.00000200", "12.00000000" ] ] } ``` `GET /fapi/v1/depth` **Weight:** Adjusted based on the limit: | Limit | Weight | | ------------- | ------ | | 5, 10, 20, 50 | 2 | | 100 | 5 | | 500 | 10 | | 1000 | 20 | **Parameters:** | Name | Type | Mandatory | Description | | ------ | ------ | --------- | ----------------------------------------------------------- | | symbol | STRING | YES | | | limit | INT | NO | Default 500; Valid limits: \[5, 10, 20, 50, 100, 500, 1000] | ### Recent trades list > **Response:** ``` [ { "id": 28457, "price": "4.00000100", "qty": "12.00000000", "quoteQty": "48.00", "time": 1499865549590, "isBuyerMaker": true, } ] ``` `GET /fapi/v1/trades` Get recent market trades **Weight:** 1 **Parameters:** | Name | Type | Mandatory | Description | | ------ | ------ | --------- | ---------------------- | | symbol | STRING | YES | | | limit | INT | NO | Default 500; max 1000. | * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned. ### ### Old trades lookup (MARKET\_DATA) > **Response:** ``` [ { "id": 28457, "price": "4.00000100", "qty": "12.00000000", "quoteQty": "8000.00", "time": 1499865549590, "isBuyerMaker": true, } ] ``` `GET /fapi/v1/historicalTrades` Get older market historical trades. **Weight:** 20 **Parameters:** | Name | Type | Mandatory | Description | | ------ | ------ | --------- | ------------------------------------------------------- | | symbol | STRING | YES | | | limit | INT | NO | Default 500; max 1000. | | fromId | LONG | NO | TradeId to fetch from. Default gets most recent trades. | * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned. ### ### Compressed/Aggregate trades list > **Response:** ``` [ { "a": 26129, // Aggregate tradeId "p": "0.01633102", // Price "q": "4.70443515", // Quantity "f": 27781, // First tradeId "l": 27781, // Last tradeId "T": 1498793709153, // Timestamp "m": true, // Was the buyer the maker? } ] ``` `GET /fapi/v1/aggTrades` Get compressed, aggregate market trades. Market trades that fill at the time, from the same order, with the same price will have the quantity aggregated. **Weight:** 20 **Parameters:** | Name | Type | Mandatory | Description | | --------- | ------ | --------- | -------------------------------------------------------- | | symbol | STRING | YES | | | fromId | LONG | NO | ID to get aggregate trades from INCLUSIVE. | | startTime | LONG | NO | Timestamp in ms to get aggregate trades from INCLUSIVE. | | endTime | LONG | NO | Timestamp in ms to get aggregate trades until INCLUSIVE. | | limit | INT | NO | Default 500; max 1000. | * If both startTime and endTime are sent, time between startTime and endTime must be less than 1 hour. * If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned. * Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated. ### Kline/Candlestick data > **Response:** ``` [ [ 1499040000000, // Open time "0.01634790", // Open "0.80000000", // High "0.01575800", // Low "0.01577100", // Close "148976.11427815", // Volume 1499644799999, // Close time "2434.19055334", // Quote asset volume 308, // Number of trades "1756.87402397", // Taker buy base asset volume "28.46694368", // Taker buy quote asset volume "17928899.62484339" // Ignore. ] ] ``` `GET /fapi/v1/klines` Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time. **Weight:** based on parameter `LIMIT` | LIMIT | Weight | | ------------ | ------ | | \[1,100) | 1 | | \[100, 500) | 2 | | \[500, 1000] | 5 | > 1000 | 10 **Parameters:** | Name | Type | Mandatory | Description | | --------- | ------ | --------- | ---------------------- | | symbol | STRING | YES | | | interval | ENUM | YES | | | startTime | LONG | NO | | | endTime | LONG | NO | | | limit | INT | NO | Default 500; max 1500. | * If startTime and endTime are not sent, the most recent klines are returned. ### Index price kline/candlestick data > **Response:** ``` [ [ 1591256400000, // Open time "9653.69440000", // Open "9653.69640000", // High "9651.38600000", // Low "9651.55200000", // Close (or latest price) "0 ", // Ignore 1591256459999, // Close time "0", // Ignore 60, // Number of bisic data "0", // Ignore "0", // Ignore "0" // Ignore ] ] ``` `GET /fapi/v1/indexPriceKlines` Kline/candlestick bars for the index price of a pair. Klines are uniquely identified by their open time. **Weight:** based on parameter `LIMIT` | Limit | Weight | | ------------ | ------ | | \[1,100) | 1 | | \[100, 500) | 2 | | \[500, 1000] | 5 | > 1000 | 10 **Parameters:** | Name | Type | Mandatory | Description | | --------- | ------ | --------- | ---------------------- | | pair | STRING | YES | | | interval | ENUM | YES | | | startTime | LONG | NO | | | endTime | LONG | NO | | | limit | INT | NO | Default 500; max 1500. | * If startTime and endTime are not sent, the most recent klines are returned. ### Mark Price Kline/Candlestick Data > **Response:** ``` [ [ 1591256460000, // Open time "9653.29201333", // Open "9654.56401333", // High "9653.07367333", // Low "9653.07367333", // Close (or latest price) "0 ", // Ignore 1591256519999, // Close time "0", // Ignore 60, // Number of bisic data "0", // Ignore "0", // Ignore "0" // Ignore ] ] ``` `GET /fapi/v1/markPriceKlines` Kline/candlestick bars for the mark price of a symbol. Klines are uniquely identified by their open time. **Weight:** based on parameter `LIMIT` | Limit | Weight | | ------------ | ------ | | \[1,100) | 1 | | \[100, 500) | 2 | | \[500, 1000] | 5 | > 1000 | 10 **Parameters:** | Name | Type | Mandatory | Description | | --------- | ------ | --------- | ---------------------- | | symbol | STRING | YES | | | interval | ENUM | YES | | | startTime | LONG | NO | | | endTime | LONG | NO | | | limit | INT | NO | Default 500; max 1500. | * If startTime and endTime are not sent, the most recent klines are returned. ### ### Mark Price > **Response:** ``` { "symbol": "BTCUSDT", "markPrice": "11793.63104562", // mark price "indexPrice": "11781.80495970", // index price "estimatedSettlePrice": "11781.16138815", // Estimated Settle Price, only useful in the last hour before the settlement starts. "lastFundingRate": "0.00038246", // This is the lasted funding rate "nextFundingTime": 1597392000000, "interestRate": "0.00010000", "time": 1597370495002 } ``` > **OR (when symbol not sent)** ``` [ { "symbol": "BTCUSDT", "markPrice": "11793.63104562", // mark price "indexPrice": "11781.80495970", // index price "estimatedSettlePrice": "11781.16138815", // Estimated Settle Price, only useful in the last hour before the settlement starts. "lastFundingRate": "0.00038246", // This is the lasted funding rate "nextFundingTime": 1597392000000, "interestRate": "0.00010000", "time": 1597370495002 } ] ``` `GET /fapi/v1/premiumIndex` Mark Price and Funding Rate **Weight:** 1 **Parameters:** | Name | Type | Mandatory | Description | | ------ | ------ | --------- | ----------- | | symbol | STRING | NO | | ### Get funding rate history > **Response:** ``` [ { "symbol": "BTCUSDT", "fundingRate": "-0.03750000", "fundingTime": 1570608000000, }, { "symbol": "BTCUSDT", "fundingRate": "0.00010000", "fundingTime": 1570636800000, } ] ``` `GET /fapi/v1/fundingRate` **Weight:** 1 **Parameters:** | Name | Type | Mandatory | Description | | --------- | ------ | --------- | ---------------------------------------------------- | | symbol | STRING | NO | | | startTime | LONG | NO | Timestamp in ms to get funding rate from INCLUSIVE. | | endTime | LONG | NO | Timestamp in ms to get funding rate until INCLUSIVE. | | limit | INT | NO | Default 100; max 1000 | * If `startTime` and `endTime` are not sent, the most recent `limit` datas are returned. * If the number of data between `startTime` and `endTime` is larger than `limit`, return as `startTime` + `limit`. * In ascending order. ### ### 24hr ticker price change statistics > **Response:** ``` { "symbol": "BTCUSDT", "priceChange": "-94.99999800", "priceChangePercent": "-95.960", "weightedAvgPrice": "0.29628482", "prevClosePrice": "0.10002000", "lastPrice": "4.00000200", "lastQty": "200.00000000", "openPrice": "99.00000000", "highPrice": "100.00000000", "lowPrice": "0.10000000", "volume": "8913.30000000", "quoteVolume": "15.30000000", "openTime": 1499783499040, "closeTime": 1499869899040, "firstId": 28385, // First tradeId "lastId": 28460, // Last tradeId "count": 76 // Trade count } ``` > OR ``` [ { "symbol": "BTCUSDT", "priceChange": "-94.99999800", "priceChangePercent": "-95.960", "weightedAvgPrice": "0.29628482", "prevClosePrice": "0.10002000", "lastPrice": "4.00000200", "lastQty": "200.00000000", "openPrice": "99.00000000", "highPrice": "100.00000000", "lowPrice": "0.10000000", "volume": "8913.30000000", "quoteVolume": "15.30000000", "openTime": 1499783499040, "closeTime": 1499869899040, "firstId": 28385, // First tradeId "lastId": 28460, // Last tradeId "count": 76 // Trade count } ] ``` `GET /fapi/v1/ticker/24hr` 24 hour rolling window price change statistics.\ **Careful** when accessing this with no symbol. **Weight:**\ 1 for a single symbol;\ **40** when the symbol parameter is omitted **Parameters:** | Name | Type | Mandatory | Description | | ------ | ------ | --------- | ----------- | | symbol | STRING | NO | | * If the symbol is not sent, tickers for all symbols will be returned in an array. ### Symbol price ticker > **Response:** ``` { "symbol": "BTCUSDT", "price": "6000.01", "time": 1589437530011 // Transaction time } ``` > OR ``` [ { "symbol": "BTCUSDT", "price": "6000.01", "time": 1589437530011 } ] ``` `GET /fapi/v1/ticker/price` Latest price for a symbol or symbols. **Weight:**\ **1** for a single symbol;\ **2** when the symbol parameter is omitted **Parameters:** | Name | Type | Mandatory | Description | | ------ | ------ | --------- | ----------- | | symbol | STRING | NO | | * If the symbol is not sent, prices for all symbols will be returned in an array. ### Symbol order book ticker > **Response:** ``` { "symbol": "BTCUSDT", "bidPrice": "4.00000000", "bidQty": "431.00000000", "askPrice": "4.00000200", "askQty": "9.00000000", "time": 1589437530011 // Transaction time } ``` > OR ``` [ { "symbol": "BTCUSDT", "bidPrice": "4.00000000", "bidQty": "431.00000000", "askPrice": "4.00000200", "askQty": "9.
프로젝트로 돌아가기