{"id":15068781,"url":"https://github.com/webcerebrium/java-binance-api","last_synced_at":"2025-10-05T08:30:42.302Z","repository":{"id":57729580,"uuid":"107432759","full_name":"webcerebrium/java-binance-api","owner":"webcerebrium","description":"Java Binance API Client","archived":true,"fork":false,"pushed_at":"2018-05-10T06:49:37.000Z","size":147,"stargazers_count":75,"open_issues_count":26,"forks_count":37,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-26T18:19:20.168Z","etag":null,"topics":["api-client","api-coverage","api-wrapper","binance","binance-api","binance-crytpocurrency-exchange","binance-exchange","client-library","crypto-exchanges","gradle","java","java-8","java8","lombok","trade","trading","trading-api","websockets","wrapper","wrapper-api"],"latest_commit_sha":null,"homepage":"","language":"Java","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/webcerebrium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-18T16:15:29.000Z","updated_at":"2024-10-13T14:18:55.000Z","dependencies_parsed_at":"2022-09-26T22:00:50.247Z","dependency_job_id":null,"html_url":"https://github.com/webcerebrium/java-binance-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/webcerebrium/java-binance-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webcerebrium%2Fjava-binance-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webcerebrium%2Fjava-binance-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webcerebrium%2Fjava-binance-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webcerebrium%2Fjava-binance-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webcerebrium","download_url":"https://codeload.github.com/webcerebrium/java-binance-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webcerebrium%2Fjava-binance-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278427463,"owners_count":25985071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api-client","api-coverage","api-wrapper","binance","binance-api","binance-crytpocurrency-exchange","binance-exchange","client-library","crypto-exchanges","gradle","java","java-8","java8","lombok","trade","trading","trading-api","websockets","wrapper","wrapper-api"],"created_at":"2024-09-25T01:39:16.308Z","updated_at":"2025-10-05T08:30:42.016Z","avatar_url":"https://github.com/webcerebrium.png","language":"Java","readme":"# Java Binance Unofficial API Client\n\nThis library is designed to help you make your own projects that interact with the [Binance API](https://www.binance.com/restapipub.html). \nThis project seeks to have complete API coverage including User Data Streams and WebSockets for [Binance Cryptocurrency Exchange](https://www.binance.com/?ref=10155037)\n\nIf you are seeking for a version with Android 4+ support, please take a look at\nhttps://github.com/shufps/java-binance-api\n\n\n## Getting Started\n\n#### with Maven\n\nAdd the following Maven dependency to your project's `pom.xml`:\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.webcerebrium\u003c/groupId\u003e\n  \u003cartifactId\u003ebinance-api\u003c/artifactId\u003e\n  \u003cversion\u003e1.0.9\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n#### with Gradle\n```\ncompile group: 'com.webcerebrium', name: 'binance-api', version: '1.0.9'\n```\n\n#### with Grapes\n```\n@Grapes([ \n@Grab(group = 'com.webcerebrium', module = 'binance-api', version = '1.0.9')\n])\n```\n\n### with latest source code\n\nAfter `git clone`, please run `gradle jar`, which will result in having jar under `build/distribution` folder.\ncompilation you will have jar in your folder, which could be included as your dependency like this:\n```\ndependencies {\n    compile files('libs/binance-api-1.0.9.jar')\n}\n```\n\n## Example of Application\n```\nimport com.webcerebrium.binance.api.BinanceApi;\nimport com.webcerebrium.binance.api.BinanceApiException;\n\ntry {\n  BinanceApi api = new BinanceApi();\n  System.out.println(\"ETH-BTC PRICE=\" + api.pricesMap().get(\"ETHBTC\"));\n} catch (BinanceApiException e) {\n  System.out.println( \"ERROR: \" + e.getMessage());\n}\n```\n\n## Setting up API KEYS\n\nFor API keys you can set an environment variables or java Virtual Machine properties `BINANCE_API_KEY`, `BINANCE_SECRET_KEY`,\nas well as setting up these variables in `application.properties` resource file of your project\n\n## Logging\n\nLogging configuration can be corrected in `logback.xml` files.\nTo suppress requests/response logging, you might want to increase logging level for `BinanceRequest` component:\n```\n\u003clogger name=\"com.webcerebrium.binance.api.BinanceRequest\" level=\"WARN\" /\u003e\n```\n\n## Debugging Library from Source \n\nIf you cloned this GITHUB repository, the following tips might be useful:\n\n#### Running tests\n\nIf you cloned this repository, tests with API coverage could be launched with `gradle test`. Before running, make sure API keys are set as described above.\nFor successful trading tests passing, it is desired to have some BTC, ETH and BNB on your account.\n\n#### Running in Eclipse\nThis project uses Lombok. You will need to [install lombok for Eclipse](https://projectlombok.org/setup/eclipse) to make the project compile in Eclipse. It will compile via gradle just fine without this additional installation step.\n\n#### Running in Intellij IDEA\nThis project uses Lombok. You will need to [install corresponding plugin](https://plugins.jetbrains.com/plugin/6317) and enable `Annotation processing` in your `Compiler` settings. It will compile via gradle just fine without this additional installation step.\nTo start, import current directory as Gradle project.\n\n## Using API - General Endpoints\n\n#### Checking Server Responsiveness\n```java\nSystem.out.println((new BinanceApi()).ping() );\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\u003cpre\u003e{}\u003c/pre\u003e\u003c/details\u003e\n\n#### Getting Server Time\n```java\nSystem.out.println((new BinanceApi()).time().get(\"serverTime\").getAsString());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\u003cpre\u003e1508364584572\u003c/pre\u003e\u003c/details\u003e\n\n## Using API - Getting Account Information\n\n#### Getting Account Information\n\n```java\nJsonObject account = (new BinanceApi()).account();\nSystem.out.println(\"Maker Commission: \" + account.get(\"makerCommission\").getAsBigDecimal());\nSystem.out.println(\"Taker Commission: \" + account.get(\"takerCommission\").getAsBigDecimal());\nSystem.out.println(\"Buyer Commission: \" + account.get(\"buyerCommission\").getAsBigDecimal());\nSystem.out.println(\"Seller Commission: \" + account.get(\"sellerCommission\").getAsBigDecimal());\nSystem.out.println(\"Can Trade: \" +  account.get(\"canTrade\").getAsBoolean());\nSystem.out.println(\"Can Withdraw: \" + account.get(\"canWithdraw\").getAsBoolean());\nSystem.out.println(\"Can Deposit: \" + account.get(\"canDeposit\").getAsBoolean());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e\nMaker Commission: 10\nTaker Commission: 10\nBuyer Commission: 0\nSeller Commission: 0\nCan Trade: true\nCan Withdraw: true\nCan Deposit: true\n\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting All Balances\n\n```java\nSystem.out.println((new BinanceApi()).balances());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[{\"asset\":\"BTC\",\"free\":\"0.00001161\",\"locked\":\"0.00000000\"},{\"asset\":\"LTC\",\"free\":\"0.00000000\",\"locked\":\"0.00000000\"},...,{\"asset\":\"ZEC\",\"free\":\"0.00000000\",\"locked\":\"0.00000000\"}]\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting Asset Balance\n```java\nSystem.out.println((new BinanceApi()).balancesMap().get(\"ETH\"));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003eBinanceWalletAsset(asset=ETH, free=0.00859005, locked=0E-8)\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting Open Orders\n```java\nSystem.out.println((new BinanceApi()).openOrders(BinanceSymbol.valueOf(\"ETHBTC\")));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[BinanceOrder(symbol=ETHBTC, orderId=11111, clientOrderId=hNch6HItMQp2m9VuQZaA6L, price=0.18200000, origQty=1.00000000, executedQty=0E-8, status=NEW, timeInForce=GTC, type=LIMIT, side=SELL, stopPrice=0E-8, icebergQty=0E-8, time=1508361363677)]\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Checking Order Status\n```java\nBinanceApi api = new BinanceApi();\nBinanceSymbol symbol = BinanceSymbol.valueOf(\"ETHBTC\");\nSystem.out.println(api.getOrderById(symbol, 333821L));\nSystem.out.println(api.getOrderByOrigClientId(symbol, \"2m9VuQZaA6LhNch6HItMQp\"));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003eBinanceOrder(symbol=ETHBTC, orderId=333821, clientOrderId=2m9VuQZaA6LhNch6HItMQp, price=0.18200000, origQty=1.00000000, executedQty=0E-8, status=NEW, timeInForce=GTC, type=LIMIT, side=SELL, stopPrice=0E-8, icebergQty=0E-8, time=1508361363677)\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting All Orders\n```java\nSystem.out.println((new BinanceApi()).allOrders(BinanceSymbol.valueOf(\"BQXBTC\")));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[BinanceOrder(symbol=BQXBTC, orderId=11111, clientOrderId=D0qeCsEBxKaXSRwxKUZkBZ, price=0.00018602, origQty=309.00000000, executedQty=309.00000000, status=FILLED, timeInForce=GTC, type=LIMIT, side=BUY, stopPrice=0E-8, icebergQty=0E-8, time=1506498038089), ... , BinanceOrder(symbol=BQXBTC, orderId=222222, clientOrderId=p2m9VuQZaA6LhNch6HItMQ, price=0.18200000, origQty=1.00000000, executedQty=0E-8, status=NEW, timeInForce=GTC, type=LIMIT, side=SELL, stopPrice=0E-8, icebergQty=0E-8, time=1508361363677)]\u003c/pre\u003e\n\u003c/details\u003e\n\n\n#### Getting My Trades\n```java\nSystem.out.println((new BinanceApi()).myTrades(BinanceSymbol.valueOf(\"BQXBTC\")));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[BinanceTrade(id=1321, commissionAsset=BQX, price=0.00018602, qty=38.00000000, commission=0.03800000, time=1506499148055, isBuyer=true, isMaker=true, isBestMatch=true), ... , BinanceTrade(id=6315, commissionAsset=BNB, price=0.00015216, qty=449.00000000, commission=0.10018983, time=1507144715249, isBuyer=true, isMaker=true, isBestMatch=true)]\u003c/pre\u003e\n\u003c/details\u003e\n\n\n#### Withdrawals\n```java\nString address = \"0x1234567890123456789012345678901234567890\";\nSystem.out.println((new BinanceApi()).withdraw(\"ETH\", 0.01, address, \"\"));\n```\n\n#### Getting All Deposits History\n\nServer side team still works on this endpoint. At the moment of writing that you will just receive a message in Chinese about parameters exception.\n\n```java\nBinanceHistoryFilter historyFilter = new BinanceHistoryFilter();\nSystem.out.println((new BinanceApi()).getDepositHistory(historyFilter));\n```\n\n#### Getting Withdrawal History\n\nServer side team still works on this endpoint. At the moment of writing that you will just receive a message in Chinese about parameters exception.\n\n```java\nBinanceHistoryFilter historyFilter = new BinanceHistoryFilter(\"ETH\");\nCalendar cal = Calendar.getInstance();\ncal.add(Calendar.MONTH, -3); // only last 3 months\nhistoryFilter.setStartTime(cal.getTime());\nSystem.out.println((new BinanceApi()).getWithdrawHistory(historyFilter));\n```\n\n## Using API - Getting Market Data\n\n#### Getting Bids and Asks on Symbol\n```java\nBinanceSymbol symbol = BinanceSymbol.valueOf(\"ETHBTC\");\nJsonObject depth = (new BinanceApi()).depth(symbol);\nSystem.out.println(\"BIDS=\" + depth.get(\"bids\").getAsJsonArray());\nSystem.out.println(\"ASKS=\" + depth.get(\"asks\").getAsJsonArray());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e\n```\nBIDS=[[\"0.05577600\",\"2.30000000\",[]],[\"0.05577500\",\"1.10000000\",[]],[\"0.05577400\",\"2.10000000\",[]],...,[\"0.00000100\",\"21000.00000000\",[]]]\nASKS=[[\"0.05590600\",\"10.90900000\",[]],[\"0.05590700\",\"9.96000000\",[]],[\"0.05590800\",\"9.44200000\",[]],...,[\"0.06102400\",\"0.50000000\",[]]]\n```\n\u003c/pre\u003e\u003c/details\u003e\n\n#### Getting latest prices - as list of JsonObjects\n```java\nSystem.out.println((new BinanceApi()).prices());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[{\"symbol\":\"ETHBTC\",\"price\":\"0.05602000\"},{\"symbol\":\"LTCBTC\",\"price\":\"0.01107300\"},{\"symbol\":\"BNBBTC\",\"price\":\"0.00023561\"},...,{\"symbol\":\"BNTBTC\",\"price\":\"0.00038649\"}]\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting latest prices - as map of decimals\n```java\nSystem.out.println((new BinanceApi()).pricesMap());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e{ZECETH=0E-8, SALTETH=0.00940300, WTCETH=0.02207900, NEOETH=0.09463500, ... , MTHETH=0.00028000, FUNETH=0.00007538}\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting latest price of a symbol\n```java\nSystem.out.println((new BinanceApi()).pricesMap().get(\"ETHBTC\"));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\u003cpre\u003e0.05628800\u003c/pre\u003e\u003c/details\u003e\n\n#### Getting Aggregated Trades\n```java\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nList\u003cBinanceAggregatedTrades\u003e binanceAggregatedTrades = (new BinanceApi()).aggTrades(symbol, 5, null);\nBinanceAggregatedTrades trade = binanceAggregatedTrades.get(0);\nSystem.out.println(\"TRADE=\" + trade.toString() );\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003eTRADE=BinanceAggregatedTrades{tradeId=2084592, price=0.05476100, quantity=6.87000000, firstTradeId=2192143, lastTradeId=2192143, timestamp=1508393572350, maker=true, bestPrice=true}\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting All Book Tickers\n```java\nSystem.out.println((new BinanceApi()).allBookTickers());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[{\"symbol\":\"ETHBTC\",\"bidPrice\":\"0.05461000\",\"bidQty\":\"29.73000000\",\"askPrice\":\"0.05486300\",\"askQty\":\"19.96000000\"}, ... ,{\"symbol\":\"ASTETH\",\"bidPrice\":\"0.00102010\",\"bidQty\":\"4030.00000000\",\"askPrice\":\"0.00102920\",\"askQty\":\"187.00000000\"}]\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting All Available Symbols\n```java\nSystem.out.println((new BinanceApi()).allBookTickersMap().keySet());\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e[ZECETH, SALTETH, WTCETH, NEOETH, IOTABTC, CTRBTC, SNMBTC, LRCETH, ... , MTLETH, SALTBTC, SUBBTC, MTHETH, FUNETH]\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting 24hr Tickers for Symbol\n```java\nBinanceSymbol symbol = BinanceSymbol.valueOf(\"ETHBTC\");\nSystem.out.println((new BinanceApi()).ticker24hr(symbol));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e{\"priceChange\":\"-0.00180600\",\"priceChangePercent\":\"-3.195\",\"weightedAvgPrice\":\"0.05619267\",\"prevClosePrice\":\"0.05652600\",\"lastPrice\":\"0.05472000\",\"lastQty\":\"0.26100000\",\"bidPrice\":\"0.05472000\",\"bidQty\":\"26.53900000\",\"askPrice\":\"0.05486100\",\"askQty\":\"0.53100000\",\"openPrice\":\"0.05652600\",\"highPrice\":\"0.05734100\",\"lowPrice\":\"0.05460000\",\"volume\":\"28260.45000000\",\"quoteVolume\":\"1588.03005689\",\"openTime\":1508308200417,\"closeTime\":1508394600417,\"firstId\":2167326,\"lastId\":2192389,\"count\":25063}\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Getting Klines / Candlesticks\n```java\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nList\u003cBinanceCandlestick\u003e klines = (new BinanceApi()).klines(symbol, BinanceInterval.ONE_HOUR, 5, null);\nBinanceCandlestick binanceCandlestick = klines.get(0);\nSystem.out.println(\"KLINE=\" + binanceCandlestick.toString() );\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003eKLINE=BinanceCandlestick(openTime=1508378400000, open=0.05598000, high=0.05622000, low=0.05569100, close=0.05570500, volume=1514.33900000, closeTime=1508381999999, quoteAssetVolume=84.65979632, numberOfTrades=1683, takerBuyBaseAssetVolume=716.56500000, takerBuyQuoteAssetVolume=40.07877823)\u003c/pre\u003e\n\u003c/details\u003e\n\n\n#### Getting Exchange Market Information (Lot Sizes)\n```java\nBinanceExchangeInfo binanceExchangeInfo = binanceApi.exchangeInfo();\nList\u003cBinanceExchangeSymbol\u003e symbols = binanceExchangeInfo.getSymbols();\nBinanceExchangeSymbol BNB = symbols.stream().filter(a -\u003e a.getQuoteAsset().equals(\"BNB\")).findFirst().get();\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003eBNB Lot Size: {\"filterType\":\"LOT_SIZE\",\"minQty\":\"0.01000000\",\"maxQty\":\"10000000.00000000\",\"stepSize\":\"0.01000000\"}\u003c/pre\u003e\n\u003c/details\u003e\n\n## Using API - Placing Orders\n\n#### Placing a LIMIT order\n```java\nBinanceApi api = new BinanceApi();\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nBinanceOrderPlacement placement = new BinanceOrderPlacement(symbol, BinanceOrderSide.BUY);\nplacement.setType(BinanceOrderType.LIMIT);\nplacement.setPrice(BigDecimal.valueOf(0.00001));\nplacement.setQuantity(BigDecimal.valueOf(10000)); // buy 10000 of asset for 0.00001 BTC\nBinanceOrder order = api.getOrderById(symbol, api.createOrder(placement).get(\"orderId\").getAsLong());\nSystem.out.println(order.toString());\n```\n\n\n#### Placing a MARKET order\n```java\nBinanceApi api = new BinanceApi();\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nBinanceOrderPlacement placement = new BinanceOrderPlacement(symbol, BinanceOrderSide.BUY);\nplacement.setType(BinanceOrderType.MARKET);\nplacement.setPrice(BigDecimal.valueOf(0.00001));\nplacement.setQuantity(BigDecimal.valueOf(10000)); // buy 10000 of asset for 0.00001 BTC\nBinanceOrder order = api.getOrderById(symbol, api.createOrder(placement).get(\"orderId\").getAsLong());\nSystem.out.println(order.toString());\n```\n\n#### Placing a STOP LOSS order\n```java\nBinanceApi api = new BinanceApi();\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nBinanceOrderPlacement placement = new BinanceOrderPlacement(symbol, BinanceOrderSide.SELL);\nplacement.setPrice(BigDecimal.valueOf(0.069));\nplacement.setStopPrice(BigDecimal.valueOf(0.068));\nplacement.setQuantity(BigDecimal.valueOf(1)); // sell 1 piece of asset\nBinanceOrder order = api.getOrderById(symbol, api.createOrder(placement).get(\"orderId\").getAsLong());\nSystem.out.println(order.toString());\n```\n\n#### Placing an ICEBERG order\n```java\nBinanceApi api = new BinanceApi();\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nBinanceOrderPlacement placement = new BinanceOrderPlacement(symbol, BinanceOrderSide.SELL);\nplacement.setPrice(BigDecimal.valueOf(0.069));\nplacement.setQuantity(BigDecimal.valueOf(1)); // sell 1 piece of asset\nplacement.setIcebergQty(BigDecimal.valueOf(10));\nBinanceOrder order = api.getOrderById(symbol, api.createOrder(placement).get(\"orderId\").getAsLong());\nSystem.out.println(order.toString());\n```\n\n#### Cancel/Delete an order\n```java\nBinanceOrder order = api.getOrderById(symbol, 123456L);\nSystem.out.println(api.deleteOrder(order));\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e\n{}\n\u003c/pre\u003e\n\u003c/details\u003e\n\n\n## Using API - Using User Data Streams\n\n#### Start User Data Stream\n```java\nString listenKey = (new BinanceApi()).startUserDataStream();\nSystem.out.println(listenKey);\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003epqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Keep User Data Stream Alive\n```java\nString listenKey = \"pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1\";\n(new BinanceApi()).keepUserDataStream(listenKey);\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e{}\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Close User Data Stream\n```java\nString listenKey = \"pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1\";\n(new BinanceApi()).deleteUserDataStream(listenKey);\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e{}\u003c/pre\u003e\n\u003c/details\u003e\n\n\n\n\n## Using API - Connecting to Web Sockets\n\n#### Depth Web Socket Listener\n```java\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nSession session = (new BinanceApi()).websocketDepth(symbol, new BinanceWebSocketAdapterDepth() {\n    @Override\n    public void onMessage(BinanceEventDepthUpdate message) {\n        System.out.println(message.toString());\n    }\n});\ntry { Thread.sleep(5000); } catch (InterruptedException e) {}\nsession.close();\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e\nBinanceEventDepthUpdate(eventTime=1508411905630, symbol=ETHBTC, updateId=17379538, bids=[BinanceBidOrAsk(type=BID, price=0.05356100, quantity=0E-8), BinanceBidOrAsk(type=BID, price=0.05355800, quantity=0E-8)], asks=[BinanceBidOrAsk(type=ASK, price=0.05386000, quantity=0.62900000), BinanceBidOrAsk(type=ASK, price=0.05401300, quantity=0E-8), BinanceBidOrAsk(type=ASK, price=0.05401600, quantity=1.50000000)])\nBinanceEventDepthUpdate(eventTime=1508411906630, symbol=ETHBTC, updateId=17379544, bids=[BinanceBidOrAsk(type=BID, price=0.05356200, quantity=0E-8), BinanceBidOrAsk(type=BID, price=0.05354900, quantity=15.00000000), BinanceBidOrAsk(type=BID, price=0.05069700, quantity=0E-8), BinanceBidOrAsk(type=BID, price=0.05066500, quantity=15.60000000)], asks=[BinanceBidOrAsk(type=ASK, price=0.05400600, quantity=1.50000000), BinanceBidOrAsk(type=ASK, price=0.05401600, quantity=0E-8)])\nBinanceEventDepthUpdate(eventTime=1508411907630, symbol=ETHBTC, updateId=17379545, bids=[BinanceBidOrAsk(type=BID, price=0.05356500, quantity=10.00000000)], asks=[])\n\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Klines Web Socket Listener\n```java\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nBinanceInterval interval = BinanceInterval.FIVE_MIN;\nSession session = (new BinanceApi()).websocketKlines(symbol, interval, new BinanceWebSocketAdapterKline() {\n    @Override\n    public void onMessage(BinanceEventKline message) {\n        System.out.println(message.toString());\n    }\n});\ntry { Thread.sleep(15000); } catch (InterruptedException e) {}\nsession.close();\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e\nBinanceEventKline(eventTime=1508416507504, symbol=ETHBTC, interval=1m, startTime=1508416500000, endTime=1508416559999, firstTradeId=-1, lastTradeId=-1, open=0.05393800, close=0.05393800, high=0.05393800, low=0.05393800, volume=0E-8, numberOfTrades=0, isFinal=false, quoteVolume=0E-8, volumeOfActiveBuy=0E-8, quoteVolumeOfActiveBuy=0E-8)\n\u003c/pre\u003e\n\u003c/details\u003e\n\n#### Trades Web Socket Listener\n```java\nBinanceSymbol symbol = new BinanceSymbol(\"ETHBTC\");\nSession session = (new BinanceApi()).websocketTrades(symbol, new BinanceWebSocketAdapterAggTrades() {\n    @Override\n    public void onMessage(BinanceEventAggTrade message) {\n        System.out.println(message.toString());\n    }\n});\ntry { Thread.sleep(8000); } catch (InterruptedException e) {}\nsession.close();\n```\n\u003cdetails\u003e\u003csummary\u003eView Output\u003c/summary\u003e\n\u003cpre\u003e\nBinanceEventAggTrade(eventTime=1508412260766, symbol=ETHBTC, aggregatedTradeId=2089883, price=0.05369800, quantity=3.68000000, firstBreakdownTradeId=2197559, lastBreakdownTradeId=2197559, tradeTime=1508412260762, isMaker=false)\nBinanceEventAggTrade(eventTime=1508412260835, symbol=ETHBTC, aggregatedTradeId=2089884, price=0.05369800, quantity=1.00000000, firstBreakdownTradeId=2197560, lastBreakdownTradeId=2197560, tradeTime=1508412260832, isMaker=false)\n\u003c/pre\u003e\n\u003c/details\u003e\n\n\n#### User Data Web Socket Listener\n```java\nBinanceApi api = new BinanceApi();\nString listenKey = api.startUserDataStream();\nSession session = api.websocket(listenKey, new BinanceWebSocketAdapterUserData() {\n    @Override\n    public void onOutboundAccountInfo(BinanceEventOutboundAccountInfo message) {\n        System.out.println(message.toString());\n    }\n    @Override\n    public void onExecutionReport(BinanceEventExecutionReport message) {\n        System.out.println(message.toString());\n    }\n});\nThread.sleep(5000);\nsession.close();\napi.deleteUserDataStream(listenKey);\n```\n\n# Contribution\n\nThis is an API that is not officially supported. So contributions in any form, especially pull requests are always welcome.\nIf you like what we do, and want to support our development of distributed future, you can also send tips:\n```\nGAS: AKXysWVLmB2J5qxGPJLFBPducj5cNMYKLo\nETH: 0x95E972Ff1A4CB6112cb08FE7DE81542DF9b8a0F4\n```\n\n# License\nMIT. Anyone can copy, change, derive further work from this repository without any restrictions.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebcerebrium%2Fjava-binance-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebcerebrium%2Fjava-binance-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebcerebrium%2Fjava-binance-api/lists"}