{"id":18698887,"url":"https://github.com/tiagosiebler/bitmart-api","last_synced_at":"2026-01-16T22:56:32.604Z","repository":{"id":231369996,"uuid":"758072499","full_name":"tiagosiebler/bitmart-api","owner":"tiagosiebler","description":"Node.js SDK for the BitMart APIs and WebSockets, with TypeScript \u0026 browser support.","archived":false,"fork":false,"pushed_at":"2026-01-15T12:16:59.000Z","size":708,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-15T16:47:46.893Z","etag":null,"topics":["algorithmic-trading","bitmart","bitmart-api","bitmart-rest","bitmart-sdk","bitmart-websocket","ccxt","cryptocurrency","cryptocurrency-exchanges","javascript","javascriptsdk","node","nodejs","sdk","trading","trading-bot","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/bitmart-api","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiagosiebler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["tiagosiebler"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2024-02-15T15:15:03.000Z","updated_at":"2026-01-15T12:17:29.000Z","dependencies_parsed_at":"2024-04-03T19:39:12.819Z","dependency_job_id":"dbd27425-4589-47c6-932c-43804a08b1af","html_url":"https://github.com/tiagosiebler/bitmart-api","commit_stats":null,"previous_names":["tiagosiebler/bitmart-api"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/tiagosiebler/bitmart-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiagosiebler%2Fbitmart-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiagosiebler%2Fbitmart-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiagosiebler%2Fbitmart-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiagosiebler%2Fbitmart-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiagosiebler","download_url":"https://codeload.github.com/tiagosiebler/bitmart-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiagosiebler%2Fbitmart-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28486947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T22:54:02.790Z","status":"ssl_error","status_checked_at":"2026-01-16T22:50:10.344Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithmic-trading","bitmart","bitmart-api","bitmart-rest","bitmart-sdk","bitmart-websocket","ccxt","cryptocurrency","cryptocurrency-exchanges","javascript","javascriptsdk","node","nodejs","sdk","trading","trading-bot","typescript"],"created_at":"2024-11-07T11:30:08.052Z","updated_at":"2026-01-16T22:56:32.596Z","avatar_url":"https://github.com/tiagosiebler.png","language":"TypeScript","funding_links":["https://github.com/sponsors/tiagosiebler"],"categories":[],"sub_categories":[],"readme":"# Node.js \u0026 JavaScript SDK for BitMart REST API \u0026 WebSockets\n\n[![npm version](https://img.shields.io/npm/v/bitmart-api)][1]\n[![npm size](https://img.shields.io/bundlephobia/min/bitmart-api/latest)][1]\n[![npm downloads](https://img.shields.io/npm/dt/bitmart-api)][1]\n[![Build \u0026 Test](https://github.com/tiagosiebler/bitmart-api/actions/workflows/e2etest.yml/badge.svg?branch=master)](https://github.com/tiagosiebler/bitmart-api/actions/workflows/e2etest.yml)\n[![last commit](https://img.shields.io/github/last-commit/tiagosiebler/bitmart-api)][1]\n[![CodeFactor](https://www.codefactor.io/repository/github/tiagosiebler/bitmart-api/badge)](https://www.codefactor.io/repository/github/tiagosiebler/bitmart-api)\n[![Telegram](https://img.shields.io/badge/chat-on%20telegram-blue.svg)](https://t.me/nodetraders)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/bitmart-api\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/tiagosiebler/bitmart-api/blob/master/docs/images/logoDarkMode2.svg?raw=true#gh-dark-mode-only\"\u003e\n      \u003cimg alt=\"SDK Logo\" src=\"https://github.com/tiagosiebler/bitmart-api/blob/master/docs/images/logoBrightMode2.svg?raw=true#gh-light-mode-only\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n[1]: https://www.npmjs.com/package/bitmart-api\n\nComplete JavaScript \u0026 Node.js SDK for BitMart REST APIs \u0026 WebSockets:\n\n- Professional, robust \u0026 performant BitMart SDK with extensive production use in live trading environments.\n- Complete integration with all BitMart APIs and domains.\n  - Spot trading APIs via RestClient\n  - Full support for Futures V2 domain via FuturesClientV2\n  - Unified WebSocket client for all markets\n- Complete TypeScript support (with type declarations for most API requests \u0026 responses).\n  - Strongly typed requests and responses.\n  - Automated end-to-end tests ensuring reliability.\n- Actively maintained with a modern, promise-driven interface.\n- Robust WebSocket integration with configurable connection heartbeats \u0026 automatic reconnect then resubscribe workflows.\n  - Event driven messaging.\n  - Smart WebSocket persistence with automatic reconnection handling.\n  - Emit `reconnected` event when dropped connection is restored.\n  - Support for both public and private WebSocket streams.\n- Browser-friendly HMAC signature mechanism with Web Crypto API support.\n- Automatically supports both ESM and CJS projects.\n- Custom HMAC signing support for enhanced performance.\n- Heavy automated end-to-end testing with real API calls.\n- Active community support \u0026 collaboration in telegram: [Node.js Algo Traders](https://t.me/nodetraders).\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Examples](#examples)\n- [Issues \u0026 Discussion](#issues--discussion)\n- [Usage](#usage)\n  - [REST API Clients](#rest-apis)\n    - [Spot \u0026 Margin APIs](#spot--margin-apis)\n    - [Futures V2 APIs](#futures-v2-apis)\n  - [WebSocket Client](#websocket)\n    - [Public Streams](#public-websocket-streams)\n    - [Private Streams](#private-websocket-streams)\n  - [Configuration Options](#configuration-options)\n    - [Recv Window](#recv-window)\n    - [Custom Sign](#custom-sign)\n- [Browser/Frontend Usage](#browserfrontend-usage)\n  - [Webpack](#webpack)\n- [Related Projects](#related-projects)\n- [Structure](#structure)\n- [LLMs \u0026 AI](#use-with-llms--ai)\n- [Used By](#used-by)\n- [Contributions \u0026 Thanks](#contributions--thanks)\n\n## Installation\n\n`npm install --save bitmart-api`\n\n## Examples\n\nRefer to the [examples](./examples) folder for implementation demos, including:\n\n- **REST API Examples**: spot trading, futures trading, account management\n- **WebSocket Examples**: public data streams, private account streams, custom logging\n- **Advanced Features**: custom HMAC signing, error handling\n\n## Issues \u0026 Discussion\n\n- Issues? Check the [issues tab](https://github.com/tiagosiebler/bitmart-api/issues).\n- Discuss \u0026 collaborate with other node devs? Join our [Node.js Algo Traders](https://t.me/nodetraders) engineering community on telegram.\n- Follow our announcement channel for real-time updates on [X/Twitter](https://x.com/sieblyio)\n\n## Usage\n\nCreate API credentials on BitMart's website if you plan to use private endpoints or place trades.\n\nMost methods accept JS objects. These can be populated using parameters specified by BitMart's API documentation, or check the type definition in each class within this repository.\n\n### Documentation Links\n\n- [BitMart API | Spot](https://developer-pro.bitmart.com/en/spot/#change-log)\n- [BitMart API | USD-M Futures](https://developer-pro.bitmart.com/en/spot/#change-log)\n- [REST Endpoint Function List](./docs/endpointFunctionList.md)\n\n## REST APIs\n\nThere are two main REST API clients depending on the market you're trading:\n\n1. `RestClient` - for spot trading, margin, and general account operations\n2. `FuturesClientV2` - dedicated client for USD-M futures trading (uses V2 domain)\n\n### Spot \u0026 Margin APIs\n\nUse the `RestClient` for spot trading, margin trading, and general account operations.\n\n```typescript\nimport { RestClient } from 'bitmart-api';\n// or if you prefer require:\n// const { RestClient } = require('bitmart-api');\n\nconst API_KEY = 'yourAPIKeyHere';\nconst API_SECRET = 'yourAPISecretHere';\nconst API_MEMO = 'yourAPIMemoHere';\n\nconst client = new RestClient({\n  apiKey: API_KEY,\n  apiSecret: API_SECRET,\n  apiMemo: API_MEMO,\n});\n\n// For public endpoints, API credentials are optional\n// const client = new RestClient();\n\n// Get account balances\nclient\n  .getAccountBalancesV1()\n  .then((result) =\u003e {\n    console.log('Account balances: ', result);\n  })\n  .catch((err) =\u003e {\n    console.error('Error: ', err);\n  });\n\n// Submit a spot order\nclient\n  .submitSpotOrderV2({\n    symbol: 'BTC_USDT',\n    side: 'buy',\n    type: 'limit',\n    size: '0.001',\n    price: '30000',\n  })\n  .then((result) =\u003e {\n    console.log('Order submitted: ', result);\n  })\n  .catch((err) =\u003e {\n    console.error('Order error: ', err);\n  });\n\n// Get spot candlestick data\nclient\n  .getSpotHistoryKlineV3({\n    symbol: 'BTC_USDT',\n    step: 60, // 1 minute\n    from: Math.floor(Date.now() / 1000) - 3600, // 1 hour ago\n    to: Math.floor(Date.now() / 1000),\n  })\n  .then((result) =\u003e {\n    console.log('Klines: ', result);\n  })\n  .catch((err) =\u003e {\n    console.error('Klines error: ', err);\n  });\n```\n\n### Futures V2 APIs\n\nUse the `FuturesClientV2` for USD-M futures trading. This client connects to BitMart's V2 futures domain.\n\n```typescript\nimport { FuturesClientV2 } from 'bitmart-api';\n// or if you prefer require:\n// const { FuturesClientV2 } = require('bitmart-api');\n\nconst futuresClient = new FuturesClientV2({\n  apiKey: API_KEY,\n  apiSecret: API_SECRET,\n  apiMemo: API_MEMO,\n});\n\n// Enable demo/simulated trading environment (optional)\nconst demoFuturesClient = new FuturesClientV2({\n  apiKey: API_KEY,\n  apiSecret: API_SECRET,\n  apiMemo: API_MEMO,\n  demoTrading: true, // Connect to simulated trading environment\n});\n\n// Get futures account assets\ntry {\n  const balances = await futuresClient.getFuturesAccountAssets();\n  console.log('Futures balances: ', JSON.stringify(balances, null, 2));\n} catch (error) {\n  console.error('Error getting balances: ', error);\n}\n\n// Submit a futures order\nfuturesClient\n  .submitFuturesOrder({\n    symbol: 'BTCUSDT',\n    side: 'buy',\n    type: 'limit',\n    size: '0.001',\n    price: '30000',\n    leverage: '10',\n  })\n  .then((result) =\u003e {\n    console.log('Futures order submitted: ', result);\n  })\n  .catch((err) =\u003e {\n    console.error('Futures order error: ', err);\n  });\n```\n\n## WebSocket\n\nAll WebSocket functionality is supported via the unified `WebsocketClient`. This client handles both spot and futures WebSocket streams, with automatic connection management and reconnection.\n\nKey WebSocket features:\n\n- Event driven messaging\n- Smart WebSocket persistence with automatic reconnection\n- Heartbeat mechanisms to detect disconnections\n- Automatic resubscription after reconnection\n- Support for both public and private data streams\n- Unified client for spot and futures markets\n\n### Public WebSocket Streams\n\nFor public data streams, API credentials are not required:\n\n```typescript\nimport { WebsocketClient } from 'bitmart-api';\n// or if you prefer require:\n// const { WebsocketClient } = require('bitmart-api');\n\n// Create WebSocket client for public streams\nconst wsClient = new WebsocketClient();\n\n// Set up event handlers\nwsClient.on('open', (data) =\u003e {\n  console.log('WebSocket connected: ', data?.wsKey);\n});\n\nwsClient.on('update', (data) =\u003e {\n  console.log('Data received: ', JSON.stringify(data, null, 2));\n});\n\nwsClient.on('reconnected', (data) =\u003e {\n  console.log('WebSocket reconnected: ', data);\n});\n\nwsClient.on('exception', (data) =\u003e {\n  console.error('WebSocket error: ', data);\n});\n\n// Subscribe to public data streams\n\n// Spot market ticker\nwsClient.subscribe('spot/ticker:BTC_USDT', 'spot');\n\n// Spot market depth\nwsClient.subscribe('spot/depth20:BTC_USDT', 'spot');\n\n// Futures market ticker\nwsClient.subscribe('futures/ticker', 'futures');\n\n// Futures market depth\nwsClient.subscribe('futures/depth20:BTCUSDT', 'futures');\n\n// Futures trades\nwsClient.subscribe('futures/trade:BTCUSDT', 'futures');\n\n// Multiple futures kline subscriptions\nwsClient.subscribe(\n  [\n    'futures/klineBin1m:BTCUSDT',\n    'futures/klineBin1m:ETHUSDT',\n    'futures/klineBin5m:BTCUSDT',\n    'futures/klineBin1h:ETHUSDT',\n  ],\n  'futures',\n);\n```\n\n### Private WebSocket Streams\n\nFor private account data streams, API credentials are required:\n\n```typescript\nimport { WebsocketClient } from 'bitmart-api';\n\n// Create WebSocket client with API credentials for private streams\nconst wsClient = new WebsocketClient({\n  apiKey: 'yourAPIKeyHere',\n  apiSecret: 'yourAPISecretHere',\n  apiMemo: 'yourAPIMemoHere',\n});\n\n// Enable demo/simulated trading environment for V2 Futures WebSocket (optional)\nconst demoWsClient = new WebsocketClient({\n  apiKey: 'yourAPIKeyHere',\n  apiSecret: 'yourAPISecretHere',\n  apiMemo: 'yourAPIMemoHere',\n  demoTrading: true, // Connect to simulated trading environment (V2 Futures only)\n});\n\n// Set up event handlers\nwsClient.on('open', (data) =\u003e {\n  console.log('Private WebSocket connected: ', data?.wsKey);\n});\n\nwsClient.on('update', (data) =\u003e {\n  console.log('Private data received: ', JSON.stringify(data, null, 2));\n});\n\nwsClient.on('authenticated', (data) =\u003e {\n  console.log('WebSocket authenticated: ', data);\n});\n\nwsClient.on('response', (data) =\u003e {\n  console.log('WebSocket response: ', data);\n});\n\nwsClient.on('exception', (data) =\u003e {\n  console.error('WebSocket error: ', data);\n});\n\n// Subscribe to private data streams\n\n// Spot account orders\nwsClient.subscribe('spot/user/order:BTC_USDT', 'spot');\n\n// Spot account balance updates\nwsClient.subscribe('spot/user/balance:USDT', 'spot');\n\n// Futures account orders\nwsClient.subscribe('futures/user/order:BTCUSDT', 'futures');\n\n// Futures account positions\nwsClient.subscribe('futures/user/position:BTCUSDT', 'futures');\n```\n\nFor more comprehensive examples, including custom logging and error handling, check the [examples](./examples) folder.\n\n## Configuration Options\n\n### Demo Trading\n\nBitMart provides a simulated trading environment for testing futures trading strategies. Enable demo mode by adding `demoTrading: true` to your client configuration:\n\n**REST API (Futures V2 only):**\n\n```typescript\nconst demoClient = new FuturesClientV2({\n  apiKey: API_KEY,\n  apiSecret: API_SECRET,\n  apiMemo: API_MEMO,\n  demoTrading: true, // Uses https://demo-api-cloud-v2.bitmart.com\n});\n```\n\n**WebSocket (V2 Futures only):**\n\n```typescript\nconst demoWsClient = new WebsocketClient({\n  apiKey: API_KEY,\n  apiSecret: API_SECRET,\n  apiMemo: API_MEMO,\n  demoTrading: true, // Uses wss://openapi-wsdemo-v2.bitmart.com\n});\n```\n\n**Note:** Demo environment is only available for V2 Futures. Spot trading and V1 Futures will continue using production endpoints. The same API keys work for both production and demo environments.\n\n### Recv Window\n\nThe receive window parameter determines how long an API request is valid. This can be configured at two levels:\n\n- **Per method**: If provided in a method call, will be used instead of the global default\n- **Global default**: Applied by default to any API call that supports recvWindow, if no recvWindow is provided in the method call\n\n```typescript\n// Set global receive window during client initialization\nconst client = new RestClient({\n  apiKey: API_KEY,\n  apiSecret: API_SECRET,\n  apiMemo: API_MEMO,\n  recvWindow: 10000, // 10 seconds global default\n});\n\n// Override receive window for specific method calls\nclient.getAccountBalancesV1({ recvWindow: 5000 }); // 5 seconds for this call\n```\n\n### Custom Sign\n\nAuthentication involves HMAC signing on requests using API credentials. Internally, this SDK uses the Web Crypto API for browser compatibility. The REST client also supports injecting a custom sign function if you wish to use an alternative (such as Node.js's native \u0026 faster `createHmac`).\n\nRefer to the [fasterHmacSign.ts](./examples/fasterHmacSign.ts) example for a complete demonstration.\n\n## Browser/Frontend Usage\n\n### Webpack\n\nBuild a bundle using webpack:\n\n- `npm install`\n- `npm run build`\n- `npm run pack`\n\nThe bundle can be found in `dist/`. Altough usage should be largely consistent, smaller differences will exist. Documentation is still TODO.\n\n## Use with LLMs \u0026 AI\n\nThis SDK includes a bundled `llms.txt` file in the root of the repository. If you're developing with LLMs, use the included `llms.txt` with your LLM - it will significantly improve the LLMs understanding of how to correctly use this SDK.\n\nThis file contains AI optimised structure of all the functions in this package, and their parameters for easier use with any learning models or artificial intelligence.\n\n---\n\n## Used By\n\n[![Repository Users Preview Image](https://dependents.info/tiagosiebler/bitmart-api/image)](https://github.com/tiagosiebler/bitmart-api/network/dependents)\n\n---\n\n\u003c!-- template_related_projects --\u003e\n\n## Related Projects\n\nCheck out our JavaScript/TypeScript/Node.js SDKs \u0026 Projects:\n\n- Visit our website: [https://Siebly.io](https://siebly.io/?ref=gh)\n- Try our REST API \u0026 WebSocket SDKs published on npmjs:\n  - [Bybit Node.js SDK: bybit-api](https://www.npmjs.com/package/bybit-api)\n  - [Kraken Node.js SDK: @siebly/kraken-api](https://www.npmjs.com/package/@siebly/kraken-api)\n  - [OKX Node.js SDK: okx-api](https://www.npmjs.com/package/okx-api)\n  - [Binance Node.js SDK: binance](https://www.npmjs.com/package/binance)\n  - [Gate (gate.com) Node.js SDK: gateio-api](https://www.npmjs.com/package/gateio-api)\n  - [Bitget Node.js SDK: bitget-api](https://www.npmjs.com/package/bitget-api)\n  - [Kucoin Node.js SDK: kucoin-api](https://www.npmjs.com/package/kucoin-api)\n  - [Coinbase Node.js SDK: coinbase-api](https://www.npmjs.com/package/coinbase-api)\n  - [Bitmart Node.js SDK: bitmart-api](https://www.npmjs.com/package/bitmart-api)\n- Try my misc utilities:\n  - [OrderBooks Node.js: orderbooks](https://www.npmjs.com/package/orderbooks)\n  - [Crypto Exchange Account State Cache: accountstate](https://www.npmjs.com/package/accountstate)\n- Check out my examples:\n  - [awesome-crypto-examples Node.js](https://github.com/tiagosiebler/awesome-crypto-examples)\n  \u003c!-- template_related_projects_end --\u003e\n\n## Structure\n\nThis connector is fully compatible with both TypeScript and pure JavaScript projects, while the connector is written in TypeScript. A pure JavaScript version can be built using `npm run build`, which is also the version published to [npm](https://www.npmjs.com/package/bitmart-api).\n\nThe version on npm is the output from the `build` command and can be used in projects without TypeScript (although TypeScript is definitely recommended).\n\nNote: The build will output both ESM and CJS, although node should automatically import the correct entrypoint for your environment.\n\n- [src](./src) - the whole SDK written in TypeScript\n- [dist](./dist) - ESM \u0026 CJS builds of the SDK in JavaScript (this is published to npm)\n- [examples](./examples) - some implementation examples \u0026 demonstrations.\n\n---\n\n\u003c!-- template_contributions --\u003e\n\n### Contributions \u0026 Thanks\n\nHave my projects helped you? Share the love, there are many ways you can show your thanks:\n\n- Star \u0026 share my projects.\n- Are my projects useful? Sponsor me on Github and support my effort to maintain \u0026 improve them: https://github.com/sponsors/tiagosiebler\n- Have an interesting project? Get in touch \u0026 invite me to it.\n- Or buy me all the coffee:\n  - ETH(ERC20): `0xA3Bda8BecaB4DCdA539Dc16F9C54a592553Be06C` \u003c!-- metamask --\u003e\n- Sign up with my referral links:\n  - OKX (receive a 20% fee discount!): https://www.okx.com/join/42013004\n  - Binance (receive a 20% fee discount!): https://accounts.binance.com/register?ref=OKFFGIJJ\n  - HyperLiquid (receive a 4% fee discount!): https://app.hyperliquid.xyz/join/SDK\n  - Gate: https://www.gate.io/signup/NODESDKS?ref_type=103\n\n\u003c!---\nold ones:\n  - BTC: `1C6GWZL1XW3jrjpPTS863XtZiXL1aTK7Jk`\n  - BTC(SegWit): `bc1ql64wr9z3khp2gy7dqlmqw7cp6h0lcusz0zjtls`\n  - ETH(ERC20): `0xe0bbbc805e0e83341fadc210d6202f4022e50992`\n  - USDT(TRC20): `TA18VUywcNEM9ahh3TTWF3sFpt9rkLnnQa\n  - gate: https://www.gate.io/signup/AVNNU1WK?ref_type=103\n\n--\u003e\n\u003c!-- template_contributions_end --\u003e\n\n### Contributions \u0026 Pull Requests\n\nContributions are encouraged, I will review any incoming pull requests. See the issues tab for todo items.\n\n\u003c!-- template_star_history --\u003e\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=tiagosiebler/bybit-api,tiagosiebler/okx-api,tiagosiebler/binance,tiagosiebler/bitget-api,tiagosiebler/bitmart-api,tiagosiebler/gateio-api,tiagosiebler/kucoin-api,tiagosiebler/coinbase-api,tiagosiebler/orderbooks,tiagosiebler/accountstate,tiagosiebler/awesome-crypto-examples\u0026type=Date)](https://star-history.com/#tiagosiebler/bybit-api\u0026tiagosiebler/okx-api\u0026tiagosiebler/binance\u0026tiagosiebler/bitget-api\u0026tiagosiebler/bitmart-api\u0026tiagosiebler/gateio-api\u0026tiagosiebler/kucoin-api\u0026tiagosiebler/coinbase-api\u0026tiagosiebler/orderbooks\u0026tiagosiebler/accountstate\u0026tiagosiebler/awesome-crypto-examples\u0026Date)\n\n\u003c!-- template_star_history_end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiagosiebler%2Fbitmart-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiagosiebler%2Fbitmart-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiagosiebler%2Fbitmart-api/lists"}