Skip to content

ZackaryJacobthereal/bitmart-python-sdk-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

BitMart-Python-SDK-API

Build Status

Python client for the BitMart Cloud API.

Feature

  • Provides exchange quick trading API
  • Easier withdrawal
  • Efficiency, higher speeds, and lower latencies
  • Priority in development and maintenance
  • Dedicated and responsive technical support
  • Provide webSocket apis calls

Installation

  • 1.Python 3.6+ support

  • 2.Clone

git clone https://github.com/bitmartexchange/bitmart-python-sdk-api.git
pip3 install -r requirements.txt
  • 3.Copy
mv bitmart-python-sdk-api/bitmart /Your Working Directory

Usage

  • An example of a spot trade API
  • Replace it with your own API KEY
  • Run

Spot API Example

from bitmart.api_spot import APISpot

if __name__ == '__main__':

    api_key = "Your API KEY"
    secret_key = "Your Secret KEY"
    memo = "Your Memo"

    spotAPI = APISpot(api_key, secret_key, memo, timeout=(3, 10))

    spotAPI.post_submit_limit_buy_order('BTC_USDT', size='0.01', price='8800')

Spot WebSocket Public Channel Example

from bitmart import cloud_consts
from bitmart.cloud_ws_client import CloudWSClient
from bitmart.ws_spot import create_channel, create_spot_subscribe_params


class WSTest(CloudWSClient):

    def on_message(self, message):
        print(f'[ReceiveServerMessage]-------->{message}')


if __name__ == '__main__':
    ws = WSTest(cloud_consts.WS_URL, "", "", "")
    ws.set_debug(True)
    channels = [
        # public channel
        create_channel(cloud_consts.WS_PUBLIC_SPOT_TICKER, 'BTC_USDT'),
        create_channel(cloud_consts.WS_PUBLIC_SPOT_KLINE_1M, 'BTC_USDT'),
        create_channel(cloud_consts.WS_PUBLIC_SPOT_DEPTH5, 'BTC_USDT')
    ]

    ws.spot_subscribe_without_login(create_spot_subscribe_params(channels))

Spot WebSocket Private Channel Example

from bitmart import cloud_consts
from bitmart.cloud_ws_client import CloudWSClient
from bitmart.ws_spot import create_channel, create_spot_subscribe_params


class WSTest(CloudWSClient):

    def on_message(self, message):
        print(f'[ReceiveServerMessage]-------->{message}')


if __name__ == '__main__':
    ws = WSTest(cloud_consts.WS_URL_USER, api_key="Your API KEY", secret_key="Your Secret KEY", memo="Your Memo")
    ws.set_debug(True)
    channels = [
        # private channel
        create_channel(cloud_consts.WS_USER_SPOT_ORDER, 'BTC_USDT')
    ]

    ws.spot_subscribe_with_login(create_spot_subscribe_params(channels))

Contract API Example

from bitmart.api_contract import APIContract

if __name__ == '__main__':

    api_key = "Your API KEY"
    secret_key = "Your Secret KEY"
    memo = "Your Memo"

    contracAPI = APIContract(api_key, secret_key, memo, timeout=(3, 10))

    contracAPI.get_depth('ETHUSDT')

Contract WebSocket Public Channel Example

from bitmart import cloud_consts
from bitmart.cloud_ws_contract_client import CloudWSContractClient
from bitmart.ws_contract import create_channel, create_contract_subscribe_params


class WSTest(CloudWSContractClient):

    def on_message(self, message):
        print(f'[ReceiveServerMessage]-------->{message}')


if __name__ == '__main__':
    ws = WSTest(cloud_consts.CONTRACT_WS_URL, "", "", "")
    ws.set_debug(True)
    channels = [
        # public channel
        cloud_consts.WS_PUBLIC_CONTRACT_TICKER,
        create_channel(cloud_consts.WS_PUBLIC_CONTRACT_DEPTH5, 'BTCUSDT'),
        create_channel(cloud_consts.WS_PUBLIC_CONTRACT_KLINE_1M, 'BTCUSDT'),
    ]

    ws.contract_subscribe_without_login(create_contract_subscribe_params(channels))

Contract WebSocket Private Channel Example

from bitmart import cloud_consts
from bitmart.cloud_ws_contract_client import CloudWSContractClient
from bitmart.ws_contract import create_channel, create_contract_subscribe_params


class WSTest(CloudWSContractClient):

    def on_message(self, message):
        print(f'[ReceiveServerMessage]-------->{message}')


if __name__ == '__main__':
    ws = WSTest(cloud_consts.CONTRACT_WS_URL_USER, api_key="Your API KEY", secret_key="Your Secret KEY", memo="Your Memo")
    ws.set_debug(True)
    channels = [
        # private channel
        create_channel(cloud_consts.WS_USER_CONTRACT_ASSET, 'USDT'),
        cloud_consts.WS_USER_CONTRACT_POSITION,
        cloud_consts.WS_USER_CONTRACT_UNICAST,
    ]

    ws.contract_subscribe_with_login(create_contract_subscribe_params(channels))

