├── .github
└── workflows
│ └── maven-publish.yml
├── .gitignore
├── .idea
├── .gitignore
├── aws.xml
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── encodings.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── misc.xml
├── uiDesigner.xml
└── vcs.xml
├── LICENSE
├── README.md
├── pom.xml
├── pom.xml.versionsBackup
├── src
├── .idea
│ ├── misc.xml
│ ├── modules.xml
│ ├── vcs.xml
│ └── workspace.xml
├── main
│ ├── java
│ │ └── com
│ │ │ └── bybit
│ │ │ └── api
│ │ │ └── client
│ │ │ ├── config
│ │ │ └── BybitApiConfig.java
│ │ │ ├── constant
│ │ │ ├── BybitApiConstants.java
│ │ │ └── Helper.java
│ │ │ ├── domain
│ │ │ ├── CategoryType.java
│ │ │ ├── GenericResponse.java
│ │ │ ├── TradeOrderType.java
│ │ │ ├── TriggerBy.java
│ │ │ ├── WithdrawBeneficiaryMap.java
│ │ │ ├── account
│ │ │ │ ├── AccountType.java
│ │ │ │ ├── CollateralSwitch.java
│ │ │ │ ├── SpotHedgingMode.java
│ │ │ │ └── request
│ │ │ │ │ ├── AccountDataRequest.java
│ │ │ │ │ ├── BatchSetCollateralCoinRequest.java
│ │ │ │ │ ├── ResetMMPRequest.java
│ │ │ │ │ ├── SetCollateralCoinRequest.java
│ │ │ │ │ ├── SetMMPRequest.java
│ │ │ │ │ ├── SetMarginModeRequest.java
│ │ │ │ │ └── SetSpotHedgingRequest.java
│ │ │ ├── announcement
│ │ │ │ ├── AnnouncementTag.java
│ │ │ │ ├── AnnouncementType.java
│ │ │ │ ├── LanguageSymbol.java
│ │ │ │ └── request
│ │ │ │ │ └── AnnouncementInfoRequest.java
│ │ │ ├── asset
│ │ │ │ ├── FeeType.java
│ │ │ │ ├── TransferStatus.java
│ │ │ │ ├── WithBonus.java
│ │ │ │ ├── WithTransferSafeAmount.java
│ │ │ │ ├── WithdrawType.java
│ │ │ │ └── request
│ │ │ │ │ ├── AssetCancelWithdrawRequest.java
│ │ │ │ │ ├── AssetDataRequest.java
│ │ │ │ │ ├── AssetDepositRequest.java
│ │ │ │ │ ├── AssetInternalTransferRequest.java
│ │ │ │ │ ├── AssetQuoteRequest.java
│ │ │ │ │ ├── AssetUniversalTransferRequest.java
│ │ │ │ │ ├── AssetWithdrawRequest.java
│ │ │ │ │ ├── ConfirmQuoteRequest.java
│ │ │ │ │ └── SetAssetDepositAccountRequest.java
│ │ │ ├── broker
│ │ │ │ ├── BusinessType.java
│ │ │ │ ├── WithUsedAmount.java
│ │ │ │ └── request
│ │ │ │ │ ├── BrokerDataRequest.java
│ │ │ │ │ ├── BrokerGetIssuedVoucherRequest.java
│ │ │ │ │ ├── BrokerIssueVoucherRequest.java
│ │ │ │ │ └── BrokerVoucherSpecRequest.java
│ │ │ ├── institution
│ │ │ │ ├── LendingDataRequest.java
│ │ │ │ ├── LendingOrderType.java
│ │ │ │ ├── OperateType.java
│ │ │ │ ├── clientLending
│ │ │ │ │ ├── ClientLendingFundsRequest.java
│ │ │ │ │ └── ClientLendingOrderRecordsRequest.java
│ │ │ │ └── insLending
│ │ │ │ │ ├── InstitutionLoanOrdersRequest.java
│ │ │ │ │ ├── InstitutionRepayOrdersRequest.java
│ │ │ │ │ └── UpdateInstitutionLoadUidRequest.java
│ │ │ ├── loan
│ │ │ │ ├── Direction.java
│ │ │ │ ├── LoanTerm.java
│ │ │ │ ├── LoanTermType.java
│ │ │ │ ├── VipLevel.java
│ │ │ │ └── request
│ │ │ │ │ ├── CryptoLoanAdjustLtvRequest.java
│ │ │ │ │ ├── CryptoLoanBorrowRequest.java
│ │ │ │ │ ├── CryptoLoanDataRequest.java
│ │ │ │ │ └── CryptoLoanRepayRequest.java
│ │ │ ├── market
│ │ │ │ ├── DataRecordingPeriod.java
│ │ │ │ ├── InstrumentStatus.java
│ │ │ │ ├── IntervalTime.java
│ │ │ │ ├── MarketInterval.java
│ │ │ │ ├── MarketStatus.java
│ │ │ │ ├── OptionType.java
│ │ │ │ ├── request
│ │ │ │ │ └── MarketDataRequest.java
│ │ │ │ └── response
│ │ │ │ │ ├── fundingRate
│ │ │ │ │ ├── FundingRateEntry.java
│ │ │ │ │ └── FundingRateResult.java
│ │ │ │ │ ├── historicalVolatility
│ │ │ │ │ ├── HistoricalVolatilityEntry.java
│ │ │ │ │ └── HistoricalVolatilityResult.java
│ │ │ │ │ ├── instrumentInfo
│ │ │ │ │ ├── InstrumentEntry.java
│ │ │ │ │ ├── InstrumentInfoResult.java
│ │ │ │ │ ├── LeverageFilter.java
│ │ │ │ │ ├── LotSizeFilter.java
│ │ │ │ │ └── PriceFilter.java
│ │ │ │ │ ├── kline
│ │ │ │ │ ├── MarketKlineEntry.java
│ │ │ │ │ └── MarketKlineResult.java
│ │ │ │ │ ├── openInterests
│ │ │ │ │ ├── OpenInterestEntry.java
│ │ │ │ │ └── OpenInterestResult.java
│ │ │ │ │ ├── orderbook
│ │ │ │ │ ├── OrderBookAskEntry.java
│ │ │ │ │ ├── OrderbookBidEntry.java
│ │ │ │ │ └── OrderbookResult.java
│ │ │ │ │ ├── recentTrade
│ │ │ │ │ ├── RecentTradeEntry.java
│ │ │ │ │ └── RecentTradeResult.java
│ │ │ │ │ ├── serverTime
│ │ │ │ │ └── ServerTimeResult.java
│ │ │ │ │ └── tickers
│ │ │ │ │ ├── TickerEntry.java
│ │ │ │ │ └── TickersResult.java
│ │ │ ├── position
│ │ │ │ ├── AutoAddMargin.java
│ │ │ │ ├── ExecType.java
│ │ │ │ ├── MarginMode.java
│ │ │ │ ├── MovePositionStatus.java
│ │ │ │ ├── PositionMode.java
│ │ │ │ ├── TpslMode.java
│ │ │ │ └── request
│ │ │ │ │ ├── BatchMovePositionRequest.java
│ │ │ │ │ ├── ConfirmNewRiskLimitRequest.java
│ │ │ │ │ ├── ModifyMarginRequest.java
│ │ │ │ │ ├── MovePositionDetailsRequest.java
│ │ │ │ │ ├── PositionDataRequest.java
│ │ │ │ │ ├── SetAutoAddMarginRequest.java
│ │ │ │ │ ├── SetLeverageRequest.java
│ │ │ │ │ ├── SetRiskLimitRequest.java
│ │ │ │ │ ├── SetTpSlModeRequest.java
│ │ │ │ │ ├── SwitchMarginRequest.java
│ │ │ │ │ ├── SwitchPositionModeRequest.java
│ │ │ │ │ └── TradingStopRequest.java
│ │ │ ├── preupgrade
│ │ │ │ ├── PreUpgradeDataRequest.java
│ │ │ │ └── TransactionType.java
│ │ │ ├── spot
│ │ │ │ ├── BorrowStatus.java
│ │ │ │ ├── CompleteRepayment.java
│ │ │ │ ├── SpotMarginDataRequest.java
│ │ │ │ ├── SpotMarginMode.java
│ │ │ │ ├── SwitchStatus.java
│ │ │ │ ├── VipLevel.java
│ │ │ │ ├── leverageToken
│ │ │ │ │ ├── SpotLeverageOrdersRecordRequest.java
│ │ │ │ │ └── SpotLeverageTokenRequest.java
│ │ │ │ └── marginTrade
│ │ │ │ │ ├── SpotMarginTradeBorrowOrdersRequest.java
│ │ │ │ │ ├── SpotMarginTradeBorrowRequest.java
│ │ │ │ │ ├── SpotMarginTradeRePayRequest.java
│ │ │ │ │ ├── SpotMarginTradeRepayOrdersRequest.java
│ │ │ │ │ └── VIPMarginDataRequest.java
│ │ │ ├── trade
│ │ │ │ ├── CancelType.java
│ │ │ │ ├── OrderFilter.java
│ │ │ │ ├── OrderStatus.java
│ │ │ │ ├── PositionIdx.java
│ │ │ │ ├── RejectReason.java
│ │ │ │ ├── Side.java
│ │ │ │ ├── SmpType.java
│ │ │ │ ├── StopOrderType.java
│ │ │ │ ├── TimeInForce.java
│ │ │ │ ├── request
│ │ │ │ │ ├── AmendBatchOrderRequest.java
│ │ │ │ │ ├── AmendOrderRequest.java
│ │ │ │ │ ├── BatchOrderRequest.java
│ │ │ │ │ ├── CancelAllOrdersRequest.java
│ │ │ │ │ ├── CancelBatchOrderRequest.java
│ │ │ │ │ ├── CancelOrderRequest.java
│ │ │ │ │ ├── PlaceBatchOrderRequest.java
│ │ │ │ │ ├── PlaceOrderRequest.java
│ │ │ │ │ ├── SetDcpRequest.java
│ │ │ │ │ └── TradeOrderRequest.java
│ │ │ │ └── response
│ │ │ │ │ ├── OrderEntry.java
│ │ │ │ │ ├── OrderResponse.java
│ │ │ │ │ └── OrderResult.java
│ │ │ ├── user
│ │ │ │ ├── FrozenStatus.java
│ │ │ │ ├── IsUta.java
│ │ │ │ ├── MasterUserPermissions.java
│ │ │ │ ├── MemberType.java
│ │ │ │ ├── ReadOnlyStatus.java
│ │ │ │ ├── SubUserPermissions.java
│ │ │ │ ├── SwitchOption.java
│ │ │ │ ├── UserDataRequest.java
│ │ │ │ ├── UserPermissionsMap.java
│ │ │ │ └── request
│ │ │ │ │ ├── CreateSubApiKeyRequest.java
│ │ │ │ │ ├── FreezeSubUIDRquest.java
│ │ │ │ │ ├── ModifyApiKeyRequest.java
│ │ │ │ │ └── UserSubMemberRequest.java
│ │ │ └── websocket_message
│ │ │ │ ├── private_channel
│ │ │ │ ├── CoinData.java
│ │ │ │ ├── ExecutionData.java
│ │ │ │ ├── GreekData.java
│ │ │ │ ├── OrderData.java
│ │ │ │ ├── PositionData.java
│ │ │ │ ├── WalletData.java
│ │ │ │ ├── WebSocketExecutionMessage.java
│ │ │ │ ├── WebSocketGreekMessage.java
│ │ │ │ ├── WebSocketOrderMessage.java
│ │ │ │ ├── WebSocketPositionMessage.java
│ │ │ │ └── WebSocketWalletMessage.java
│ │ │ │ └── public_channel
│ │ │ │ ├── KlineData.java
│ │ │ │ ├── LiquidationData.java
│ │ │ │ ├── LtKlineData.java
│ │ │ │ ├── LtTicketData.java
│ │ │ │ ├── NavData.java
│ │ │ │ ├── PublicOrderBookData.java
│ │ │ │ ├── PublicTickerData.java
│ │ │ │ ├── TradeData.java
│ │ │ │ ├── WebSocketKlineMessage.java
│ │ │ │ ├── WebSocketLiquidationMessage.java
│ │ │ │ ├── WebSocketLtKlineMessage.java
│ │ │ │ ├── WebSocketLtTicketMessage.java
│ │ │ │ ├── WebSocketTickerMessage.java
│ │ │ │ ├── WebSocketTradeMessage.java
│ │ │ │ ├── WebsocketLtNavMessage.java
│ │ │ │ └── WebsocketOrderbookMessage.java
│ │ │ ├── exception
│ │ │ ├── BybitApiError.java
│ │ │ ├── BybitApiException.java
│ │ │ └── UnsupportedEventException.java
│ │ │ ├── impl
│ │ │ ├── BybitApBrokerRestClientImpl.java
│ │ │ ├── BybitApiAccountRestClientImpl.java
│ │ │ ├── BybitApiAssetRestClientImpl.java
│ │ │ ├── BybitApiAsyncAccountRestClientImpl.java
│ │ │ ├── BybitApiAsyncAssetRestClientImpl.java
│ │ │ ├── BybitApiAsyncBrokerRestClientImpl.java
│ │ │ ├── BybitApiAsyncLendingRestClientImpl.java
│ │ │ ├── BybitApiAsyncLoanRestClientImpl.java
│ │ │ ├── BybitApiAsyncPositionRestClientImpl.java
│ │ │ ├── BybitApiAsyncSpotMarginRestClientImpl.java
│ │ │ ├── BybitApiAsyncUserRestClientImpl.java
│ │ │ ├── BybitApiCallbackAdapter.java
│ │ │ ├── BybitApiLendingRestClientImpl.java
│ │ │ ├── BybitApiLoanRestClientImpl.java
│ │ │ ├── BybitApiMarketAsyncRestClientImpl.java
│ │ │ ├── BybitApiMarketRestClientImpl.java
│ │ │ ├── BybitApiPositionRestClientImpl.java
│ │ │ ├── BybitApiSpotMarginRestClientImpl.java
│ │ │ ├── BybitApiTradeAsyncRestClientImpl.java
│ │ │ ├── BybitApiTradeRestClientImpl.java
│ │ │ └── BybitApiUserRestClientImpl.java
│ │ │ ├── log
│ │ │ ├── LogOption.java
│ │ │ └── Slf4jLoggingInterceptor.java
│ │ │ ├── restApi
│ │ │ ├── BybitApiAccountRestClient.java
│ │ │ ├── BybitApiAssetRestClient.java
│ │ │ ├── BybitApiAsyncAccountRestClient.java
│ │ │ ├── BybitApiAsyncAssetRestClient.java
│ │ │ ├── BybitApiAsyncBrokerRestClient.java
│ │ │ ├── BybitApiAsyncLendingRestClient.java
│ │ │ ├── BybitApiAsyncLoanRestClient.java
│ │ │ ├── BybitApiAsyncMarketDataRestClient.java
│ │ │ ├── BybitApiAsyncPositionRestClient.java
│ │ │ ├── BybitApiAsyncSpotMarginRestClient.java
│ │ │ ├── BybitApiAsyncTradeRestClient.java
│ │ │ ├── BybitApiAsyncUserRestClient.java
│ │ │ ├── BybitApiBrokerRestClient.java
│ │ │ ├── BybitApiCallback.java
│ │ │ ├── BybitApiLendingRestClient.java
│ │ │ ├── BybitApiLoanRestClient.java
│ │ │ ├── BybitApiMarketRestClient.java
│ │ │ ├── BybitApiPositionRestClient.java
│ │ │ ├── BybitApiService.java
│ │ │ ├── BybitApiSpotMarginRestClient.java
│ │ │ ├── BybitApiTradeRestClient.java
│ │ │ └── BybitApiUserRestClient.java
│ │ │ ├── security
│ │ │ ├── AuthenticationInterceptor.java
│ │ │ ├── HmacSHA256Signer.java
│ │ │ └── SignatureGenerator.java
│ │ │ ├── service
│ │ │ ├── BybitApiClientFactory.java
│ │ │ ├── BybitApiServiceGenerator.java
│ │ │ ├── BybitJsonConverter.java
│ │ │ ├── CategoryTypeSerializer.java
│ │ │ ├── PositionIdxSerializer.java
│ │ │ ├── SideSerializer.java
│ │ │ ├── SmpTypeSerializer.java
│ │ │ ├── StopOrderTypeSerializer.java
│ │ │ ├── TimeInForceSerializer.java
│ │ │ ├── TradeOrderTypeSerializer.java
│ │ │ └── TriggerBySerializer.java
│ │ │ ├── util
│ │ │ ├── JSONParser.java
│ │ │ ├── ParameterChecker.java
│ │ │ ├── RequestBuilder.java
│ │ │ ├── RequestType.java
│ │ │ └── UrlBuilder.java
│ │ │ └── websocket
│ │ │ ├── api
│ │ │ ├── WebSocketApiAuth.java
│ │ │ ├── WebSocketApiModule.java
│ │ │ └── WebSocketApiTrade.java
│ │ │ ├── callback
│ │ │ ├── WebSocketApiRequestHandler.java
│ │ │ ├── WebSocketClosedCallback.java
│ │ │ ├── WebSocketClosingCallback.java
│ │ │ ├── WebSocketFailureCallback.java
│ │ │ ├── WebSocketMessageCallback.java
│ │ │ └── WebSocketOpenCallback.java
│ │ │ ├── enums
│ │ │ └── Category.java
│ │ │ ├── httpclient
│ │ │ ├── WebSocketApiClient.java
│ │ │ ├── WebSocketApiHttpClientSingleton.java
│ │ │ ├── WebSocketStreamHttpClientSingleton.java
│ │ │ └── WebsocketStreamClient.java
│ │ │ └── impl
│ │ │ ├── WebSocketApiClientImpl.java
│ │ │ ├── WebSocketApiModuleFactory.java
│ │ │ ├── WebSocketConnection.java
│ │ │ └── WebsocketStreamClientImpl.java
│ └── resources
│ │ └── logback.xml
└── test
│ └── java
│ └── com
│ └── bybit
│ └── api
│ ├── domain
│ ├── account
│ │ ├── AccountBalanceTest.java
│ │ ├── CollateralCoinTest.java
│ │ ├── SetMarginModeTest.java
│ │ ├── SpotHedgeTest.java
│ │ └── TransactionLogTest.java
│ ├── asset
│ │ ├── AccountTransferTest.java
│ │ ├── AssetWithdrawTest.java
│ │ ├── BybitApiAssetRestClientTest.java
│ │ ├── CoinBalanceTest.java
│ │ └── ConvertCoinTest.java
│ ├── loan
│ │ └── TestLoanApi.java
│ ├── market
│ │ ├── FundingRateResultDeserializerTest.java
│ │ ├── InstrumentInfoResultDeserializerTest.java
│ │ ├── MarketKlineResultDeserializerTest.java
│ │ ├── OpenInterestResultDeserializerTest.java
│ │ ├── OrderbookResultDeserializerTest.java
│ │ ├── RecentTradeResultDeserializerTest.java
│ │ ├── ServerTimeResultDeserializerTest.java
│ │ ├── TickerInfoIndexPriceTest.java
│ │ └── TickersResultDeserializerTest.java
│ ├── position
│ │ ├── MovePositionTest.java
│ │ ├── PositionListCursotTest.java
│ │ └── SwitchPositionModeTest.java
│ ├── spot_margin
│ │ └── SpotMarginTradeTest.java
│ ├── trade
│ │ ├── OpenOrderTest.java
│ │ └── OrderHistoryTest.java
│ └── user
│ │ ├── UserAPIKeyTest.java
│ │ └── UserCreatedTest.java
│ ├── examples
│ ├── Websocket
│ │ ├── api
│ │ │ ├── WsStreamAPITrade.java
│ │ │ ├── WsStreamWithWsApiTrade.java
│ │ │ └── ws_trade_api_demo.java
│ │ └── stream
│ │ │ ├── WebsockeCloseStreamlExamples.java
│ │ │ ├── WebsocketDebuggerExample.java
│ │ │ ├── WebsocketPrivateChannelExamples.java
│ │ │ └── WebsocketPublicChannelExamples.java
│ └── http
│ │ ├── async
│ │ ├── AccountAsyncExample.java
│ │ ├── AnnouncementEndpointsExampleAsync.java
│ │ ├── AssetAsyncExample.java
│ │ ├── BatchOrderAsyncExampleAsync.java
│ │ ├── BrokerAsyncExample.java
│ │ ├── CryptoLoanAsyncExample.java
│ │ ├── InstituionAsyncExample.java
│ │ ├── MarketDataEndpointsExampleAsync.java
│ │ ├── PositionDataAsyncExample.java
│ │ ├── PreUpgradeAsyncExample.java
│ │ ├── TradeAsyncExample.java
│ │ ├── UTASpotMarginAsyncExample.java
│ │ └── UserAsyncExample.java
│ │ └── sync
│ │ ├── AccountExample.java
│ │ ├── AnnounceExample.java
│ │ ├── AssetExample.java
│ │ ├── BatchOrdersExample.java
│ │ ├── BrokerExample.java
│ │ ├── C2CExample.java
│ │ ├── InstituionExample.java
│ │ ├── MarketDataEndpointsExample.java
│ │ ├── NormalSpotMarginExample.java
│ │ ├── PositionDataExample.java
│ │ ├── PreUpgradeExample.java
│ │ ├── SpotLeverageExample.java
│ │ ├── TradeExample.java
│ │ ├── UTASpotMarginExample.java
│ │ └── UserExample.java
│ ├── log
│ └── Slf4jLoggingTest.java
│ └── websocket
│ └── stream
│ ├── KlineChannelMessageHandler.java
│ ├── LiquidationChannelMessageHandler.java
│ ├── OrderBookChannelMessageHandler.java
│ ├── OrderChannelMessageHandler.java
│ ├── PublicChannelTest.java
│ ├── TickerChannelMessageHandler.java
│ └── TradeChannelMessageHandler.java
└── tokens
└── StoredCredential
/.github/workflows/maven-publish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
2 | # For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
3 |
4 | name: Maven Package
5 |
6 | on:
7 | release:
8 | types: [created]
9 |
10 | jobs:
11 | build:
12 |
13 | runs-on: ubuntu-latest
14 | permissions:
15 | contents: read
16 | packages: write
17 |
18 | steps:
19 | - uses: actions/checkout@v3
20 | - name: Set up JDK 11
21 | uses: actions/setup-java@v3
22 | with:
23 | java-version: '11'
24 | distribution: 'temurin'
25 | server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
26 | settings-path: ${{ github.workspace }} # location for the settings.xml file
27 |
28 | - name: Build with Maven
29 | run: mvn -B package --file pom.xml
30 |
31 | - name: Publish to GitHub Packages Apache Maven
32 | run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
33 | env:
34 | GITHUB_TOKEN: ${{ github.token }}
35 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/aws.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) [year] [fullname]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/constant/Helper.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.constant;
2 |
3 | import java.util.HashMap;
4 | import java.util.List;
5 | import java.time.Instant;
6 | import java.util.Map;
7 | import java.util.UUID;
8 |
9 | /**
10 | * Utility class
11 | */
12 | public final class Helper {
13 |
14 | public static long generateTimestamp() {
15 | return Instant.now().toEpochMilli();
16 | }
17 |
18 | private Helper() {
19 |
20 | }
21 |
22 | public static Map convertQueryToMap(String query) {
23 | Map result = new HashMap<>();
24 | if (query == null || query.isEmpty()) {
25 | return result;
26 | }
27 |
28 | for (String param : query.split("&")) {
29 | String[] entry = param.split("=");
30 | if (entry.length > 1) {
31 | result.put(entry[0], entry[1]);
32 | }
33 | }
34 |
35 | return result;
36 | }
37 |
38 | public static String generateTransferID()
39 | {
40 | UUID uuid = UUID.randomUUID();
41 | return uuid.toString();
42 | }
43 |
44 | public static String listToString(List items) {
45 | return String.join(",", items);
46 | }
47 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/CategoryType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain;
2 |
3 | import com.fasterxml.jackson.annotation.JsonCreator;
4 | import com.fasterxml.jackson.annotation.JsonValue;
5 | import lombok.Getter;
6 |
7 | /**
8 | * Category type. Spot,linear, inverse
9 | */
10 | @Getter
11 | public enum CategoryType {
12 | SPOT("spot"),
13 | LINEAR("linear"),
14 | INVERSE("inverse"),
15 | OPTION("option");
16 | private final String categoryTypeId;
17 |
18 | CategoryType(String categoryTypeId) {
19 | this.categoryTypeId = categoryTypeId;
20 | }
21 | /* @JsonValue
22 | public String getCategoryTypeId() {
23 | return categoryTypeId;
24 | }
25 |
26 | @JsonCreator
27 | public static CategoryType forValue(String value) {
28 | for (CategoryType categoryType : values()) {
29 | if (categoryType.getCategoryTypeId().equalsIgnoreCase(value)) {
30 | return categoryType;
31 | }
32 | }
33 | throw new IllegalArgumentException("Unknown category type: " + value);
34 | }*/
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/GenericResponse.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 | @Getter
9 | @Setter
10 | @ToString
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | public class GenericResponse {
13 | @JsonProperty("retCode")
14 | private int retCode;
15 |
16 | @JsonProperty("retMsg")
17 | private String retMsg;
18 |
19 | @JsonProperty("result")
20 | private T result;
21 |
22 | @JsonProperty("retExtInfo")
23 | private Object retExtInfo;
24 |
25 | @JsonProperty("time")
26 | private long time;
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/TradeOrderType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum TradeOrderType {
7 | MARKET("Market"),
8 | LIMIT("Limit"),
9 | UNKNOWN("UNKNOWN"); // Used in some responses, mainly when execType is Funding
10 |
11 | private final String oType;
12 |
13 | TradeOrderType(String oType) {
14 | this.oType = oType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/TriggerBy.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum TriggerBy {
7 | LAST_PRICE("LastPrice"),
8 | INDEX_PRICE("IndexPrice"),
9 | MARK_PRICE("MarkPrice");
10 |
11 | private final String trigger;
12 |
13 | TriggerBy(String trigger) {
14 | this.trigger = trigger;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/WithdrawBeneficiaryMap.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain;
2 |
3 | import com.fasterxml.jackson.annotation.JsonAnyGetter;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | import java.util.Map;
10 |
11 | @Getter
12 | @Setter
13 | @ToString
14 | @Builder
15 | public class WithdrawBeneficiaryMap {
16 | private final Map beneficiaryMap;
17 |
18 | public WithdrawBeneficiaryMap(Map beneficiaryMap) {
19 | this.beneficiaryMap = beneficiaryMap;
20 | }
21 |
22 | @JsonAnyGetter // This annotation allows the map's entries to be serialized as properties.
23 | public Map getBeneficiaryMap() {
24 | return beneficiaryMap;
25 | }
26 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/AccountType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum AccountType {
7 | CONTRACT("CONTRACT"),
8 | SPOT("SPOT"),
9 | INVESTMENT("INVESTMENT"),
10 | OPTION("OPTION"),
11 | UNIFIED("UNIFIED"),
12 | FUND("FUND"),
13 |
14 | // Convert
15 | CONVERT_UTA("eb_convert_uta"),
16 | CONVERT_SPOT("eb_convert_spot"),
17 | CONVERT_contract("eb_convert_contract"),
18 | CONVERT_FUNDING("eb_convert_funding");
19 |
20 | private final String accountTypeValue;
21 |
22 | AccountType(String accountTypeValue) {
23 | this.accountTypeValue = accountTypeValue;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/CollateralSwitch.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum CollateralSwitch {
7 | ON("ON"),
8 | OFF("OFF");
9 |
10 | private final String collateralSwitchMode;
11 |
12 | CollateralSwitch(String collateralSwitchMode) {
13 | this.collateralSwitchMode = collateralSwitchMode;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/SpotHedgingMode.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum SpotHedgingMode {
7 | ON("ON"),
8 | OFF("OFF");
9 |
10 | private final String spotHedgingMode;
11 |
12 | SpotHedgingMode(String spotHedgingMode) {
13 | this.spotHedgingMode = spotHedgingMode;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/AccountDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.domain.account.AccountType;
5 | import com.bybit.api.client.domain.account.CollateralSwitch;
6 | import com.bybit.api.client.domain.account.SpotHedgingMode;
7 | import com.bybit.api.client.domain.position.MarginMode;
8 | import com.bybit.api.client.domain.preupgrade.TransactionType;
9 | import com.bybit.api.client.domain.user.IsUta;
10 | import com.fasterxml.jackson.annotation.JsonInclude;
11 | import lombok.Builder;
12 | import lombok.Getter;
13 | import lombok.Setter;
14 | import lombok.ToString;
15 |
16 | @Getter
17 | @Setter
18 | @ToString
19 | @Builder
20 | @JsonInclude(JsonInclude.Include.NON_NULL)
21 | public class AccountDataRequest {
22 | private AccountType accountType;
23 | private CategoryType category;
24 | private String currency;
25 | private String baseCoin;
26 | private TransactionType transactionType;
27 | private Long startTime;
28 | private Long endTime;
29 | private Integer limit;
30 | private String cursor;
31 | private String coin;
32 | private CollateralSwitch collateralSwitch;
33 | private String window;
34 | private String frozenPeriod;
35 | private String qtyLimit;
36 | private String deltaLimit;
37 | private String coins;
38 | private MarginMode setMarginMode;
39 | private String symbol;
40 | private SpotHedgingMode setHedgingMode;
41 | private IsUta isUta;
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/BatchSetCollateralCoinRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | import java.util.List;
10 |
11 | @Getter
12 | @Setter
13 | @ToString
14 | @Builder
15 | @JsonInclude(JsonInclude.Include.NON_NULL)
16 | public class BatchSetCollateralCoinRequest {
17 | private List request;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/ResetMMPRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class ResetMMPRequest {
15 | private String baseCoin;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/SetCollateralCoinRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SetCollateralCoinRequest {
15 | private String coin;
16 | private String collateralSwitch;
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/SetMMPRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class SetMMPRequest {
13 | private String baseCoin;
14 | private String window;
15 | private String frozenPeriod;
16 | private String qtyLimit;
17 | private String deltaLimit;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/SetMarginModeRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SetMarginModeRequest {
15 | private String setMarginMode;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/account/request/SetSpotHedgingRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.account.request;
2 |
3 | import lombok.Builder;
4 | import lombok.Data;
5 |
6 | @Data
7 | @Builder
8 | public class SetSpotHedgingRequest {
9 | private String setHedgingMode;
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/announcement/AnnouncementTag.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.announcement;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum AnnouncementTag {
7 | SPOT("Spot"),
8 | DERIVATIVES("Derivatives"),
9 | SPOT_LISTINGS("Spot Listings"),
10 | BTC("BTC"),
11 | ETH("ETH"),
12 | TRADING_BOTS("Trading Bots"),
13 | USDC("USDC"),
14 | LEVERAGED_TOKENS("Leveraged Tokens"),
15 | USDT("USDT"),
16 | MARGIN_TRADING("Margin Trading"),
17 | PARTNERSHIPS("Partnerships"),
18 | LAUNCHPAD("Launchpad"),
19 | UPGRADES("Upgrades"),
20 | BYVOTES("ByVotes"),
21 | DELISTINGS("Delistings"),
22 | VIP("VIP"),
23 | FUTURES("Futures"),
24 | INSTITUTIONS("Institutions"),
25 | OPTIONS("Options"),
26 | WEB3("WEB3"),
27 | COPY_TRADING("Copy Trading"),
28 | EARN("Earn"),
29 | BYBIT_SAVINGS("Bybit Savings"),
30 | DUAL_ASSET("Dual Asset"),
31 | LIQUIDITY_MINING("Liquidity Mining"),
32 | SHARK_FIN("Shark Fin"),
33 | LAUNCHPOOL("Launchpool"),
34 | NFT_GRAB_PIC("NFT GrabPic"),
35 | BUY_CRYPTO("Buy Crypto"),
36 | P2P_TRADING("P2P Trading", "P2P"),
37 | FIAT_DEPOSIT("Fiat Deposit"),
38 | CRYPTO_DEPOSIT("Crypto Deposit");
39 |
40 | private final String englishTranslation;
41 | private final String[] otherTranslations;
42 |
43 | AnnouncementTag(String englishTranslation, String... otherTranslations) {
44 | this.englishTranslation = englishTranslation;
45 | this.otherTranslations = otherTranslations;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/announcement/AnnouncementType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.announcement;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum AnnouncementType {
7 | NEW_CRYPTO("new_crypto"),
8 | LATEST_BYBIT_NEWS("latest_bybit_news"),
9 | DELISTINGS("delistings"),
10 | LATEST_ACTIVITIES("latest_activities"),
11 | PRODUCT_UPDATES("product_updates"),
12 | MAINTENANCE_UPDATES("maintenance_updates"),
13 | NEW_FIAT_LISTINGS("new_fiat_listings"),
14 | OTHER("other");
15 |
16 | private final String announcementType;
17 |
18 | AnnouncementType(String announcementType) {
19 | this.announcementType = announcementType;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/announcement/LanguageSymbol.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.announcement;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum LanguageSymbol {
7 | DE_DE("de-DE"),
8 | EN_US("en-US"),
9 | ES_AR("es-AR"),
10 | ES_ES("es-ES"),
11 | ES_MX("es-MX"),
12 | FR_FR("fr-FR"),
13 | KK_KZ("kk-KZ"),
14 | ID_ID("id-ID"),
15 | UK_UA("uk-UA"),
16 | JA_JP("ja-JP"),
17 | RU_RU("ru-RU"),
18 | TH_TH("th-TH"),
19 | PT_BR("pt-BR"),
20 | TR_TR("tr-TR"),
21 | VI_VN("vi-VN"),
22 | ZH_TW("zh-TW"),
23 | AR_SA("ar-SA"),
24 | HI_IN("hi-IN"),
25 | FIL_PH("fil-PH");
26 |
27 | private final String languageSymbol;
28 |
29 | LanguageSymbol(String languageSymbol) {
30 | this.languageSymbol = languageSymbol;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/announcement/request/AnnouncementInfoRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.announcement.request;
2 |
3 | import com.bybit.api.client.domain.announcement.AnnouncementTag;
4 | import com.bybit.api.client.domain.announcement.AnnouncementType;
5 | import com.bybit.api.client.domain.announcement.LanguageSymbol;
6 | import com.fasterxml.jackson.annotation.JsonInclude;
7 | import lombok.Builder;
8 | import lombok.Getter;
9 | import lombok.Setter;
10 | import lombok.ToString;
11 |
12 | @Getter
13 | @Setter
14 | @ToString
15 | @Builder
16 | @JsonInclude(JsonInclude.Include.NON_NULL)
17 | public class AnnouncementInfoRequest {
18 | private LanguageSymbol locale;
19 | private AnnouncementType type;
20 | private AnnouncementTag tag;
21 | @Builder.Default
22 | private int page = 1;
23 | @Builder.Default
24 | private int limit = 20;
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/FeeType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum FeeType {
7 | MANUAL_CALCULATION(0),
8 | AUTO_DEDUCT(1);
9 |
10 | private final int value;
11 | FeeType(int value) {
12 | this.value = value;
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/TransferStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum TransferStatus {
7 | SUCCESS("SUCCESS"),
8 | PENDING("PENDING"),
9 | FAILED("FAILED");
10 |
11 | private final String status;
12 |
13 | TransferStatus(String status) {
14 | this.status = status;
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/WithBonus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum WithBonus {
7 | NOT_QUERY(0),
8 | QUERY(1);
9 |
10 | private final int value;
11 |
12 | WithBonus(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/WithTransferSafeAmount.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum WithTransferSafeAmount {
7 | FALSE(0),
8 | TRUE(1);
9 |
10 | private final int value;
11 |
12 | WithTransferSafeAmount(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/WithdrawType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum WithdrawType {
7 | ON_CHAIN(0),
8 | OFF_CHAIN(1),
9 | ALL(2);
10 |
11 | private final int value;
12 |
13 | WithdrawType(int value) {
14 | this.value = value;
15 | }
16 | }
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/AssetCancelWithdrawRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class AssetCancelWithdrawRequest {
15 | private String withdrawId;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/AssetDepositRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Request Parameters
3 | * Parameter Required Type Comments
4 | * coin true string Coin
5 | * chainType true string Chain, e.g.,ETH
6 | * subMemberId true string Sub user ID
7 | * Response Parameters
8 | * Parameter Type Comments
9 | * coin string Coin
10 | * chains array Object
11 | * > chainType string Chain type
12 | * > addressDeposit string The address for deposit
13 | * > tagDeposit string Tag of deposit
14 | * > chain string Chain
15 | * > batchReleaseLimit string The deposit limit for this coin in this chain. "-1" means no limit
16 | */
17 | package com.bybit.api.client.domain.asset.request;
18 |
19 | import com.fasterxml.jackson.annotation.JsonInclude;
20 | import lombok.Builder;
21 | import lombok.Getter;
22 | import lombok.ToString;
23 |
24 | @Getter
25 | @ToString
26 | @Builder
27 | @JsonInclude(JsonInclude.Include.NON_NULL)
28 | public class AssetDepositRequest {
29 | private String coin;
30 | private String chainType;
31 | private String subMemberId;
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/AssetInternalTransferRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class AssetInternalTransferRequest {
15 | private String transferId;
16 | private String coin;
17 | private String amount;
18 | private String fromAccountType;
19 | private String toAccountType;
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/AssetQuoteRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class AssetQuoteRequest {
15 | private String fromCoin;
16 | private String toCoin;
17 | private String fromCoinType;
18 | private String toCoinType;
19 | private String requestCoin;
20 | private String requestAmount;
21 | private String accountType;
22 | private String requestId;
23 | private String paramType; // api broker
24 | private String paramValue; // api broker
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/AssetUniversalTransferRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class AssetUniversalTransferRequest {
15 | private String transferId;
16 | private String coin;
17 | private String amount;
18 | private Integer fromMemberId;
19 | private Integer toMemberId;
20 | private String fromAccountType;
21 | private String toAccountType;
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/ConfirmQuoteRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class ConfirmQuoteRequest {
15 | private String quoteTxId;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/asset/request/SetAssetDepositAccountRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.asset.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Builder
10 | @Getter
11 | @Setter
12 | @ToString
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SetAssetDepositAccountRequest {
15 | private String accountType;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/broker/BusinessType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.broker;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum BusinessType {
7 | SPOT("SPOT"),
8 | DERIVATIVES("DERIVATIVES"),
9 | OPTIONS("OPTIONS");
10 |
11 | private final String type;
12 |
13 | BusinessType(String type) {
14 | this.type = type;
15 | }
16 |
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/broker/WithUsedAmount.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.broker;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum WithUsedAmount {
7 | NOT_QUERY(false),
8 | QUERY(true);
9 |
10 | private final Boolean value;
11 |
12 | WithUsedAmount(Boolean value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/broker/request/BrokerDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.broker.request;
2 |
3 | import com.bybit.api.client.domain.broker.BusinessType;
4 | import com.bybit.api.client.domain.broker.WithUsedAmount;
5 | import com.fasterxml.jackson.annotation.JsonInclude;
6 | import lombok.Builder;
7 | import lombok.Getter;
8 | import lombok.Setter;
9 | import lombok.ToString;
10 |
11 | @Getter
12 | @Setter
13 | @ToString
14 | @Builder
15 | @JsonInclude(JsonInclude.Include.NON_NULL)
16 | public class BrokerDataRequest {
17 | private BusinessType bizType;
18 | private String subMemberId;
19 | private String coin;
20 | private Long startTime;
21 | private Long endTime;
22 | private Integer limit;
23 | private String cursor;
24 | private String id; // mandatory; voucher ID in query voucher spec
25 | private String accountId; // mandatory;
26 | private String awardId; // mandatory; voucher ID in issue voucher and query issued voucher
27 | private String specCode; // mandatory;
28 | private String amount; // mandatory;
29 | private String brokerId; // mandatory;
30 | private WithUsedAmount withUsedAmount;
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/broker/request/BrokerGetIssuedVoucherRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.broker.request;
2 |
3 | import com.bybit.api.client.domain.broker.WithUsedAmount;
4 | import com.fasterxml.jackson.annotation.JsonInclude;
5 | import lombok.Builder;
6 | import lombok.Getter;
7 | import lombok.Setter;
8 | import lombok.ToString;
9 |
10 | @Getter
11 | @Setter
12 | @ToString
13 | @Builder
14 | @JsonInclude(JsonInclude.Include.NON_NULL)
15 | public class BrokerGetIssuedVoucherRequest {
16 | private String accountId;
17 | private String awardId;
18 | private String specCode;
19 | private Boolean withUsedAmount;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/broker/request/BrokerIssueVoucherRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.broker.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class BrokerIssueVoucherRequest {
15 | private String accountId;
16 | private String awardId;
17 | private String specCode;
18 | private String amount;
19 | private String brokerId;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/broker/request/BrokerVoucherSpecRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.broker.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class BrokerVoucherSpecRequest {
15 | private String id;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/LendingDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution;
2 |
3 | import com.bybit.api.client.domain.broker.BusinessType;
4 | import com.fasterxml.jackson.annotation.JsonInclude;
5 | import lombok.Builder;
6 | import lombok.Getter;
7 | import lombok.Setter;
8 | import lombok.ToString;
9 |
10 | @Getter
11 | @Setter
12 | @ToString
13 | @Builder
14 | @JsonInclude(JsonInclude.Include.NON_NULL)
15 | public class LendingDataRequest {
16 | private final String productId;
17 | private final String orderId;
18 | private final BusinessType bizType;
19 | private final Long startTime;
20 | private final Long endTime;
21 | private final Integer limit;
22 | private final String cursor;
23 | private final String coin;
24 | private final LendingOrderType lendingOrderType;
25 | private final String quantity;
26 | private final String serialNo;
27 | private final String uid;
28 | private final OperateType operate;
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/LendingOrderType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum LendingOrderType {
7 | DEPOSIT("1"),
8 | REDEMPTION("2"),
9 | PAYMENT_PROCEED("3");
10 |
11 | private final String type;
12 |
13 | LendingOrderType(String type) {
14 | this.type = type;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/OperateType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum OperateType {
7 | BIND("0"),
8 | UNBIND("1");
9 |
10 | private final String operateType;
11 | OperateType(String operateType) {
12 | this.operateType = operateType;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/clientLending/ClientLendingFundsRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution.clientLending;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class ClientLendingFundsRequest {
13 | private final String coin;
14 | private final String quantity;
15 | private final String serialNo;
16 | private final String orderId;
17 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/clientLending/ClientLendingOrderRecordsRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Request Parameters
3 | * Parameter Required Type Comments
4 | * coin false string Coin name
5 | * orderId false string Order ID
6 | * startTime false long The start timestamp (ms)
7 | * endTime false long The end timestamp (ms)
8 | * limit false integer Limit for data size per page. [1, 500]. Default: 50
9 | * orderType false string Order type. 1: deposit, 2: redemption, 3: Payment of proceeds
10 | * Response Parameters
11 | * Parameter Type Comments
12 | * list array Object
13 | * > coin string Coin name
14 | * > createdTime string Created timestamp (ms)
15 | * > orderId string Order ID
16 | * > quantity string quantity
17 | * > serialNo string Serial No
18 | * > status string Order status. 0: Initial, 1: Processing, 2: Success, 10: Failed
19 | * > updatedTime string Updated timestamp (ms)
20 | */
21 | package com.bybit.api.client.domain.institution.clientLending;
22 |
23 | import lombok.Builder;
24 | import lombok.Getter;
25 | import lombok.Setter;
26 | import lombok.ToString;
27 |
28 | @Getter
29 | @Setter
30 | @ToString
31 | @Builder
32 | public class ClientLendingOrderRecordsRequest {
33 | private final String coin;
34 | private final String orderId;
35 | private final Long startTime;
36 | private final Long endTime;
37 | private final Integer limit;
38 | private final String orderType;
39 | }
40 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/insLending/InstitutionLoanOrdersRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution.insLending;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class InstitutionLoanOrdersRequest {
13 | private String orderId;
14 | private Long startTime;
15 | private Long endTime;
16 | private Integer limit;
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/insLending/InstitutionRepayOrdersRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution.insLending;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class InstitutionRepayOrdersRequest {
13 | private Long startTime;
14 | private Long endTime;
15 | private Integer limit;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/institution/insLending/UpdateInstitutionLoadUidRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.institution.insLending;
2 |
3 | import lombok.Builder;
4 | import lombok.Data;
5 |
6 | @Data
7 | @Builder
8 | public class UpdateInstitutionLoadUidRequest {
9 | private String uid;
10 | private String operate;
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/Direction.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum Direction {
7 | ADD("0"),
8 | REDUCE("1");
9 |
10 | private final String directionValue;
11 |
12 | Direction(String directionValue) {
13 | this.directionValue = directionValue;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/LoanTerm.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum LoanTerm {
7 | FLEXIBLE(""),
8 | FIXED_7D("7"),
9 | FIXED_14D("14"),
10 | FIXED_30D("30"),
11 | FIXED_90D("90"),
12 | FIXED_180D("180");
13 |
14 | private final String term;
15 |
16 | LoanTerm(String term) {
17 | this.term = term;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/LoanTermType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum LoanTermType {
7 | FLEXIBLE("2"),
8 | FIXED("1");
9 |
10 | private final String termType;
11 |
12 | LoanTermType(String termType) {
13 | this.termType = termType;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/VipLevel.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum VipLevel {
7 | VIP_0("VIP0"),
8 | VIP_1("VIP1"),
9 | VIP_2("VIP2"),
10 | VIP_3("VIP3"),
11 | VIP_4("VIP4"),
12 | VIP_5("VIP5"),
13 | VIP_SUPREME("VIP99"),
14 | PRO_1("PRO1"),
15 | PRO_2("PRO2"),
16 | PRO_3("PRO3"),
17 | PRO_4("PRO4"),
18 | PRO_5("PRO5"),
19 | PRO_6("PRO6");
20 |
21 | private final String level;
22 |
23 | VipLevel(String level) {
24 | this.level = level;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/request/CryptoLoanAdjustLtvRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan.request;
2 |
3 | import com.bybit.api.client.domain.loan.Direction;
4 | import com.fasterxml.jackson.annotation.JsonInclude;
5 | import lombok.Builder;
6 | import lombok.Getter;
7 | import lombok.Setter;
8 | import lombok.ToString;
9 |
10 | @Getter
11 | @Setter
12 | @ToString
13 | @Builder
14 | @JsonInclude(JsonInclude.Include.NON_NULL)
15 | public class CryptoLoanAdjustLtvRequest {
16 | private String orderId; // mandatory
17 | private String amount; // mandatory
18 | private String direction; // mandatory; ADD: "0", REDUCE: "1"
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/request/CryptoLoanBorrowRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class CryptoLoanBorrowRequest {
15 | private String loanCurrency; // mandatory
16 | private String loanAmount;
17 | private String loanTerm;
18 | private String collateralCurrency; // mandatory
19 | private String collateralAmount;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/request/CryptoLoanDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan.request;
2 |
3 | import com.bybit.api.client.domain.loan.Direction;
4 | import com.bybit.api.client.domain.loan.LoanTerm;
5 | import com.bybit.api.client.domain.loan.LoanTermType;
6 | import com.bybit.api.client.domain.loan.VipLevel;
7 | import com.fasterxml.jackson.annotation.JsonInclude;
8 | import lombok.Builder;
9 | import lombok.Getter;
10 | import lombok.Setter;
11 | import lombok.ToString;
12 |
13 | @Getter
14 | @Setter
15 | @ToString
16 | @Builder
17 | @JsonInclude(JsonInclude.Include.NON_NULL)
18 | public class CryptoLoanDataRequest {
19 | private String currency;
20 | private VipLevel vipLevel;
21 | private String loanCurrency;
22 | private String collateralCurrency;
23 | private String loanAmount;
24 | private String collateralAmount;
25 | private LoanTerm loanTerm;
26 | private String orderId;
27 | private String amount; // repay amount or adjust ltv amount
28 | private LoanTermType loanTermType;
29 | private String repayId;
30 | private String adjustId;
31 | private Direction direction;
32 | private String cursor;
33 | private String limit;
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/loan/request/CryptoLoanRepayRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.loan.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class CryptoLoanRepayRequest {
15 | private String orderId; // mandatory
16 | private String amount;// mandatory
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/DataRecordingPeriod.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum DataRecordingPeriod {
7 | FIVE_MINUTES("5min"),
8 | FIFTEEN_MINUTES("15min"),
9 | THIRTY_MINUTES("30min"),
10 | ONE_HOUR("1h"),
11 | FOUR_HOURS("4h"),
12 | FOUR_DAYS("4d");
13 |
14 | private final String period;
15 |
16 | DataRecordingPeriod(String period) {
17 | this.period = period;
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/InstrumentStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum InstrumentStatus {
7 | PRE_LAUNCH("PreLaunch"),
8 | TRADING("Trading"),
9 | SETTLING("Settling"), // Unique status for USDC Perpetual 8-hour settlement
10 | DELIVERING("Delivering"),
11 | CLOSED("Closed");
12 |
13 | private final String status;
14 |
15 | InstrumentStatus(String status) {
16 | this.status = status;
17 | }
18 |
19 | public String getStatus() {
20 | return status;
21 | }
22 |
23 | @Override
24 | public String toString() {
25 | return status;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/IntervalTime.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum IntervalTime {
7 | FIVE_MINUTES("5min"),
8 | FIFTEEN_MINUTES("15min"),
9 | THIRTY_MINUTES("30min"),
10 | ONE_HOUR("1h"),
11 | FOUR_HOURS("4h"),
12 | ONE_DAY("1d");
13 |
14 | private final String interval;
15 |
16 | IntervalTime(String interval) {
17 | this.interval = interval;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/MarketInterval.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Getter;
5 |
6 | /**
7 | * Kline/Candlestick intervals.
8 | */
9 | @Getter
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public enum MarketInterval {
12 | ONE_MINUTE("1"),
13 | THREE_MINUTES("3"),
14 | FIVE_MINUTES("5"),
15 | FIFTEEN_MINUTES("15"),
16 | HALF_HOURLY("30"),
17 | HOURLY("60"),
18 | TWO_HOURLY("120"),
19 | FOUR_HOURLY("240"),
20 | SIX_HOURLY("360"),
21 | TWELVE_HOURLY("720"),
22 | DAILY("D"),
23 | WEEKLY("W"),
24 | MONTHLY("M");
25 |
26 | private final String intervalId;
27 |
28 | MarketInterval(String intervalId) {
29 | this.intervalId = intervalId;
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/MarketStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum MarketStatus {
7 | PRE_LAUNCH("PreLaunch"),
8 | TRADING("Trading"),
9 | SETTLING("Settling"),
10 | DELIVERING("Delivering"),
11 | CLOSED("Closed");
12 |
13 | private final String status;
14 |
15 | MarketStatus(String status) {
16 | this.status = status;
17 | }
18 | }
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/OptionType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum OptionType {
7 | CALL("Call"),
8 | PUT("Put");
9 |
10 | private final String opType;
11 |
12 | OptionType(String opType) {
13 | this.opType = opType;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/request/MarketDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.request;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.domain.announcement.AnnouncementTag;
5 | import com.bybit.api.client.domain.announcement.AnnouncementType;
6 | import com.bybit.api.client.domain.announcement.LanguageSymbol;
7 | import com.bybit.api.client.domain.market.*;
8 | import com.fasterxml.jackson.annotation.JsonInclude;
9 | import lombok.Builder;
10 | import lombok.Getter;
11 | import lombok.Setter;
12 | import lombok.ToString;
13 |
14 | @Getter
15 | @Setter
16 | @ToString
17 | @Builder
18 | @JsonInclude(JsonInclude.Include.NON_NULL)
19 | public class MarketDataRequest {
20 | private CategoryType category; // always required
21 | private String coin;
22 | private String symbol;
23 | private String baseCoin;
24 | private String expDate;
25 | private InstrumentStatus instrumentStatus;
26 | private MarketStatus marketStatus;
27 | private IntervalTime marketIntervalTime;
28 | private MarketInterval marketInterval; // open interest interval time
29 | private OptionType optionType; // option only
30 | private Integer optionPeriod; // option only
31 | private DataRecordingPeriod dataRecordingPeriod;
32 | private Long startTime;
33 | private Long endTime;
34 | private Long start;
35 | private Long end;
36 | private Integer limit;
37 | private String cursor;
38 | private LanguageSymbol locale;
39 | private AnnouncementType type;
40 | private AnnouncementTag tag;
41 | @Builder.Default
42 | private int page = 1;
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/fundingRate/FundingRateEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.fundingRate;
2 |
3 | import com.bybit.api.client.constant.BybitApiConstants;
4 | import lombok.Getter;
5 | import org.apache.commons.lang3.builder.ToStringBuilder;
6 |
7 | @Getter
8 | public class FundingRateEntry {
9 | private String symbol;
10 | private String fundingRate;
11 | private String fundingRateTimestamp;
12 |
13 | @Override
14 | public String toString() {
15 | return new ToStringBuilder(this, BybitApiConstants.TO_STRING_BUILDER_STYLE)
16 | .append("symbol", symbol)
17 | .append("fundingRate", fundingRate)
18 | .append("fundingRateTimestamp", fundingRateTimestamp)
19 | .toString();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/fundingRate/FundingRateResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.fundingRate;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6 | import lombok.Getter;
7 | import lombok.Setter;
8 |
9 | import java.util.List;
10 |
11 | /**
12 | * historical funding rates. Each symbol has a different funding interval.
13 | */
14 | @JsonPropertyOrder()
15 | @JsonIgnoreProperties(ignoreUnknown = true)
16 | @Getter
17 | @Setter
18 | public class FundingRateResult {
19 | @JsonProperty("category")
20 | private String category;
21 |
22 | @JsonProperty("list")
23 | private List fundingRateEntries;
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/historicalVolatility/HistoricalVolatilityEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.historicalVolatility;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 | import lombok.Data;
5 |
6 | @Data
7 | public class HistoricalVolatilityEntry {
8 | private Integer period;
9 | @JsonProperty("value")
10 | private String Volatility;
11 | private String time;
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/historicalVolatility/HistoricalVolatilityResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.historicalVolatility;
2 |
3 | import lombok.Data;
4 |
5 | import java.util.List;
6 |
7 | @Data
8 | public class HistoricalVolatilityResult {
9 | private List historicalVolatilityEntries;
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/instrumentInfo/InstrumentEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.instrumentInfo;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
5 | import lombok.Getter;
6 |
7 | @JsonPropertyOrder
8 | @JsonIgnoreProperties(ignoreUnknown = true)
9 | @Getter
10 | public class InstrumentEntry {
11 | private String symbol;
12 | private String baseCoin;
13 | private String quoteCoin;
14 | private String status;
15 | private String contractType;
16 | private String launchTime;
17 | private String deliveryTime;
18 | private String deliveryFeeRate;
19 | private String priceScale;
20 | private LeverageFilter leverageFilter;
21 | private PriceFilter priceFilter;
22 | private LotSizeFilter lotSizeFilter;
23 | private Boolean unifiedMarginTrade;
24 | private Integer fundingInterval;
25 | private String settleCoin;
26 | private String copyTrading;
27 | private String optionsType;
28 | private String innovation;
29 | private String marginTrading;
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/instrumentInfo/InstrumentInfoResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.instrumentInfo;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.Getter;
6 |
7 | import java.util.List;
8 |
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | @Getter
11 | public class InstrumentInfoResult {
12 | @JsonProperty("category")
13 | private String category;
14 | @JsonProperty("list")
15 | private List instrumentEntries;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/instrumentInfo/LeverageFilter.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.instrumentInfo;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public class LeverageFilter {
7 | private String minLeverage;
8 | private String maxLeverage;
9 | private String leverageStep;
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/instrumentInfo/LotSizeFilter.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.instrumentInfo;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public class LotSizeFilter {
7 | private String maxOrderQty;
8 | private String minOrderQty;
9 | private String qtyStep;
10 | private String postOnlyMaxOrderQty;
11 | private String basePrecision;
12 | private String quotePrecision;
13 | private String minOrderAmt;
14 | private String maxOrderAmt;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/instrumentInfo/PriceFilter.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.instrumentInfo;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public class PriceFilter {
7 | private String minPrice;
8 | private String maxPrice;
9 | private String tickSize;
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/kline/MarketKlineEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.kline;
2 |
3 | import com.bybit.api.client.constant.BybitApiConstants;
4 | import com.fasterxml.jackson.annotation.JsonFormat;
5 | import lombok.Getter;
6 | import org.apache.commons.lang3.builder.ToStringBuilder;
7 |
8 | @Getter
9 | @JsonFormat(shape = JsonFormat.Shape.ARRAY)
10 | public class MarketKlineEntry {
11 | private long startTime;
12 | private String openPrice;
13 | private String highPrice;
14 | private String lowPrice;
15 | private String closePrice;
16 | private String volume;
17 | private String turnover;
18 |
19 | @Override
20 | public String toString() {
21 | return new ToStringBuilder(this, BybitApiConstants.TO_STRING_BUILDER_STYLE)
22 | .append("startTime", startTime)
23 | .append("openPrice", openPrice)
24 | .append("highPrice", highPrice)
25 | .append("lowPrice", lowPrice)
26 | .append("closePrice", closePrice)
27 | .append("volume", volume)
28 | .append("turnover", turnover)
29 | .toString();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/kline/MarketKlineResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.kline;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6 | import lombok.Getter;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * Kline/Candlestick bars for a symbol. Klines are uniquely identified by their open time.
12 | */
13 | @JsonPropertyOrder()
14 | @JsonIgnoreProperties(ignoreUnknown = true)
15 | @Getter
16 | public class MarketKlineResult {
17 | @JsonProperty("category")
18 | private String category;
19 | @JsonProperty("symbol")
20 | private String symbol;
21 | @JsonProperty("list")
22 | private List marketKlineEntries;
23 |
24 | @Override
25 | public String toString() {
26 | StringBuilder builder = new StringBuilder();
27 | builder.append("MarketKlineResult[category=").append(category)
28 | .append(",symbol=").append(symbol)
29 | .append(",marketKlineEntries=[\n");
30 |
31 | for (MarketKlineEntry entry : marketKlineEntries) {
32 | builder.append("\t").append(entry.toString()).append(",\n");
33 | }
34 |
35 | builder.append("]]");
36 |
37 | return builder.toString();
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/openInterests/OpenInterestEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.openInterests;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class OpenInterestEntry {
7 | private String openInterest;
8 | private String timestamp;
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/openInterests/OpenInterestResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.openInterests;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6 | import lombok.Data;
7 |
8 | import java.util.List;
9 |
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | @Data
12 | @JsonPropertyOrder
13 | public class OpenInterestResult {
14 | @JsonProperty("category")
15 | private String category;
16 | @JsonProperty("symbol")
17 | private String symbol;
18 | @JsonProperty("list")
19 | private List openInterestEntries;
20 | @JsonProperty("nextPageCursor")
21 | private String nextPageCursor;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/orderbook/OrderBookAskEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.orderbook;
2 |
3 | import com.fasterxml.jackson.annotation.JsonFormat;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | @JsonFormat(shape = JsonFormat.Shape.ARRAY)
8 | public class OrderBookAskEntry {
9 | private String askPrice;
10 | private String askSize;
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/orderbook/OrderbookBidEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.orderbook;
2 |
3 | import com.fasterxml.jackson.annotation.JsonFormat;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | @JsonFormat(shape = JsonFormat.Shape.ARRAY)
8 | public class OrderbookBidEntry {
9 | private String bidPrice;
10 | private String bidSize;
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/orderbook/OrderbookResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.orderbook;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6 | import lombok.Getter;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * orderbook depth data
12 | */
13 | @JsonPropertyOrder
14 | @JsonIgnoreProperties(ignoreUnknown = true)
15 | @Getter
16 | public class OrderbookResult {
17 | @JsonProperty("s")
18 | private String symbol;
19 | @JsonProperty("b")
20 | private List orderbookBidEntries;
21 | @JsonProperty("a")
22 | private List orderBookAskEntries;
23 | @JsonProperty("ts")
24 | private long timestamp;
25 | @JsonProperty("u")
26 | private long updateId;
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/recentTrade/RecentTradeEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.recentTrade;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class RecentTradeEntry {
7 | private String execId;
8 | private String symbol;
9 | private String price;
10 | private String size;
11 | private String side;
12 | private String time;
13 | private Boolean isBlockTrade;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/recentTrade/RecentTradeResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.recentTrade;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6 | import lombok.Data;
7 |
8 | import java.util.List;
9 |
10 | @Data
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | @JsonPropertyOrder
13 | public class RecentTradeResult {
14 | @JsonProperty("category")
15 | private String category;
16 | @JsonProperty("list")
17 | private List recentTradeEntries;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/serverTime/ServerTimeResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.serverTime;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.Data;
6 |
7 | @Data
8 | @JsonIgnoreProperties(ignoreUnknown = true)
9 | public class ServerTimeResult {
10 | @JsonProperty("timeSecond")
11 | private String timeSecond;
12 | @JsonProperty("timeNano")
13 | private String timeNano;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/tickers/TickerEntry.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.tickers;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | public class TickerEntry {
8 | @JsonProperty("symbol")
9 | private String symbol;
10 |
11 | @JsonProperty("bid1Price")
12 | private String bid1Price;
13 |
14 | @JsonProperty("bid1Size")
15 | private String bid1Size;
16 |
17 | @JsonProperty("ask1Price")
18 | private String ask1Price;
19 |
20 | @JsonProperty("ask1Size")
21 | private String ask1Size;
22 |
23 | @JsonProperty("lastPrice")
24 | private String lastPrice;
25 |
26 | @JsonProperty("prevPrice24h")
27 | private String prevPrice24h;
28 |
29 | @JsonProperty("price24hPcnt")
30 | private String price24hPcnt;
31 |
32 | @JsonProperty("highPrice24h")
33 | private String highPrice24h;
34 |
35 | @JsonProperty("lowPrice24h")
36 | private String lowPrice24h;
37 |
38 | @JsonProperty("turnover24h")
39 | private String turnover24h;
40 |
41 | @JsonProperty("volume24h")
42 | private String volume24h;
43 |
44 | @JsonProperty("usdIndexPrice")
45 | private String usdIndexPrice;
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/market/response/tickers/TickersResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.market.response.tickers;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 | import com.fasterxml.jackson.annotation.JsonProperty;
6 | import lombok.Data;
7 |
8 | import java.util.List;
9 |
10 | @Data
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | public class TickersResult {
13 | @JsonProperty("category")
14 | private String category;
15 | @JsonProperty("list")
16 | private List tickerEntries;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/AutoAddMargin.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum AutoAddMargin {
7 | OFF(0),
8 | ON(1);
9 |
10 | private final int value;
11 | AutoAddMargin(int value) {
12 | this.value = value;
13 | }
14 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/ExecType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum ExecType {
7 | Trade("Trade"),
8 | AdlTrade("AdlTrade"), //Auto-Deleveraging
9 | Funding("Funding"), //Funding fee
10 | BustTrade("BustTrade"), //Liquidation
11 | Delivery("Delivery"), //USDC futures delivery
12 | BlockTrade("BlockTrade");
13 |
14 | private final String execTypeId;
15 |
16 | ExecType(String execTypeId) {
17 | this.execTypeId = execTypeId;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/MarginMode.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum MarginMode {
7 | CROSS_MARGIN(0, "REGULAR_MARGIN"), // Cross margin
8 | ISOLATED_MARGIN(1, "ISOLATED_MARGIN"),
9 | PORTFOLIO_MARGIN(2,"PORTFOLIO_MARGIN");
10 |
11 | private final int value;
12 | private final String description;
13 |
14 | MarginMode(int value, String description) {
15 | this.value = value;
16 | this.description = description;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/MovePositionStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum MovePositionStatus {
7 | Processing("Processing"),
8 | Filled("Filled"),
9 | Rejected("Rejected");
10 |
11 | private final String movePositionStatus;
12 |
13 | MovePositionStatus(String movePositionStatus) {
14 | this.movePositionStatus = movePositionStatus;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/PositionMode.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum PositionMode {
7 | MERGED_SINGLE(0, "Merged Single"),
8 | BOTH_SIDES(3, "Both Sides");
9 |
10 | private final int value;
11 | private final String description;
12 |
13 | PositionMode(int value, String description) {
14 | this.value = value;
15 | this.description = description;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/TpslMode.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum TpslMode {
7 | FULL("Full"),
8 | PARTIAL("Partial");
9 |
10 | private final String description;
11 |
12 | TpslMode(String description) {
13 | this.description = description;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/BatchMovePositionRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | import java.util.List;
10 |
11 | @Getter
12 | @Setter
13 | @ToString
14 | @Builder
15 | @JsonInclude(JsonInclude.Include.NON_NULL)
16 | public class BatchMovePositionRequest {
17 | private String fromUid;
18 | private String toUid;
19 | private List list;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/ConfirmNewRiskLimitRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class ConfirmNewRiskLimitRequest {
15 | private final String category;
16 | private final String symbol;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/ModifyMarginRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class ModifyMarginRequest {
15 | private String category;
16 | private String symbol;
17 | private String margin;
18 | private Integer positionIdx;
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/MovePositionDetailsRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class MovePositionDetailsRequest {
15 | private String category;
16 | private String symbol;
17 | private String price;
18 | private String side;
19 | private String qty;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/SetAutoAddMarginRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SetAutoAddMarginRequest {
15 | private String category;
16 | private String symbol;
17 | private Integer autoAddMargin;
18 | private Integer positionIdx;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/SetLeverageRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SetLeverageRequest {
15 | private String category;
16 | private String symbol;
17 | private String buyLeverage;
18 | private String sellLeverage;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/SetRiskLimitRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | @JsonInclude(JsonInclude.Include.NON_NULL)
13 | public class SetRiskLimitRequest {
14 | private String category;
15 | private String symbol;
16 | private Integer riskId;
17 | private Integer positionIdx;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/SetTpSlModeRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SetTpSlModeRequest {
15 | private String category;
16 | private String symbol;
17 | private String tpSlMode;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/SwitchMarginRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SwitchMarginRequest {
15 | private String category;
16 | private String symbol;
17 | private Integer tradeMode;
18 | private String buyLeverage;
19 | private String sellLeverage;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/position/request/SwitchPositionModeRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.position.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class SwitchPositionModeRequest {
15 | private String category;
16 | private String symbol;
17 | private String coin;
18 | private Integer mode;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/preupgrade/PreUpgradeDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.preupgrade;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.domain.position.ExecType;
5 | import com.bybit.api.client.domain.trade.OrderStatus;
6 | import lombok.Builder;
7 | import lombok.Getter;
8 | import lombok.Setter;
9 | import lombok.ToString;
10 |
11 | @Getter
12 | @Setter
13 | @ToString
14 | @Builder
15 | public class PreUpgradeDataRequest {
16 | private CategoryType category;
17 | private String symbol;
18 | private Long startTime;
19 | private Long endTime;
20 | private Integer limit;
21 | private String cursor;
22 | private String expDate;
23 | private String baseCoin;
24 | private String orderId;
25 | private String orderLinkId;
26 | private String orderFilter;
27 | private OrderStatus orderStatus;
28 | private ExecType execType;
29 | private TransactionType transactionType;
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/preupgrade/TransactionType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.preupgrade;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum TransactionType {
7 | TRANSFER_IN("TRANSFER_IN"),
8 | TRANSFER_OUT("TRANSFER_OUT"),
9 | TRADE("TRADE"),
10 | SETTLEMENT("SETTLEMENT"),
11 | DELIVERY("DELIVERY"),
12 | LIQUIDATION("LIQUIDATION"),
13 | BONUS("BONUS"),
14 | FEE_REFUND("FEE_REFUND"),
15 | INTEREST("INTEREST"),
16 | CURRENCY_BUY("CURRENCY_BUY"),
17 | CURRENCY_SELL("CURRENCY_SELL"),
18 | BORROWED_AMOUNT_INS_LOAN("BORROWED_AMOUNT_INS_LOAN"),
19 | PRINCIPLE_REPAYMENT_INS_LOAN("PRINCIPLE_REPAYMENT_INS_LOAN"),
20 | INTEREST_REPAYMENT_INS_LOAN("INTEREST_REPAYMENT_INS_LOAN"),
21 | AUTO_SOLD_COLLATERAL_INS_LOAN("AUTO_SOLD_COLLATERAL_INS_LOAN"),
22 | AUTO_BUY_LIABILITY_INS_LOAN("AUTO_BUY_LIABILITY_INS_LOAN"),
23 | AUTO_PRINCIPLE_REPAYMENT_INS_LOAN("AUTO_PRINCIPLE_REPAYMENT_INS_LOAN"),
24 | AUTO_INTEREST_REPAYMENT_INS_LOAN("AUTO_INTEREST_REPAYMENT_INS_LOAN");
25 |
26 | private final String transactionTypeId;
27 |
28 | TransactionType(String transactionTypeId) {
29 | this.transactionTypeId = transactionTypeId;
30 | }
31 |
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/BorrowStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum BorrowStatus {
7 | ALL_STATUS(0),
8 | UNCLEARED(1),
9 | CLEARED(2);
10 | private final int value;
11 | BorrowStatus(int value) {
12 | this.value = value;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/CompleteRepayment.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum CompleteRepayment {
7 | TRUE(1),
8 | FALSE(0);
9 |
10 | private final int value;
11 |
12 | CompleteRepayment(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/SpotMarginDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class SpotMarginDataRequest {
13 | private final String ltCoin;
14 | private final String ltAmount;
15 | private final String quantity;
16 | private final String orderId;
17 | private final Long startTime;
18 | private final Long endTime;
19 | private final Integer limit;
20 | private final Integer ltOrderType;
21 | private final String serialNo;
22 | private final VipLevel vipLevel;
23 | private final String currency;
24 | private final String coin;
25 | private final String qty;
26 | private final CompleteRepayment completeRepayment;
27 | private final String leverage;
28 | private final String spotMarginMode;
29 | private final SwitchStatus switchStatus;
30 | private final BorrowStatus borrowStatus;
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/SpotMarginMode.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum SpotMarginMode {
7 | ON("1"),
8 | OFF("0");
9 |
10 | private final String value;
11 |
12 | SpotMarginMode(String value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/SwitchStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum SwitchStatus {
7 | ON(1),
8 | OFF(0);
9 |
10 | private final int value;
11 |
12 | SwitchStatus(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/VipLevel.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum VipLevel {
7 | NO_VIP("No VIP"),
8 | VIP_1("VIP-1"),
9 | VIP_2("VIP-2"),
10 | VIP_3("VIP-3"),
11 | VIP_4("VIP-4"),
12 | VIP_5("VIP-5"),
13 | VIP_SUPREME("VIP-Supreme"),
14 | PRO_1("PRO-1"),
15 | PRO_2("PRO-2"),
16 | PRO_3("PRO-3"),
17 | PRO_4("PRO-4"),
18 | PRO_5("PRO-5");
19 |
20 | private final String level;
21 |
22 | VipLevel(String level) {
23 | this.level = level;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/leverageToken/SpotLeverageOrdersRecordRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Request Parameters
3 | * Parameter Required Type Comments
4 | * ltCoin false string Abbreviation of the LT, such as BTC3L
5 | * orderId false string Order ID
6 | * startTime false integer The start timestamp (ms)
7 | * endTime false integer The end timestamp (ms)
8 | * limit false integer Limit for data size per page. [1, 500]. Default: 100
9 | * ltOrderType false integer LT order type. 1: purchase, 2: redemption
10 | * serialNo false string Serial number
11 | */
12 | package com.bybit.api.client.domain.spot.leverageToken;
13 |
14 | import lombok.Builder;
15 | import lombok.Getter;
16 | import lombok.Setter;
17 | import lombok.ToString;
18 |
19 | @Getter
20 | @Setter
21 | @ToString
22 | @Builder
23 | public class SpotLeverageOrdersRecordRequest {
24 | private final String ltCoin;
25 | private final String orderId;
26 | private final Long startTime;
27 | private final Long endTime;
28 | private final Integer limit;
29 | private final Integer ltOrderType;
30 | private final String serialNo;
31 | }
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/leverageToken/SpotLeverageTokenRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Request Parameters
3 | * Parameter Required Type Comments
4 | * ltCoin true string Abbreviation of the LT, such as BTC3L
5 | * ltAmount true string Purchase amount
6 | * serialNo false string Serial number
7 | */
8 | package com.bybit.api.client.domain.spot.leverageToken;
9 |
10 | import lombok.Builder;
11 | import lombok.Getter;
12 | import lombok.Setter;
13 | import lombok.ToString;
14 |
15 | @Getter
16 | @Setter
17 | @ToString
18 | @Builder
19 | public class SpotLeverageTokenRequest {
20 | private final String ltCoin;
21 | private final String ltAmount;
22 | private final String serialNo;
23 | private final String quantity;
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/marginTrade/SpotMarginTradeBorrowOrdersRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot.marginTrade;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class SpotMarginTradeBorrowOrdersRequest {
13 | private final Long startTime;
14 | private final Long endTime;
15 | private final String coin;
16 | private final Integer status;
17 | private final Integer limit;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/marginTrade/SpotMarginTradeBorrowRequest.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Request Parameters
3 | * Parameter Required Type Comments
4 | * coin true string Coin name
5 | * qty true string Amount to borrow
6 | * Response Parameters
7 | * Parameter Type Comments
8 | * transactId string Borrow transaction ID
9 | */
10 | package com.bybit.api.client.domain.spot.marginTrade;
11 |
12 | import lombok.Builder;
13 | import lombok.Getter;
14 | import lombok.Setter;
15 | import lombok.ToString;
16 |
17 | @Getter
18 | @Setter
19 | @ToString
20 | @Builder
21 | public class SpotMarginTradeBorrowRequest {
22 | private final String coin;
23 | private final String qty;
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/marginTrade/SpotMarginTradeRePayRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot.marginTrade;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class SpotMarginTradeRePayRequest {
13 | private final String coin;
14 | private final String qty;
15 | private final Integer completeRepayment;
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/marginTrade/SpotMarginTradeRepayOrdersRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot.marginTrade;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | @Getter
9 | @Setter
10 | @ToString
11 | @Builder
12 | public class SpotMarginTradeRepayOrdersRequest {
13 | private final Long startTime;
14 | private final Long endTime;
15 | private final String coin;
16 | private final Integer limit;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/spot/marginTrade/VIPMarginDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.spot.marginTrade;
2 |
3 | import com.bybit.api.client.domain.spot.VipLevel;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | public class VIPMarginDataRequest {
14 | private final VipLevel vipLevel;
15 | private final String currency;
16 | }
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/CancelType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum CancelType {
7 | CANCEL_BY_USER("CancelByUser"),
8 | CANCEL_BY_REDUCE_ONLY("CancelByReduceOnly"),
9 | CANCEL_BY_PREPARE_LIQ("CancelByPrepareLiq"),
10 | CANCEL_ALL_BEFORE_LIQ("CancelAllBeforeLiq"), // Cancelled due to liquidation
11 | CANCEL_BY_PREPARE_ADL("CancelByPrepareAdl"),
12 | CANCEL_ALL_BEFORE_ADL("CancelAllBeforeAdl"), // Cancelled due to ADL
13 | CANCEL_BY_ADMIN("CancelByAdmin"),
14 | CANCEL_BY_TP_SL_TS_CLEAR("CancelByTpSlTsClear"),
15 | CANCEL_BY_PZ_SIDE_CH("CancelByPzSideCh"),
16 | CANCEL_BY_SMP("CancelBySmp");
17 |
18 | private final String cancelReason;
19 |
20 | CancelType(String cancelReason) {
21 | this.cancelReason = cancelReason;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/OrderFilter.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum OrderFilter {
7 | ORDER("Order"),
8 | TPSL_ORDER("tpslOrder"),
9 | STOP_ORDER("StopOrder");
10 |
11 | private final String orderFilterType;
12 |
13 | OrderFilter(String orderFilterType) {
14 | this.orderFilterType = orderFilterType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/OrderStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * Status of a submitted order.
7 | */
8 | @Getter
9 | public enum OrderStatus {
10 | CREATED("Created"),
11 | NEW("New"),
12 | REJECTED("Rejected"),
13 | PARTIALLY_FILLED("PartiallyFilled"),
14 | PARTIALLY_FILLED_CANCELED("PartiallyFilledCanceled"),
15 | FILLED("Filled"),
16 | CANCELLED("Cancelled"),
17 | UNTRIGGERED("Untriggered"),
18 | TRIGGERED("Triggered"),
19 | DEACTIVATED("Deactivated"),
20 | ACTIVE("Active");
21 |
22 | private final String description;
23 |
24 | OrderStatus(String description) {
25 | this.description = description;
26 | }
27 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/PositionIdx.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * Position index. Used to identify positions in different position modes
7 | */
8 | @Getter
9 | public enum PositionIdx {
10 | ONE_WAY_MODE(0),
11 | HEDGE_MODE_BUY(1),
12 | HEDGE_MODE_SELL(2);
13 |
14 | private final int index;
15 |
16 | PositionIdx(int index) {
17 | this.index = index;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/RejectReason.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import com.fasterxml.jackson.annotation.JsonCreator;
4 |
5 | /**
6 | * Reject reason. Normal spot is not supported
7 | */
8 | public enum RejectReason {
9 | EC_NoError,
10 | EC_Others,
11 | EC_UnknownMessageType,
12 | EC_MissingClOrdID,
13 | EC_MissingOrigClOrdID,
14 | EC_ClOrdIDOrigClOrdIDAreTheSame,
15 | EC_DuplicatedClOrdID,
16 | EC_OrigClOrdIDDoesNotExist,
17 | EC_TooLateToCancel,
18 | EC_UnknownOrderType,
19 | EC_UnknownSide,
20 | EC_UnknownTimeInForce,
21 | EC_WronglyRouted,
22 | EC_MarketOrderPriceIsNotZero,
23 | EC_LimitOrderInvalidPrice,
24 | EC_NoEnoughQtyToFill,
25 | EC_NoImmediateQtyToFill,
26 | EC_PerCancelRequest,
27 | EC_MarketOrderCannotBePostOnly,
28 | EC_PostOnlyWillTakeLiquidity,
29 | EC_CancelReplaceOrder,
30 | EC_InvalidSymbolStatus,
31 | UNKNOWN;
32 |
33 | @JsonCreator
34 | public static RejectReason fromString(String value) {
35 | if (value == null || value.trim().isEmpty()) {
36 | return UNKNOWN;
37 | }
38 | try {
39 | return RejectReason.valueOf(value.toUpperCase());
40 | } catch (IllegalArgumentException e) {
41 | return UNKNOWN;
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/Side.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum Side {
7 | BUY("Buy"),
8 | SELL("Sell");
9 |
10 | private final String transactionSide;
11 |
12 | Side(String transactionSide) {
13 | this.transactionSide = transactionSide;
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/SmpType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * SMP execution type
7 | */
8 | @Getter
9 | public enum SmpType {
10 | NONE("None"),
11 | CANCEL_MAKER("CancelMaker"),
12 | CANCEL_TAKER("CancelTaker"),
13 | CANCEL_BOTH("CancelBoth");
14 |
15 | private final String description;
16 |
17 | SmpType(String description) {
18 | this.description = description;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/StopOrderType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum StopOrderType {
7 | TAKE_PROFIT("TakeProfit"),
8 | STOP_LOSS("StopLoss"),
9 | TRAILING_STOP("TrailingStop"),
10 | STOP("Stop"),
11 | PARTIAL_TAKE_PROFIT("PartialTakeProfit"),
12 | PARTIAL_STOP_LOSS("PartialStopLoss"),
13 | TPSL_ORDER("tpslOrder"),
14 | MM_RATE_CLOSE("MmRateClose");
15 |
16 | private final String description;
17 |
18 | StopOrderType(String description) {
19 | this.description = description;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/TimeInForce.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum TimeInForce {
7 | GOOD_TILL_CANCEL("GTC"),
8 | IMMEDIATE_OR_CANCEL("IOC"),
9 | FILL_OR_KILL("FOK"),
10 | POST_ONLY("PostOnly"),
11 | GTC("GTC"),
12 | IOC("IOC"),
13 | FOK("FOK");
14 |
15 | private final String description;
16 |
17 | TimeInForce(String description) {
18 | this.description = description;
19 | }
20 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/AmendBatchOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.service.CategoryTypeSerializer;
5 | import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6 | import lombok.Builder;
7 | import lombok.Data;
8 |
9 | import java.util.List;
10 |
11 | @Builder
12 | @Data
13 | public class AmendBatchOrderRequest {
14 | @JsonSerialize(using = CategoryTypeSerializer.class)
15 | private CategoryType category;
16 | private List request;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/AmendOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Data;
6 |
7 | @Data
8 | @Builder
9 | @JsonInclude(JsonInclude.Include.NON_NULL)
10 | public class AmendOrderRequest {
11 | private String category;
12 | private String symbol;
13 | private String orderId;
14 | private String orderLinkId;
15 | private String qty;
16 | private String price;
17 | private String tpslMode;
18 | private String triggerPrice;
19 | private String orderIv;
20 | private String takeProfit;
21 | private String stopLoss;
22 | private String triggerBy;
23 | private String tpTriggerBy;
24 | private String slTriggerBy;
25 | private String tpLimitPrice;
26 | private String slLimitPrice;
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/BatchOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.service.CategoryTypeSerializer;
5 | import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6 | import lombok.Builder;
7 | import lombok.Data;
8 |
9 | import java.util.List;
10 |
11 | @Data
12 | @Builder
13 | public class BatchOrderRequest {
14 | @JsonSerialize(using = CategoryTypeSerializer.class)
15 | private CategoryType category;
16 | private List request;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/CancelAllOrdersRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Data;
6 |
7 | @Data
8 | @Builder
9 | @JsonInclude(JsonInclude.Include.NON_NULL)
10 | public class CancelAllOrdersRequest {
11 | private String symbol;
12 | private String category;
13 | private String baseCoin;
14 | private String settleCoin;
15 | private String orderFilter;
16 | private String stopOrderType;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/CancelBatchOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.service.CategoryTypeSerializer;
5 | import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6 | import lombok.Builder;
7 | import lombok.Getter;
8 | import lombok.Setter;
9 | import lombok.ToString;
10 |
11 | import java.util.List;
12 |
13 | @Getter
14 | @Setter
15 | @Builder
16 | @ToString
17 | public class CancelBatchOrderRequest {
18 | @JsonSerialize(using = CategoryTypeSerializer.class)
19 | private CategoryType category;
20 | private List request;
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/CancelOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Data;
6 |
7 | @Data
8 | @Builder
9 | @JsonInclude(JsonInclude.Include.NON_NULL)
10 | public class CancelOrderRequest {
11 | private String category;
12 | private String symbol;
13 | private String orderId;
14 | private String orderLinkId;
15 | private String orderFilter;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/PlaceBatchOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.bybit.api.client.domain.CategoryType;
4 | import com.bybit.api.client.service.CategoryTypeSerializer;
5 | import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6 | import lombok.*;
7 |
8 | import java.util.List;
9 |
10 | @Getter
11 | @Setter
12 | @Builder
13 | @ToString
14 | public class PlaceBatchOrderRequest {
15 | @JsonSerialize(using = CategoryTypeSerializer.class)
16 | private CategoryType category;
17 | private List request;
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/PlaceOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Data;
6 |
7 | @Builder
8 | @Data
9 | @JsonInclude(JsonInclude.Include.NON_NULL)
10 | public class PlaceOrderRequest {
11 | private String category;
12 | private String symbol;
13 | private Integer isLeverage;
14 | private String side;
15 | private String orderType;
16 | private String qty;
17 | private String price;
18 | private Integer triggerDirection;
19 | private String orderFilter;
20 | private String triggerPrice;
21 | private String triggerBy;
22 | private String orderIv;
23 | private String timeInForce;
24 | private Integer positionIdx;
25 | private String orderLinkId;
26 | private String takeProfit;
27 | private String stopLoss;
28 | private String tpTriggerBy;
29 | private String slTriggerBy;
30 | private Boolean reduceOnly;
31 | private Boolean closeOnTrigger;
32 | private String smpType;
33 | private Boolean mmp;
34 | private String tpslMode;
35 | private String tpLimitPrice;
36 | private String slLimitPrice;
37 | private String tpOrderType;
38 | private String slOrderType;
39 | private String marketUnit;
40 | }
41 |
42 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/request/SetDcpRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.request;
2 |
3 | import lombok.Builder;
4 | import lombok.Data;
5 |
6 | @Data
7 | @Builder
8 | public class SetDcpRequest {
9 | private Integer timeWindow;
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/response/OrderResponse.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.response;
2 |
3 | import com.bybit.api.client.constant.BybitApiConstants;
4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 | import com.fasterxml.jackson.annotation.JsonProperty;
6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
7 | import lombok.Data;
8 | import org.apache.commons.lang3.builder.ToStringBuilder;
9 |
10 | @JsonPropertyOrder()
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | @Data
13 | public class OrderResponse {
14 | @JsonProperty("orderId")
15 | private String orderId;
16 | @JsonProperty("orderLinkId")
17 | private String orderLinkId;
18 | @Override
19 | public String toString() {
20 | return new ToStringBuilder(this, BybitApiConstants.TO_STRING_BUILDER_STYLE)
21 | .append("orderId", orderId)
22 | .append("orderLinkId", orderLinkId)
23 | .toString();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/trade/response/OrderResult.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.trade.response;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6 | import lombok.Data;
7 | import lombok.Getter;
8 | import lombok.Setter;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | * Trade order information.
14 | */
15 | @JsonPropertyOrder()
16 | @JsonIgnoreProperties(ignoreUnknown = true)
17 | @Data
18 | public class OrderResult {
19 | @JsonProperty("nextPageCursor")
20 | private String nextPageCursor;
21 | @JsonProperty("category")
22 | private String category;
23 | @JsonProperty("list")
24 | private List orderEntries;
25 |
26 | @Override
27 | public String toString() {
28 | StringBuilder builder = new StringBuilder();
29 | builder.append("OrderResult[nextPageCursor=").append(nextPageCursor)
30 | .append(", category=").append(category)
31 | .append(",orderEntries=[\n");
32 |
33 | for (OrderEntry entry : orderEntries) {
34 | builder.append("\t").append(entry.toString()).append(",\n");
35 | }
36 |
37 | builder.append("]]");
38 |
39 | return builder.toString();
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/FrozenStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum FrozenStatus {
7 | UNFREEZE(0),
8 | FREEZE(1);
9 |
10 | private final int value;
11 |
12 | FrozenStatus(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/IsUta.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum IsUta {
7 | UTA_ACCOUNT(true),
8 | CLASSIC_ACCOUNT(false);
9 |
10 | private final boolean uta;
11 |
12 | IsUta(boolean uta) {
13 | this.uta = uta;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/MasterUserPermissions.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | import java.util.List;
9 |
10 | @Getter
11 | @Setter
12 | @ToString
13 | @Builder
14 | public class MasterUserPermissions {
15 | private List contractTrade; // Permission of contract trade
16 | private List spot; // Permission of spot
17 | private List wallet; // Permission of wallet
18 | private List options; // Permission of USDC Contract. It supports trade option and USDC perpetual.
19 | private List derivatives; // Permission of Unified account
20 | private List copyTrading; // Permission of copytrade
21 | private List blockTrade; // Permission of blocktrade. Not applicable to sub account, always []
22 | private List exchange; // Permission of exchange
23 | private List nft; // Permission of NFT. Not applicable to sub account, always []
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/MemberType.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum MemberType {
7 | NORMAL_SUB_ACCOUNT(1),
8 | CUSTODIAL_SUB_ACCOUNT(6);
9 |
10 | private final int value;
11 |
12 | MemberType(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/ReadOnlyStatus.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum ReadOnlyStatus {
7 | READ_AND_WRITE(0),
8 | READ_ONLY(1);
9 |
10 | private final int value;
11 |
12 | ReadOnlyStatus(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/SubUserPermissions.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Builder;
4 | import lombok.Getter;
5 | import lombok.Setter;
6 | import lombok.ToString;
7 |
8 | import java.util.List;
9 |
10 | @Getter
11 | @Setter
12 | @ToString
13 | @Builder
14 | public class SubUserPermissions {
15 | private List contractTrade; // Contract Trade permissions ["Order","Position"]
16 | private List spot; // Spot Trade permissions ["SpotTrade"]
17 | private List wallet; // Wallet permissions ["AccountTransfer", "SubMemberTransferList"]
18 | private List options; // USDC Contract permissions ["OptionsTrade"]
19 | private List derivatives; // This param is deprecated
20 | private List exchange; // Exchange permissions ["ExchangeHistory"]
21 | private List copyTrading; // Copytrade permissions ["CopyTrading"]
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/SwitchOption.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum SwitchOption {
7 | TURN_OFF(0),
8 | TURN_ON(1);
9 |
10 | private final int value;
11 |
12 | SwitchOption(int value) {
13 | this.value = value;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/UserDataRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | import java.util.List;
10 | import java.util.Map;
11 |
12 | @Getter
13 | @Setter
14 | @ToString
15 | @Builder
16 | @JsonInclude(JsonInclude.Include.NON_NULL)
17 | public class UserDataRequest {
18 | private String username;
19 | private String password;
20 | private MemberType memberType;
21 | private SwitchOption switchOption;
22 | private IsUta isUta;
23 | private String note;
24 | private MasterUserPermissions masterUserPermissions;
25 | private SubUserPermissions subUserPermissions;
26 | private Map> permissionsMap;
27 | private UserPermissionsMap userPermissionsMap;
28 | private FrozenStatus frozenStatus;
29 | private Integer subuid;
30 | private List memberIds; // Multiple sub UID are supported, separated by commas
31 | private List ips;
32 | private String apikey;
33 | private ReadOnlyStatus readOnlyStatus;
34 | private String uid;
35 | private String subMemberId;
36 | private Integer limit;
37 | private String pageSize;
38 | private String nextCursor;
39 | private String cursor;
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/UserPermissionsMap.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user;
2 |
3 | import com.fasterxml.jackson.annotation.JsonAnyGetter;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | import java.util.List;
10 | import java.util.Map;
11 |
12 | @Getter
13 | @Setter
14 | @ToString
15 | @Builder
16 | public class UserPermissionsMap {
17 | private final Map> permissionMap;
18 |
19 | public UserPermissionsMap(Map> permissionMap) {
20 | this.permissionMap = permissionMap;
21 | }
22 |
23 | @JsonAnyGetter // This annotation allows the map's entries to be serialized as properties.
24 | public Map> getPermissionMap() {
25 | return permissionMap;
26 | }
27 | }
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/request/CreateSubApiKeyRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user.request;
2 |
3 | import com.bybit.api.client.domain.user.SubUserPermissions;
4 | import com.fasterxml.jackson.annotation.JsonInclude;
5 | import com.fasterxml.jackson.annotation.JsonProperty;
6 | import lombok.Builder;
7 | import lombok.Getter;
8 | import lombok.Setter;
9 | import lombok.ToString;
10 |
11 | import java.util.List;
12 | import java.util.Map;
13 |
14 | @Getter
15 | @Setter
16 | @ToString
17 | @Builder
18 | @JsonInclude(JsonInclude.Include.NON_NULL)
19 | public class CreateSubApiKeyRequest {
20 | private Integer subuid; // required
21 | private String note;
22 | private Integer readOnly; // required
23 | private String ips;
24 | @JsonProperty("permissions")
25 | private Map> permissions; // required
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/request/FreezeSubUIDRquest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import lombok.Builder;
5 | import lombok.Getter;
6 | import lombok.Setter;
7 | import lombok.ToString;
8 |
9 | @Getter
10 | @Setter
11 | @ToString
12 | @Builder
13 | @JsonInclude(JsonInclude.Include.NON_NULL)
14 | public class FreezeSubUIDRquest {
15 | private Integer subuid; // required
16 | private Integer frozen; // required 0:unfreeze, 1:freeze
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/request/ModifyApiKeyRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.Builder;
6 | import lombok.Getter;
7 | import lombok.Setter;
8 | import lombok.ToString;
9 |
10 | import java.util.List;
11 | import java.util.Map;
12 | @Getter
13 | @Setter
14 | @ToString
15 | @Builder
16 | @JsonInclude(JsonInclude.Include.NON_NULL)
17 | public class ModifyApiKeyRequest {
18 | private Integer readOnly;
19 | private String ips;
20 | private String apikey;
21 | @JsonProperty("permissions")
22 | private Map> permissionsMap;
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/user/request/UserSubMemberRequest.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.user.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import lombok.Builder;
6 | import lombok.Getter;
7 | import lombok.Setter;
8 | import lombok.ToString;
9 |
10 | @Getter
11 | @Setter
12 | @ToString
13 | @Builder
14 | @JsonInclude(JsonInclude.Include.NON_NULL)
15 | public class UserSubMemberRequest {
16 | private String username;
17 | private String password;
18 | private int memberType;
19 | @JsonProperty("switch")
20 | private int switchOption;
21 | @JsonProperty("isUta")
22 | private Boolean isUta;
23 | private String note;
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/CoinData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class CoinData {
11 | private String coin;
12 | private String equity;
13 | private String usdValue;
14 | private String walletBalance;
15 | private String free;
16 | private String locked;
17 | private String spotHedgingQty;
18 | private String borrowAmount;
19 | private String availableToBorrow;
20 | private String availableToWithdraw;
21 | private String accruedInterest;
22 | private String totalOrderIM;
23 | private String totalPositionIM;
24 | private String totalPositionMM;
25 | private String unrealisedPnl;
26 | private String cumRealisedPnl;
27 | private String bonus;
28 | private Boolean collateralSwitch;
29 | private Boolean marginCollateral;
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/ExecutionData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class ExecutionData {
11 | private String category;
12 | private String symbol;
13 | private String isLeverage;
14 | private String orderId;
15 | private String orderLinkId;
16 | private String side;
17 | private String orderPrice;
18 | private String orderQty;
19 | private String leavesQty;
20 | private String createType;
21 | private String orderType;
22 | private String stopOrderType;
23 | private String execFee;
24 | private String execId;
25 | private String execPrice;
26 | private String execQty;
27 | private String execType;
28 | private String execValue;
29 | private String execTime;
30 | private Boolean isMaker;
31 | private String feeRate;
32 | private String tradeIv;
33 | private String markIv;
34 | private String markPrice;
35 | private String indexPrice;
36 | private String underlyingPrice;
37 | private String blockTradeId;
38 | private String closedSize;
39 | private Long seq;
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/GreekData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class GreekData {
11 | private String baseCoin;
12 | private String totalDelta;
13 | private String totalGamma;
14 | private String totalVega;
15 | private String totalTheta;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/PositionData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class PositionData {
11 | private String category;
12 | private String symbol;
13 | private String side;
14 | private String size;
15 | private Integer positionIdx;
16 | private Integer tradeMode;
17 | private String positionValue;
18 | private Integer riskId;
19 | private String riskLimitValue;
20 | private String entryPrice;
21 | private String markPrice;
22 | private String leverage;
23 | private String positionBalance;
24 | private Integer autoAddMargin;
25 | private String positionMM;
26 | private String positionIM;
27 | private String liqPrice;
28 | private String bustPrice;
29 | private String tpslMode;
30 | private String takeProfit;
31 | private String stopLoss;
32 | private String trailingStop;
33 | private String unrealisedPnl;
34 | private String cumRealisedPnl;
35 | private String positionStatus;
36 | private Integer adlRankIndicator;
37 | private Boolean isReduceOnly;
38 | private String mmrSysUpdatedTime;
39 | private String leverageSysUpdatedTime;
40 | private String createdTime;
41 | private String updatedTime;
42 | private Long seq;
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/WalletData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | @Data
10 | @NoArgsConstructor
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | public class WalletData {
13 | private String accountType;
14 | private String accountLTV;
15 | private String accountIMRate;
16 | private String accountMMRate;
17 | private String totalEquity;
18 | private String totalWalletBalance;
19 | private String totalMarginBalance;
20 | private String totalAvailableBalance;
21 | private String totalPerpUPL;
22 | private String totalInitialMargin;
23 | private String totalMaintenanceMargin;
24 | private List coin;
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/WebSocketExecutionMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketExecutionMessage {
11 | private String id;
12 | private String topic;
13 | private Long creationTime;
14 | private List data; // Assuming 'data' is an array of KlineData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/WebSocketGreekMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketGreekMessage {
11 | private String id;
12 | private String topic;
13 | private Long creationTime;
14 | private List data; // Assuming 'data' is an array of KlineData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/WebSocketOrderMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.bybit.api.client.domain.websocket_message.public_channel.KlineData;
4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 | import lombok.Data;
6 |
7 | import java.util.List;
8 |
9 | @Data
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class WebSocketOrderMessage {
12 | private String id;
13 | private String topic;
14 | private Long creationTime;
15 | private List data; // Assuming 'data' is an array of KlineData objects
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/WebSocketPositionMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketPositionMessage {
11 | private String id;
12 | private String topic;
13 | private Long creationTime;
14 | private List data; // Assuming 'data' is an array of KlineData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/private_channel/WebSocketWalletMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.private_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketWalletMessage {
11 | private String id;
12 | private String topic;
13 | private Long creationTime;
14 | private List data; // Assuming 'data' is an array of KlineData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/KlineData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class KlineData {
11 | private Long start;
12 | private Long end;
13 | private String interval;
14 | private String open;
15 | private String close;
16 | private String high;
17 | private String low;
18 | private String volume;
19 | private String turnover;
20 | private Boolean confirm;
21 | private Long timestamp;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/LiquidationData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class LiquidationData {
11 | private Long updateTime;
12 | private String symbol;
13 | private String side;
14 | private String size;
15 | private String price;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/LtKlineData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class LtKlineData {
11 | private Long start;
12 | private Long end;
13 | private String interval;
14 | private String open;
15 | private String close;
16 | private String high;
17 | private String low;
18 | private Boolean confirm;
19 | private Long timestamp;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/LtTicketData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class LtTicketData {
11 | private String symbol;
12 | private String price24hPcnt;
13 | private String lastPrice;
14 | private String prevPrice24h;
15 | private String highPrice24h;
16 | private String lowPrice24h;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/NavData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class NavData {
11 | private Long time;
12 | private String symbol;
13 | private String nav;
14 | private String basketPosition;
15 | private String leverage;
16 | private String basketLoan;
17 | private String circulation;
18 | private String basket;
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/PublicOrderBookData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | @Data
10 | @NoArgsConstructor
11 | @JsonIgnoreProperties(ignoreUnknown = true)
12 | public class PublicOrderBookData {
13 | private String s; // Symbol name
14 | private List> b; // Bids
15 | private List> a; // Asks
16 | private Long u; // Update ID
17 | private Long seq; // Sequence
18 | private Long cts; // Timestamp from the match engine
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/TradeData.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | @Data
8 | @NoArgsConstructor
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class TradeData {
11 | private Long T; // Timestamp of the order filled
12 | private String s; // Symbol name
13 | private String S; // Side of taker (Buy, Sell)
14 | private String v; // Trade size
15 | private String p; // Trade price
16 | private String L; // Direction of price change
17 | private String i; // Trade ID
18 | private Boolean BT; // Whether it is a block trade order or not
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebSocketKlineMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketKlineMessage {
11 | private String topic;
12 | private String type;
13 | private Long ts;
14 | private List data; // Assuming 'data' is an array of KlineData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebSocketLiquidationMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | @Data
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class WebSocketLiquidationMessage {
9 | private String topic;
10 | private String type;
11 | private Long ts;
12 | private LiquidationData data; // Assuming 'data' is an array of KlineData objects
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebSocketLtKlineMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketLtKlineMessage {
11 | private String topic;
12 | private String type;
13 | private Long ts;
14 | private List data; // Assuming 'data' is an array of LtKlineData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebSocketLtTicketMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketLtTicketMessage {
11 | private String topic;
12 | private String type;
13 | private Long ts;
14 | private List data; // Assuming 'data' is an array of LtTicketData objects
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebSocketTickerMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | @Data
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class WebSocketTickerMessage {
9 | private String topic;
10 | private Long ts;
11 | private String type;
12 | private Long cs;
13 | private PublicTickerData data;
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebSocketTradeMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebSocketTradeMessage {
11 | private String id;
12 | private String topic;
13 | private String type;
14 | private Long ts;
15 | private List data;
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebsocketLtNavMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 |
8 | @Data
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class WebsocketLtNavMessage {
11 | private String topic;
12 | private String type;
13 | private Long ts;
14 | private List data;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/domain/websocket_message/public_channel/WebsocketOrderbookMessage.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.domain.websocket_message.public_channel;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import lombok.Data;
5 |
6 | @Data
7 | @JsonIgnoreProperties(ignoreUnknown = true)
8 | public class WebsocketOrderbookMessage {
9 | private String topic;
10 | private String type;
11 | private Long ts;
12 | private PublicOrderBookData data;
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/exception/BybitApiError.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.exception;
2 |
3 | import com.bybit.api.client.constant.BybitApiConstants;
4 | import org.apache.commons.lang3.builder.ToStringBuilder;
5 |
6 | /**
7 | * Bybit API error object.
8 | */
9 | public class BybitApiError {
10 |
11 | /**
12 | * Error code.
13 | */
14 | private int code;
15 |
16 | /**
17 | * Error message.
18 | */
19 | private String msg;
20 |
21 | public int getCode() {
22 | return code;
23 | }
24 |
25 | public void setCode(int code) {
26 | this.code = code;
27 | }
28 |
29 | public String getMsg() {
30 | return msg;
31 | }
32 |
33 | public void setMsg(String msg) {
34 | this.msg = msg;
35 | }
36 |
37 | @Override
38 | public String toString() {
39 | return new ToStringBuilder(this, BybitApiConstants.TO_STRING_BUILDER_STYLE)
40 | .append("code", code)
41 | .append("msg", msg)
42 | .toString();
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/exception/UnsupportedEventException.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.exception;
2 |
3 | public class UnsupportedEventException extends IllegalArgumentException {
4 | private static final long serialVersionUID = -1852755188564122928L;
5 |
6 | public UnsupportedEventException(String message) {
7 | super(message);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/log/LogOption.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.log;
2 |
3 | import lombok.Getter;
4 |
5 | @Getter
6 | public enum LogOption {
7 | SLF4J("slf4j"),
8 | OKHTTP3("okhttp3"),
9 | UNKNOWN("unknown"),
10 | CUSTOMIZE("customize");
11 |
12 | private final String logOptionType;
13 |
14 | LogOption(String logOptionType) {
15 | this.logOptionType = logOptionType;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/restApi/BybitApiAccountRestClient.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.restApi;
2 |
3 | import com.bybit.api.client.domain.account.request.AccountDataRequest;
4 | import com.bybit.api.client.domain.account.request.BatchSetCollateralCoinRequest;
5 |
6 | public interface BybitApiAccountRestClient {
7 | // Account endpoints
8 | Object getWalletBalance(AccountDataRequest walletBalanceRequest);
9 | Object upgradeAccountToUTA();
10 | Object getAccountBorrowHistory(AccountDataRequest borrowHistoryRequest);
11 | Object setAccountCollateralCoin(AccountDataRequest setCollateralCoinRequest);
12 | Object batchSetAccountCollateralCoin(BatchSetCollateralCoinRequest batchSetCollateralCoinRequest);
13 | Object getAccountCollateralInfo(AccountDataRequest request);
14 | Object getAccountCoinGeeks(AccountDataRequest request);
15 | Object getAccountFreeRate(AccountDataRequest getFeeRateRequest);
16 | Object getAccountInfo();
17 | Object getTransactionLog(AccountDataRequest getTransactionLogRequest);
18 | Object setAccountMarginMode(AccountDataRequest request);
19 | Object setAccountSpotHedging(AccountDataRequest request);
20 | Object modifyAccountMMP(AccountDataRequest setMMPRequest);
21 | Object resetAccountMMP(AccountDataRequest request);
22 | Object getAccountMMPState(AccountDataRequest request);
23 | Object getAccountSMPGroup();
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/bybit/api/client/restApi/BybitApiAsyncBrokerRestClient.java:
--------------------------------------------------------------------------------
1 | package com.bybit.api.client.restApi;
2 |
3 | import com.bybit.api.client.domain.broker.request.BrokerDataRequest;
4 |
5 | public interface BybitApiAsyncBrokerRestClient {
6 | // Broker endpoints
7 | void getBrokerEarningData(BrokerDataRequest brokerDataRequest, BybitApiCallback