Name | bitmex-api JSON |
Version |
0.0.78
JSON |
| download |
home_page | None |
Summary | bitmex crypto exchange api client |
upload_time | 2025-07-30 15:49:57 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
|
coveralls test coverage |
No coveralls.
|
# bitmex-python
Python SDK (sync and async) for Bitmex cryptocurrency exchange with Rest and WS capabilities.
- You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/bitmex)
- You can check Bitmex's docs here: [Docs](https://www.google.com/search?q=google+bitmex+cryptocurrency+exchange+api+docs)
- Github repo: https://github.com/ccxt/bitmex-python
- Pypi package: https://pypi.org/project/bitmex-api
## Installation
```
pip install bitmex-api
```
## Usage
### Sync
```Python
from bitmex import BitmexSync
def main():
instance = BitmexSync({})
ob = instance.fetch_order_book("BTC/USDC")
print(ob)
#
# balance = instance.fetch_balance()
# order = instance.create_order("BTC/USDC", "limit", "buy", 1, 100000)
main()
```
### Async
```Python
import sys
import asyncio
from bitmex import BitmexAsync
### on Windows, uncomment below:
# if sys.platform == 'win32':
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
async def main():
instance = BitmexAsync({})
ob = await instance.fetch_order_book("BTC/USDC")
print(ob)
#
# balance = await instance.fetch_balance()
# order = await instance.create_order("BTC/USDC", "limit", "buy", 1, 100000)
# once you are done with the exchange
await instance.close()
asyncio.run(main())
```
### Websockets
```Python
import sys
from bitmex import BitmexWs
### on Windows, uncomment below:
# if sys.platform == 'win32':
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
async def main():
instance = BitmexWs({})
while True:
ob = await instance.watch_order_book("BTC/USDC")
print(ob)
# orders = await instance.watch_orders("BTC/USDC")
# once you are done with the exchange
await instance.close()
asyncio.run(main())
```
#### Raw call
You can also construct custom requests to available "implicit" endpoints
```Python
request = {
'type': 'candleSnapshot',
'req': {
'coin': coin,
'interval': tf,
'startTime': since,
'endTime': until,
},
}
response = await instance.public_post_info(request)
```
## Available methods
### REST Unified
- `create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
- `fetch_balance(self, params={})`
- `fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_currencies(self, params={})`
- `fetch_deposit_address(self, code: str, params={})`
- `fetch_deposit_withdraw_fees(self, codes: Strings = None, params={})`
- `fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_funding_rates(self, symbols: Strings = None, params={})`
- `fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_leverages(self, symbols: Strings = None, params={})`
- `fetch_liquidations(self, symbol: str, since: Int = None, limit: Int = None, params={})`
- `fetch_markets(self, params={})`
- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`
- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_order_book(self, symbol: str, limit: Int = None, params={})`
- `fetch_order(self, id: str, symbol: Str = None, params={})`
- `fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `fetch_positions(self, symbols: Strings = None, params={})`
- `fetch_ticker(self, symbol: str, params={})`
- `fetch_tickers(self, symbols: Strings = None, params={})`
- `fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={})`
- `amount_to_precision(self, symbol, amount)`
- `calculate_rate_limiter_cost(self, api, method, path, params, config={})`
- `cancel_all_orders_after(self, timeout: Int, params={})`
- `cancel_all_orders(self, symbol: Str = None, params={})`
- `cancel_order(self, id: str, symbol: Str = None, params={})`
- `cancel_orders(self, ids, symbol: Str = None, params={})`
- `convert_from_raw_cost(self, symbol, rawQuantity)`
- `convert_from_raw_quantity(self, symbol, rawQuantity, currencySide='base')`
- `convert_from_real_amount(self, code, amount)`
- `convert_to_real_amount(self, code: Str, amount: Str)`
- `describe(self)`
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
- `nonce(self)`
- `set_leverage(self, leverage: Int, symbol: Str = None, params={})`
- `set_margin_mode(self, marginMode: str, symbol: Str = None, params={})`
- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`
### REST Raw
- `public_get_announcement(request)`
- `public_get_announcement_urgent(request)`
- `public_get_chat(request)`
- `public_get_chat_channels(request)`
- `public_get_chat_connected(request)`
- `public_get_chat_pinned(request)`
- `public_get_funding(request)`
- `public_get_guild(request)`
- `public_get_instrument(request)`
- `public_get_instrument_active(request)`
- `public_get_instrument_activeandindices(request)`
- `public_get_instrument_activeintervals(request)`
- `public_get_instrument_compositeindex(request)`
- `public_get_instrument_indices(request)`
- `public_get_instrument_usdvolume(request)`
- `public_get_insurance(request)`
- `public_get_leaderboard(request)`
- `public_get_liquidation(request)`
- `public_get_orderbook_l2(request)`
- `public_get_porl_nonce(request)`
- `public_get_quote(request)`
- `public_get_quote_bucketed(request)`
- `public_get_schema(request)`
- `public_get_schema_websockethelp(request)`
- `public_get_settlement(request)`
- `public_get_stats(request)`
- `public_get_stats_history(request)`
- `public_get_stats_historyusd(request)`
- `public_get_trade(request)`
- `public_get_trade_bucketed(request)`
- `public_get_wallet_assets(request)`
- `public_get_wallet_networks(request)`
- `private_get_address(request)`
- `private_get_apikey(request)`
- `private_get_execution(request)`
- `private_get_execution_tradehistory(request)`
- `private_get_globalnotification(request)`
- `private_get_leaderboard_name(request)`
- `private_get_order(request)`
- `private_get_porl_snapshots(request)`
- `private_get_position(request)`
- `private_get_user(request)`
- `private_get_user_affiliatestatus(request)`
- `private_get_user_checkreferralcode(request)`
- `private_get_user_commission(request)`
- `private_get_user_csa(request)`
- `private_get_user_depositaddress(request)`
- `private_get_user_executionhistory(request)`
- `private_get_user_getwallettransferaccounts(request)`
- `private_get_user_margin(request)`
- `private_get_user_quotefillratio(request)`
- `private_get_user_quotevalueratio(request)`
- `private_get_user_staking(request)`
- `private_get_user_staking_instruments(request)`
- `private_get_user_staking_tiers(request)`
- `private_get_user_tradingvolume(request)`
- `private_get_user_unstakingrequests(request)`
- `private_get_user_wallet(request)`
- `private_get_user_wallethistory(request)`
- `private_get_user_walletsummary(request)`
- `private_get_useraffiliates(request)`
- `private_get_userevent(request)`
- `private_post_address(request)`
- `private_post_chat(request)`
- `private_post_guild(request)`
- `private_post_guild_archive(request)`
- `private_post_guild_join(request)`
- `private_post_guild_kick(request)`
- `private_post_guild_leave(request)`
- `private_post_guild_sharestrades(request)`
- `private_post_order(request)`
- `private_post_order_cancelallafter(request)`
- `private_post_order_closeposition(request)`
- `private_post_position_isolate(request)`
- `private_post_position_leverage(request)`
- `private_post_position_risklimit(request)`
- `private_post_position_transfermargin(request)`
- `private_post_user_addsubaccount(request)`
- `private_post_user_cancelwithdrawal(request)`
- `private_post_user_communicationtoken(request)`
- `private_post_user_confirmemail(request)`
- `private_post_user_confirmwithdrawal(request)`
- `private_post_user_logout(request)`
- `private_post_user_preferences(request)`
- `private_post_user_requestwithdrawal(request)`
- `private_post_user_unstakingrequests(request)`
- `private_post_user_updatesubaccount(request)`
- `private_post_user_wallettransfer(request)`
- `private_put_guild(request)`
- `private_put_order(request)`
- `private_delete_order(request)`
- `private_delete_order_all(request)`
- `private_delete_user_unstakingrequests(request)`
### WS Unified
- `describe(self)`
- `watch_ticker(self, symbol: str, params={})`
- `watch_tickers(self, symbols: Strings = None, params={})`
- `watch_liquidations(self, symbol: str, since: Int = None, limit: Int = None, params={})`
- `watch_liquidations_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={})`
- `watch_balance(self, params={})`
- `watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={})`
- `authenticate(self, params={})`
- `watch_positions(self, symbols: Strings = None, since: Int = None, limit: Int = None, params={})`
- `watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
- `watch_order_book(self, symbol: str, limit: Int = None, params={})`
- `watch_order_book_for_symbols(self, symbols: List[str], limit: Int = None, params={})`
- `watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={})`
- `watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`
- `watch_heartbeat(self, params={})`
## Contribution
- Give us a star :star:
- Fork and Clone! Awesome
- Select existing issues or create a new issue.
Raw data
{
"_id": null,
"home_page": null,
"name": "bitmex-api",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "CCXT <info@ccxt.trade>",
"download_url": "https://files.pythonhosted.org/packages/03/57/c3212db1b78742082eca68868ea5ef021ab2b3b8488c4e050b235eea444a/bitmex_api-0.0.78.tar.gz",
"platform": null,
"description": "# bitmex-python\nPython SDK (sync and async) for Bitmex cryptocurrency exchange with Rest and WS capabilities.\n\n- You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/bitmex)\n- You can check Bitmex's docs here: [Docs](https://www.google.com/search?q=google+bitmex+cryptocurrency+exchange+api+docs)\n- Github repo: https://github.com/ccxt/bitmex-python\n- Pypi package: https://pypi.org/project/bitmex-api\n\n\n## Installation\n\n```\npip install bitmex-api\n```\n\n## Usage\n\n### Sync\n\n```Python\nfrom bitmex import BitmexSync\n\ndef main():\n instance = BitmexSync({})\n ob = instance.fetch_order_book(\"BTC/USDC\")\n print(ob)\n #\n # balance = instance.fetch_balance()\n # order = instance.create_order(\"BTC/USDC\", \"limit\", \"buy\", 1, 100000)\n\nmain()\n```\n\n### Async\n\n```Python\nimport sys\nimport asyncio\nfrom bitmex import BitmexAsync\n\n### on Windows, uncomment below:\n# if sys.platform == 'win32':\n# \tasyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())\n\nasync def main():\n instance = BitmexAsync({})\n ob = await instance.fetch_order_book(\"BTC/USDC\")\n print(ob)\n #\n # balance = await instance.fetch_balance()\n # order = await instance.create_order(\"BTC/USDC\", \"limit\", \"buy\", 1, 100000)\n\n # once you are done with the exchange\n await instance.close()\n\nasyncio.run(main())\n```\n\n\n\n### Websockets\n\n```Python\nimport sys\nfrom bitmex import BitmexWs\n\n### on Windows, uncomment below:\n# if sys.platform == 'win32':\n# \tasyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())\n\nasync def main():\n instance = BitmexWs({})\n while True:\n ob = await instance.watch_order_book(\"BTC/USDC\")\n print(ob)\n # orders = await instance.watch_orders(\"BTC/USDC\")\n\n # once you are done with the exchange\n await instance.close()\n\nasyncio.run(main())\n```\n\n\n\n\n\n#### Raw call\n\nYou can also construct custom requests to available \"implicit\" endpoints\n\n```Python\n request = {\n 'type': 'candleSnapshot',\n 'req': {\n 'coin': coin,\n 'interval': tf,\n 'startTime': since,\n 'endTime': until,\n },\n }\n response = await instance.public_post_info(request)\n```\n\n\n## Available methods\n\n### REST Unified\n\n- `create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`\n- `fetch_balance(self, params={})`\n- `fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_currencies(self, params={})`\n- `fetch_deposit_address(self, code: str, params={})`\n- `fetch_deposit_withdraw_fees(self, codes: Strings = None, params={})`\n- `fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_funding_rates(self, symbols: Strings = None, params={})`\n- `fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_leverages(self, symbols: Strings = None, params={})`\n- `fetch_liquidations(self, symbol: str, since: Int = None, limit: Int = None, params={})`\n- `fetch_markets(self, params={})`\n- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`\n- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_order_book(self, symbol: str, limit: Int = None, params={})`\n- `fetch_order(self, id: str, symbol: Str = None, params={})`\n- `fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `fetch_positions(self, symbols: Strings = None, params={})`\n- `fetch_ticker(self, symbol: str, params={})`\n- `fetch_tickers(self, symbols: Strings = None, params={})`\n- `fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={})`\n- `amount_to_precision(self, symbol, amount)`\n- `calculate_rate_limiter_cost(self, api, method, path, params, config={})`\n- `cancel_all_orders_after(self, timeout: Int, params={})`\n- `cancel_all_orders(self, symbol: Str = None, params={})`\n- `cancel_order(self, id: str, symbol: Str = None, params={})`\n- `cancel_orders(self, ids, symbol: Str = None, params={})`\n- `convert_from_raw_cost(self, symbol, rawQuantity)`\n- `convert_from_raw_quantity(self, symbol, rawQuantity, currencySide='base')`\n- `convert_from_real_amount(self, code, amount)`\n- `convert_to_real_amount(self, code: Str, amount: Str)`\n- `describe(self)`\n- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`\n- `nonce(self)`\n- `set_leverage(self, leverage: Int, symbol: Str = None, params={})`\n- `set_margin_mode(self, marginMode: str, symbol: Str = None, params={})`\n- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`\n\n### REST Raw\n\n- `public_get_announcement(request)`\n- `public_get_announcement_urgent(request)`\n- `public_get_chat(request)`\n- `public_get_chat_channels(request)`\n- `public_get_chat_connected(request)`\n- `public_get_chat_pinned(request)`\n- `public_get_funding(request)`\n- `public_get_guild(request)`\n- `public_get_instrument(request)`\n- `public_get_instrument_active(request)`\n- `public_get_instrument_activeandindices(request)`\n- `public_get_instrument_activeintervals(request)`\n- `public_get_instrument_compositeindex(request)`\n- `public_get_instrument_indices(request)`\n- `public_get_instrument_usdvolume(request)`\n- `public_get_insurance(request)`\n- `public_get_leaderboard(request)`\n- `public_get_liquidation(request)`\n- `public_get_orderbook_l2(request)`\n- `public_get_porl_nonce(request)`\n- `public_get_quote(request)`\n- `public_get_quote_bucketed(request)`\n- `public_get_schema(request)`\n- `public_get_schema_websockethelp(request)`\n- `public_get_settlement(request)`\n- `public_get_stats(request)`\n- `public_get_stats_history(request)`\n- `public_get_stats_historyusd(request)`\n- `public_get_trade(request)`\n- `public_get_trade_bucketed(request)`\n- `public_get_wallet_assets(request)`\n- `public_get_wallet_networks(request)`\n- `private_get_address(request)`\n- `private_get_apikey(request)`\n- `private_get_execution(request)`\n- `private_get_execution_tradehistory(request)`\n- `private_get_globalnotification(request)`\n- `private_get_leaderboard_name(request)`\n- `private_get_order(request)`\n- `private_get_porl_snapshots(request)`\n- `private_get_position(request)`\n- `private_get_user(request)`\n- `private_get_user_affiliatestatus(request)`\n- `private_get_user_checkreferralcode(request)`\n- `private_get_user_commission(request)`\n- `private_get_user_csa(request)`\n- `private_get_user_depositaddress(request)`\n- `private_get_user_executionhistory(request)`\n- `private_get_user_getwallettransferaccounts(request)`\n- `private_get_user_margin(request)`\n- `private_get_user_quotefillratio(request)`\n- `private_get_user_quotevalueratio(request)`\n- `private_get_user_staking(request)`\n- `private_get_user_staking_instruments(request)`\n- `private_get_user_staking_tiers(request)`\n- `private_get_user_tradingvolume(request)`\n- `private_get_user_unstakingrequests(request)`\n- `private_get_user_wallet(request)`\n- `private_get_user_wallethistory(request)`\n- `private_get_user_walletsummary(request)`\n- `private_get_useraffiliates(request)`\n- `private_get_userevent(request)`\n- `private_post_address(request)`\n- `private_post_chat(request)`\n- `private_post_guild(request)`\n- `private_post_guild_archive(request)`\n- `private_post_guild_join(request)`\n- `private_post_guild_kick(request)`\n- `private_post_guild_leave(request)`\n- `private_post_guild_sharestrades(request)`\n- `private_post_order(request)`\n- `private_post_order_cancelallafter(request)`\n- `private_post_order_closeposition(request)`\n- `private_post_position_isolate(request)`\n- `private_post_position_leverage(request)`\n- `private_post_position_risklimit(request)`\n- `private_post_position_transfermargin(request)`\n- `private_post_user_addsubaccount(request)`\n- `private_post_user_cancelwithdrawal(request)`\n- `private_post_user_communicationtoken(request)`\n- `private_post_user_confirmemail(request)`\n- `private_post_user_confirmwithdrawal(request)`\n- `private_post_user_logout(request)`\n- `private_post_user_preferences(request)`\n- `private_post_user_requestwithdrawal(request)`\n- `private_post_user_unstakingrequests(request)`\n- `private_post_user_updatesubaccount(request)`\n- `private_post_user_wallettransfer(request)`\n- `private_put_guild(request)`\n- `private_put_order(request)`\n- `private_delete_order(request)`\n- `private_delete_order_all(request)`\n- `private_delete_user_unstakingrequests(request)`\n\n### WS Unified\n\n- `describe(self)`\n- `watch_ticker(self, symbol: str, params={})`\n- `watch_tickers(self, symbols: Strings = None, params={})`\n- `watch_liquidations(self, symbol: str, since: Int = None, limit: Int = None, params={})`\n- `watch_liquidations_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={})`\n- `watch_balance(self, params={})`\n- `watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={})`\n- `authenticate(self, params={})`\n- `watch_positions(self, symbols: Strings = None, since: Int = None, limit: Int = None, params={})`\n- `watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`\n- `watch_order_book(self, symbol: str, limit: Int = None, params={})`\n- `watch_order_book_for_symbols(self, symbols: List[str], limit: Int = None, params={})`\n- `watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={})`\n- `watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`\n- `watch_heartbeat(self, params={})`\n\n## Contribution\n- Give us a star :star:\n- Fork and Clone! Awesome\n- Select existing issues or create a new issue.",
"bugtrack_url": null,
"license": "MIT",
"summary": "bitmex crypto exchange api client",
"version": "0.0.78",
"project_urls": {
"Homepage": "https://github.com/ccxt/ccxt",
"Issues": "https://github.com/ccxt/ccxt"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0646f921993477057333fcbcbe8a691e3b7c7404ef749f78e6fea1716fcb778d",
"md5": "70a3fa5494f94fa97c198a0b5baeea3a",
"sha256": "2a51f2f4647e43e6e7bb133b8748e664ec98a534446730a22e8dabac069affe8"
},
"downloads": -1,
"filename": "bitmex_api-0.0.78-py3-none-any.whl",
"has_sig": false,
"md5_digest": "70a3fa5494f94fa97c198a0b5baeea3a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 659396,
"upload_time": "2025-07-30T15:49:46",
"upload_time_iso_8601": "2025-07-30T15:49:46.713376Z",
"url": "https://files.pythonhosted.org/packages/06/46/f921993477057333fcbcbe8a691e3b7c7404ef749f78e6fea1716fcb778d/bitmex_api-0.0.78-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0357c3212db1b78742082eca68868ea5ef021ab2b3b8488c4e050b235eea444a",
"md5": "8c4c5b5e9d5f90408e536f3e76581e4e",
"sha256": "d9290852a932d333bd5f3475cdeb3f8be3730ac8a9f8db7c8eb4540952ad9a1a"
},
"downloads": -1,
"filename": "bitmex_api-0.0.78.tar.gz",
"has_sig": false,
"md5_digest": "8c4c5b5e9d5f90408e536f3e76581e4e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 538777,
"upload_time": "2025-07-30T15:49:57",
"upload_time_iso_8601": "2025-07-30T15:49:57.397161Z",
"url": "https://files.pythonhosted.org/packages/03/57/c3212db1b78742082eca68868ea5ef021ab2b3b8488c4e050b235eea444a/bitmex_api-0.0.78.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-30 15:49:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ccxt",
"github_project": "ccxt",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"lcname": "bitmex-api"
}