cex-adaptors
This package is designed for interacting with many crypto centralized exchanges. Currently only support public API endpoints in Version 1.0.x
. Will add private API endpoints in version 2.0.x
.
Getting started
use pip install cex-adaptor
to install the package.
Usage
After installing the package, you can use the following code start using the adaptors.
All the codes is written in async mode.
from cex_adaptors.binance import Binance
import asyncio
async def main():
binance = Binance()
await binance.sync_exchange_info()
# get exchange info
print(await binance.get_exchange_info())
# get all tickers
print(await binance.get_tickers())
if __name__ == "__main__":
asyncio.run(main())
Unified function parameters and output format
1. get_exchange_info
#### Input
#### Output (Nested Dictionary)
2. get_tickers
#### Input
```json
{
"market": "spot" // must be in "spot", "perp", "futures". If `null` will return all tickers on the exchange
}
```
#### Output (nested dict)
```json
{
"BTC/USDT:USDT" : {
"timestamp": 1630000000000,
"instrument_id": "BTC/USDT:USDT",
"open_time": 1630000000000,
"close_time": 1630000000000,
"open": 10000.0,
"high": 11000.0,
"low": 9000.0,
"last": 10000.0,
"base_volume": 1000.0,
"quote_volume": 10000000.0,
"price_change": 0.0, // must in quote currency
"price_change_percent": 0.01, // must in percentage, if 0.01 means 1%,
"raw_data": {},
},
// many instrument ticker
}
```
3. get_ticker
#### Input
```json
{
"instrument_id": "BTC/USDT:USDT" // must be instrument_id in exchange's exchange info
}
```
#### Output (Dictionary)
```json
{
"BTC/USDT:USDT" : {
"timestamp": 1630000000000,
"instrument_id": "BTC/USDT:USDT",
"open_time": 1630000000000,
"close_time": 1630000000000,
"open": 10000.0,
"high": 11000.0,
"low": 9000.0,
"last": 10000.0,
"base_volume": 1000.0,
"quote_volume": 10000000.0,
"price_change": 0.0, // must in quote currency
"price_change_percent": 0.01, // must in percentage, if 0.01 means 1%,
"raw_data": {},
}
}
```
4. get_current_candlestick
#### Input
```json
{
"instrument_id": "BTC/USDT:USDT-PERP", // required
"interval": "1m", // required, vary from different exchanges
}
```
#### Output (List of Dictionary)
```json
{
"timestamp": 1629350400000, // timestamp in millisecond
"interval": "1m",
"instrument_id": "BTC/USDT:USDT-PERP",
"market_type": "perp", // "spot", "futures", "perp
"open": 10000.0, // open price
"high": 10100, // high price
"low": 9900, // low price
"close": 10050, // close price
"base_volume": 1000, // volume in base currency
"quote_volume": 10000000, // quote volume
"contract_volume": 1000, // contract volume
"raw_data": {} // raw data from exchange
}
```
5. get_history_candlesticks
#### Input
```json
{
"instrument_id": "BTC/USDT:USDT-PERP", // required
"interval": "1m", // required, vary from different exchanges
"start": 1629350400000, // optional, timestamp in millisecond
"end": 1629350400000, // optional, timestamp in millisecond
"num": 100, // optional, number of data to return
}
```
#### Output (List of Dictionary)
```json
[
{
"timestamp": 1629350400000, // timestamp in millisecond
"interval": "1m",
"instrument_id": "BTC/USDT:USDT-PERP",
"market_type": "perp", // "spot", "futures", "perp
"open": 10000.0, // open price
"high": 10100, // high price
"low": 9900, // low price
"close": 10050, // close price
"base_volume": 1000, // volume in base currency
"quote_volume": 10000000, // quote volume
"contract_volume": 1000, // contract volume, if is spot then will equal to base_volume
"raw_data": {} // raw data from exchange
},
// many history candlesticks data
]
```
6. get_current_funding_rate
#### Input
```json
{
"instrument_id": "BTC/USDT:USDT-PERP", // required, funding rate only support futures and perp
}
```
#### Output
```json
{
"BTC/USDT:USDT-PERP": {
"timestamp": 1629350400000, // timestamp in millisecond
"next_funding_time": 1629350400000, // timestamp in milliseconds
"instrument_id": "BTC/USDT:USDT-PERP",
"market_type": "perp",
"funding_rate": 0.001, // funding rate in percentage, 0.01 means 1%
"raw_data": {} // raw data from exchange
}
}
```
7. get_history_funding_rate
#### Input
```json
{
"instrument_id": "BTC/USDT:USDT-PERP", // required, funding rate only support futures and perp
"start": 1629350400000, // optional, timestamp in millisecond
"end": 1629350400000, // optional, timestamp in millisecond
"num": 100, // optional, number of data to return
}
```
**(`start`, `end`)** or **`num`** must be provided, if both provided, use **start** and **end**.
#### Output
```json
[
{
"timestamp": 1629350400000, // timestamp in millisecond
"instrument_id": "BTC/USDT:USDT-PERP",
"market_type": "perp",
"funding_rate": 0.001, // funding rate in percentage, 0.01 means 1%
"realized_rate": 0.001, // realized rate in percentage, 0.01 means 1%
"raw_data": {} // raw data from exchange
}, // many history funding rate data
]
```