Release Notes

2020-07-16
  • Interface Spot API Cancel Order update to v2 version that is POST https://api-cloud.bitmart.com/spot/v2/cancel_order
  • UserAgent set "BitMart-Java-SDK/1.0.1"
2020-09-21
  • Interface Spot API /spot/v1/symbols/book add size parameter, which represents the number of depths
2021-01-19
  • New endpoints for Spot WebSocket
    • Public - ticket channels
    • Public - K channel
    • Public - trading channels
    • Public - depth channels
    • Login
    • User - Trading Channel
2021-11-06
  • Update endpoints for Spot WebSocket
    • Public-Depth Channel:
      • spot/depth20 20 Level Depth Channel
      • spot/depth50 50 Level Depth Channel
    • User-Trade Channel:
      • Eligible pushes add new orders successfully
2021-11-24
  • New endpoints for Spot
    • /spot/v2/ordersGet User Order History V2
    • /spot/v1/batch_ordersBatch Order
  • Update endpoints for Spot
    • /spot/v1/symbols/klineAdd new field 'quote_volume'
    • /spot/v1/symbols/tradesAdd optional parameter N to return the number of items, the default is up to 50 items
    • /spot/v1/order_detailAdd new field 'unfilled_volume'
    • /spot/v1/submit_orderThe request parameter type added limit_maker and ioc order types
  • New endpoints for Account
    • /account/v2/deposit-withdraw/historyGet Deposit And Withdraw History V2
  • Update endpoints for Account
    • /account/v1/walletRemove the account_type,Only respond to currency accounts; you can bring currency parameters (optional)
2022-01-18
  • websocket public channel addresswss://ws-manager-compress.bitmart.com?protocol=1.1will be taken down on 2022-02-28 UTC time,The new address iswss://ws-manager-compress.bitmart.com/api?protocol=1.1
2022-01-20
  • Update endpoints for Spot
    • /spot/v1/symbols/detailsAdd a new respond parameter trade_status, to show the trading status of a trading pair symbol.
2022-10-18
  • New endpoints for Contract Market
    • /contract/public/detailsGet contract details
    • /contract/public/depthGet contract depth
    • /contract/public/open-interestGet contract open interest
    • /contract/public/funding-rateGet contract funding rate
    • /contract/public/klineGet contract kline
  • New endpoints for Contract Account
    • /contract/private/assets-detailGet contract user assets detail
  • New endpoints for Contract Trade
    • /contract/private/orderGet contract order detail
    • /contract/private/order-historyGet contract order history
    • /contract/private/positionGet contract position
    • /contract/private/tradesGet contract trades
    • /contract/private/submit_orderPost contract submit order
    • /contract/private/cancel_orderPost contract cancel order
    • /contract/private/cancel_ordersPost contract batch cancel orders
2022-10-20
  • Upgrade endpoints for Spot
    • /spot/v1/ticker has been upgraded to /spot/v2/ticker and /spot/v1/ticker_detail
    • /spot/v1/submit_order has been upgraded to /spot/v2/submit_order
    • /spot/v1/batch_orders has been upgraded to /spot/v2/batch_orders
    • /spot/v2/cancel_order has been upgraded to /spot/v3/cancel_order
    • /spot/v1/order_detail has been upgraded to /spot/v2/order_detail
    • /spot/v2/orders has been upgraded to /spot/v3/orders
    • /spot/v1/trades has been upgraded to /spot/v2/trades
  • New endpoints for Spot & Margin
    • /spot/v1/margin/isolated/accountApplicable for isolated margin account inquiries
    • /spot/v1/margin/isolated/transferFor fund transfers between a margin account and spot account
    • /spot/v1/user_feeFor querying the base rate of the current user
    • /spot/v1/trade_feeFor the actual fee rate of the trading pairs
    • /spot/v1/margin/submit_orderApplicable for margin order placement
    • /spot/v1/margin/isolated/borrowApplicable to isolated margin account borrowing operations
    • /spot/v1/margin/isolated/repayApplicable to isolated margin account repayment operations
    • /spot/v1/margin/isolated/borrow_recordApplicable to the inquiry of borrowing records of an isolated margin account
    • /spot/v1/margin/isolated/repay_recordApplicable to the inquiry of repayment records of isolated margin account
    • /spot/v1/margin/isolated/pairsApplicable for checking the borrowing rate and borrowing amount of trading pairs
2022-10-28
  • contract websocket public channel addresswss://openapi-ws.bitmart.com/api?protocol=1.1
  • contract websocket private channel addresswss://openapi-ws.bitmart.com/user?protocol=1.1
2022-11-03
  • New endpoints for API Broker
    • /spot/v1/broker/rebateApplicable to query API Broker's rebate records
  • Update endpoints for Spot / Margin trading
    • /spot/v3/orders /spot/v2/tradesadd start_time and end_time field for flexible querying
    • add new order status 11 = Partially filled and canceled

License

About

Python client BitMart API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%