bybit-trader-cli
v1.0.3
Published
Bybit API CLI — Bybit V5 REST API command-line tool. Trade spot/perpetual/futures, market data, positions, account, assets.
Maintainers
Readme
bybit-trader-cli
Command-line interface for the Bybit V5 REST API. 100+ endpoints for market data, trading, positions, account, and assets — designed for AI coding assistants and power users.
Install
npm install -g bybit-trader-cliOr use via npx:
npx bybit-trader-cli market time
npx bybit-trader-cli market tickers --category spot --symbol BTCUSDTCommand Rules
Format
bybit <module> <command> [options]| Part | Description |
|------|-------------|
| module | API domain: market, trade, position, account, asset, user, spot-leverage-token, spot-margin, ins-loan, broker, earn, spread, pre-upgrade |
| command | Sub-command (kebab-case), e.g. create-order, wallet-balance, funding-history |
| options | --paramName <value> — parameter names match Bybit V5 API exactly |
Rules
- Parameter names — Use camelCase as in the API docs:
--category,--symbol,--orderType,--accountType - Required vs optional — Required params are enforced by the CLI; optional params can be omitted
- Values — Pass strings; for JSON (e.g.
--data), pass valid JSON - Auth — Public endpoints (e.g.
market) need no auth; private endpoints requireBYBIT_API_KEYandBYBIT_SECRET_KEY
Global Options
| Option | Env / Default | Description |
|--------|---------------|-------------|
| --apiKey | BYBIT_API_KEY | API key |
| --secretKey | BYBIT_SECRET_KEY | Secret key |
| --baseUrl | https://api.bybit.com | API base URL |
| --recvWindow | 5000 | Recv window (ms) |
| --testnet | BYBIT_TESTNET | Use testnet (https://api-testnet.bybit.com) |
Modules Reference
market (Public — no auth)
Market data: tickers, orderbook, klines, trades, funding, open interest.
API base: Market
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| time | GET /v5/market/time | — | — |
| kline | GET /v5/market/kline | --category, --symbol, --interval | --start, --end, --limit |
| mark-price-kline | GET /v5/market/mark-price-kline | --category, --symbol, --interval | --start, --end, --limit |
| index-price-kline | GET /v5/market/index-price-kline | --category, --symbol, --interval | --start, --end, --limit |
| premium-index-price-kline | GET /v5/market/premium-index-price-kline | --category, --symbol, --interval | --start, --end, --limit |
| instruments-info | GET /v5/market/instruments-info | --category | --symbol, --status, --baseCoin, --limit, --cursor |
| orderbook | GET /v5/market/orderbook | --category, --symbol | --limit |
| tickers | GET /v5/market/tickers | --category | --symbol, --baseCoin, --expDate |
| funding-history | GET /v5/market/funding/history | --category, --symbol | --startTime, --endTime, --limit |
| recent-trade | GET /v5/market/recent-trade | --category, --symbol | --baseCoin, --optionType, --limit |
| open-interest | GET /v5/market/open-interest | --category, --symbol, --intervalTime | --startTime, --endTime, --limit, --cursor |
| historical-volatility | GET /v5/market/historical-volatility | --category | --baseCoin, --period, --startTime, --endTime |
| insurance | GET /v5/market/insurance | — | --coin |
| risk-limit | GET /v5/market/risk-limit | --category | --symbol, --cursor |
| delivery-price | GET /v5/market/delivery-price | --category | --symbol, --baseCoin, --limit, --cursor |
| account-ratio | GET /v5/market/account-ratio | --category, --symbol, --period | --limit |
| price-limit | GET /v5/market/price-limit | --category, --symbol | — |
Enums: category = spot | linear | inverse | option; interval = 1,3,5,15,30,60,120,240,360,720,D,M,W; period = 5min,15min,30min,1h,4h,1d; intervalTime = 5min,15min,30min,1h,4h,1d
trade (Auth required)
Order management: place, amend, cancel, batch ops, history.
API base: Order
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| create-order | POST /v5/order/create | --category, --symbol, --side, --orderType, --qty | --price, --timeInForce, --positionIdx, --orderLinkId, --triggerPrice, --triggerDirection, --takeProfit, --stopLoss, --reduceOnly, --closeOnTrigger, --marketUnit, --tpTriggerBy, --slTriggerBy, --tpOrderType, --slOrderType, --tpLimitPrice, --slLimitPrice |
| amend-order | POST /v5/order/amend | --category, --symbol | --orderId, --orderLinkId, --qty, --price, --triggerPrice, --takeProfit, --stopLoss |
| cancel-order | POST /v5/order/cancel | --category, --symbol | --orderId, --orderLinkId, --orderFilter |
| cancel-all | POST /v5/order/cancel-all | --category | --symbol, --baseCoin, --settleCoin, --orderFilter, --stopOrderType |
| create-batch | POST /v5/order/create-batch | --category, --data (JSON array) | — |
| amend-batch | POST /v5/order/amend-batch | --category, --data (JSON array) | — |
| cancel-batch | POST /v5/order/cancel-batch | --category, --data (JSON array) | — |
| realtime | GET /v5/order/realtime | --category | --symbol, --baseCoin, --settleCoin, --orderId, --orderLinkId, --orderFilter, --limit, --cursor |
| history | GET /v5/order/history | --category | --symbol, --baseCoin, --settleCoin, --orderId, --orderLinkId, --orderFilter, --orderStatus, --startTime, --endTime, --limit, --cursor |
| spot-borrow-check | GET /v5/order/spot-borrow-check | --category, --symbol, --side | — |
| disconnected-cancel-all | POST /v5/order/disconnected-cancel-all | --timeWindow | --product |
Enums: side = Buy | Sell; orderType = Market | Limit; timeInForce = GTC | IOC | FOK | PostOnly; positionIdx = 0 | 1 | 2
position (Auth required)
Position management: list, leverage, TP/SL, margin, executions.
API base: Position
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| list | GET /v5/position/list | --category | --symbol, --baseCoin, --settleCoin, --limit, --cursor |
| set-leverage | POST /v5/position/set-leverage | --category, --symbol, --buyLeverage, --sellLeverage | — |
| switch-isolated | POST /v5/position/switch-isolated | --category, --symbol, --tradeMode, --buyLeverage, --sellLeverage | — |
| set-tpsl-mode | POST /v5/position/set-tpsl-mode | --category, --symbol, --tpSlMode | — |
| switch-mode | POST /v5/position/switch-mode | --category, --mode | --coin |
| set-risk-limit | POST /v5/position/set-risk-limit | --category, --symbol, --riskId | --positionIdx |
| trading-stop | POST /v5/position/trading-stop | --category, --symbol | --takeProfit, --stopLoss, --trailingStop, --activePrice, --tpTriggerBy, --slTriggerBy, --tpSize, --slSize, --tpOrderType, --slOrderType, --tpLimitPrice, --slLimitPrice, --positionIdx |
| set-auto-add-margin | POST /v5/position/set-auto-add-margin | --category, --symbol, --autoAddMargin | --positionIdx |
| add-margin | POST /v5/position/add-margin | --category, --symbol, --margin | --positionIdx |
| executions | GET /v5/execution/list | --category | --symbol, --orderId, --orderLinkId, --baseCoin, --startTime, --endTime, --execType, --limit, --cursor |
| closed-pnl | GET /v5/position/closed-pnl | --category | --symbol, --startTime, --endTime, --limit, --cursor |
Enums: tradeMode = 0 (cross) | 1 (isolated); mode = 0 (MergedSingle) | 3 (BothSide); tpSlMode = Full | Partial
account (Auth required)
Account management: balance, fee rate, margin mode, collateral, MMP.
API base: Account
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| wallet-balance | GET /v5/account/wallet-balance | --accountType | --coin |
| upgrade-to-uta | POST /v5/account/upgrade-to-uta | — | — |
| borrow-history | GET /v5/account/borrow-history | — | --currency, --startTime, --endTime, --limit, --cursor |
| collateral-info | GET /v5/account/collateral-info | — | --currency |
| coin-greeks | GET /v5/account/coin-greeks | — | --baseCoin |
| fee-rate | GET /v5/account/fee-rate | --category | --symbol, --baseCoin |
| info | GET /v5/account/info | — | — |
| transaction-log | GET /v5/account/transaction-log | — | --accountType, --category, --currency, --baseCoin, --type, --startTime, --endTime, --limit, --cursor |
| set-margin-mode | POST /v5/account/set-margin-mode | --setMarginMode | — |
| set-hedging-mode | POST /v5/account/set-hedging-mode | --setHedgingMode | — |
| set-collateral-switch | POST /v5/account/set-collateral-switch | --coin, --collateralSwitch | — |
| set-mmp | POST /v5/account/set-mmp | --baseCoin, --window, --frozenPeriod, --qtyLimit, --deltaLimit | — |
| reset-mmp | POST /v5/account/reset-mmp | --baseCoin | — |
| mmp-state | GET /v5/account/get-mmp-state | --baseCoin | — |
| dcp-info | GET /v5/account/dcp-info | — | — |
Enums: accountType = UNIFIED | CONTRACT | SPOT | FUND; setMarginMode = ISOLATED_MARGIN | REGULAR_MARGIN | PORTFOLIO_MARGIN; setHedgingMode = ON | OFF; collateralSwitch = ON | OFF
asset (Auth required)
Asset management: balances, transfers, deposits, withdrawals.
API base: Asset
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| coin-info | GET /v5/asset/coin/query-info | — | --coin |
| account-coins-balance | GET /v5/asset/transfer/query-account-coins-balance | --accountType | --memberId, --coin, --withBonus |
| transfer-coin-list | GET /v5/asset/transfer/query-transfer-coin-list | --fromAccountType, --toAccountType | — |
| inter-transfer | POST /v5/asset/transfer/inter-transfer | --transferId, --coin, --amount, --fromAccountType, --toAccountType | — |
| inter-transfer-list | GET /v5/asset/transfer/query-inter-transfer-list | — | --transferId, --coin, --status, --startTime, --endTime, --limit, --cursor |
| universal-transfer | POST /v5/asset/transfer/universal-transfer | --transferId, --coin, --amount, --fromMemberId, --toMemberId, --fromAccountType, --toAccountType | — |
| universal-transfer-list | GET /v5/asset/transfer/query-universal-transfer-list | — | --transferId, --coin, --status, --startTime, --endTime, --limit, --cursor |
| sub-member-list | GET /v5/asset/transfer/query-sub-member-list | — | — |
| deposit-allowed-list | GET /v5/asset/deposit/query-allowed-list | — | --coin, --chain, --limit, --cursor |
| set-deposit-account | POST /v5/asset/deposit/deposit-to-account | --accountType | — |
| deposit-record | GET /v5/asset/deposit/query-record | — | --coin, --startTime, --endTime, --limit, --cursor |
| sub-deposit-record | GET /v5/asset/deposit/query-sub-member-record | --subMemberId | --coin, --startTime, --endTime, --limit, --cursor |
| internal-deposit-record | GET /v5/asset/deposit/query-internal-record | — | --coin, --startTime, --endTime, --limit, --cursor |
| deposit-address | GET /v5/asset/deposit/query-address | --coin | --chainType |
| sub-deposit-address | GET /v5/asset/deposit/query-sub-member-address | --coin, --chainType, --subMemberId | — |
| withdraw-create | POST /v5/asset/withdraw/create | --coin, --chain, --address, --amount | --tag, --forceChain, --accountType |
| withdraw-cancel | POST /v5/asset/withdraw/cancel | --id | — |
| withdraw-record | GET /v5/asset/withdraw/query-record | — | --withdrawID, --coin, --withdrawType, --startTime, --endTime, --limit, --cursor |
| exchange-record | GET /v5/asset/exchange/order-record | — | --fromCoin, --toCoin, --limit, --cursor |
| delivery-record | GET /v5/asset/delivery-record | — | --category, --symbol, --expDate, --limit, --cursor |
| settlement-record | GET /v5/asset/settlement-record | — | --category, --symbol, --limit, --cursor |
user (Auth required)
User management: API key info, sub-account keys.
API base: User
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| apikey-info | GET /v5/user/query-api | — | — |
| sub-apikeys | GET /v5/user/sub-apikeys | --subMemberId | --limit, --cursor |
| member-type | GET /v5/user/get-member-type | — | --memberIds |
| aff-customer-info | GET /v5/user/aff-customer-info | --uid | — |
spot-leverage-token (Partial auth)
Leveraged token info, purchase, redeem. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| info | GET /v5/spot-lever-token/info | — | --ltCoin |
| reference | GET /v5/spot-lever-token/reference | --ltCoin | — |
| purchase | POST /v5/spot-lever-token/purchase | --ltCoin, --ltAmount | --serialNo |
| redeem | POST /v5/spot-lever-token/redeem | --ltCoin, --quantity | --serialNo |
| order-record | GET /v5/spot-lever-token/order-record | — | --ltCoin, --orderId, --startTime, --endTime, --limit, --serialNo |
spot-margin (Partial auth)
Spot margin (UTA): VIP data, mode, leverage. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| data | GET /v5/spot-margin-trade/data | — | --vipLevel, --currency |
| switch-mode | POST /v5/spot-margin-trade/switch-mode | --spotMarginMode | — |
| set-leverage | POST /v5/spot-margin-trade/set-leverage | --leverage | — |
| state | GET /v5/spot-margin-trade/state | — | — |
ins-loan (Partial auth)
Institutional loan. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| product-infos | GET /v5/ins-loan/product-infos | — | --productId |
| loan-infos | GET /v5/ins-loan/ensure-tokens-repaid | — | --orderId, --startTime, --endTime, --limit |
| repay | POST /v5/ins-loan/repay | --orderId, --amount | — |
| repay-infos | GET /v5/ins-loan/repaid-history | — | --startTime, --endTime, --limit |
| bind-uid | POST /v5/ins-loan/association-uid | --uid | — |
| ltv-convert | GET /v5/ins-loan/ltv-convert | — | — |
broker (Auth required)
Broker earnings. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| earnings-info | GET /v5/broker/earnings-info | — | --bizType, --begin, --end, --uid, --limit, --cursor |
earn (Partial auth)
Earn: staking, savings, yield. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| product | GET /v5/earn/product | — | --category, --coin |
| order-create | POST /v5/earn/order/create | --productId, --amount, --accountType | --serialNo |
| order-history | GET /v5/earn/order/history | — | --productId, --coin, --startTime, --endTime, --limit, --cursor |
| position | GET /v5/earn/position | — | --productId, --coin |
| hourly-yield | GET /v5/earn/hourly-yield | --productId | --startTime, --endTime, --limit |
| yield-history | GET /v5/earn/yield-history | — | --productId, --coin, --startTime, --endTime, --limit, --cursor |
spread (Auth required)
Spread trading. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| create-order | POST /v5/spread/order/create | --symbol, --side, --orderType, --qty | --price, --timeInForce, --orderLinkId |
| amend-order | POST /v5/spread/order/amend | — | --orderId, --orderLinkId, --qty, --price |
| cancel-order | POST /v5/spread/order/cancel | — | --orderId, --orderLinkId |
| cancel-all | POST /v5/spread/order/cancel-all | — | --symbol |
| realtime | GET /v5/spread/order/realtime | — | --symbol, --orderId, --orderLinkId, --limit, --cursor |
| history | GET /v5/spread/order/history | — | --symbol, --orderId, --orderLinkId, --startTime, --endTime, --limit, --cursor |
| executions | GET /v5/spread/execution/list | — | --symbol, --orderId, --orderLinkId, --startTime, --endTime, --limit, --cursor |
pre-upgrade (Auth required)
Pre-upgrade historical data. Docs
| Command | API | Required Params | Optional Params |
|---------|-----|-----------------|-----------------|
| orders | GET /v5/pre-upgrade/order/history | --category | --symbol, --baseCoin, --orderId, --orderLinkId, --orderFilter, --orderStatus, --startTime, --endTime, --limit, --cursor |
| executions | GET /v5/pre-upgrade/execution/list | --category | --symbol, --baseCoin, --orderId, --orderLinkId, --startTime, --endTime, --execType, --limit, --cursor |
| closed-pnl | GET /v5/pre-upgrade/position/closed-pnl | --category | --symbol, --startTime, --endTime, --limit, --cursor |
| delivery | GET /v5/pre-upgrade/asset/delivery-record | --category | --symbol, --expDate, --limit, --cursor |
| settlement | GET /v5/pre-upgrade/asset/settlement-record | --category | --symbol, --limit, --cursor |
| transaction-log | GET /v5/pre-upgrade/account/transaction-log | --category | --baseCoin, --type, --startTime, --endTime, --limit, --cursor |
Authentication
Set credentials via environment variables or .env (current dir or ~/.bybit/.env):
export BYBIT_API_KEY="your-api-key"
export BYBIT_SECRET_KEY="your-secret-key"For testnet: --testnet or BYBIT_TESTNET=1.
Quick Examples
# Market data (no auth)
bybit market time
bybit market tickers --category spot --symbol BTCUSDT
bybit market kline --category linear --symbol BTCUSDT --interval 60 --limit 24
# Trading (auth required)
bybit trade create-order --category spot --symbol BTCUSDT --side Buy --orderType Market --qty 100 --marketUnit quoteCoin
bybit trade realtime --category linear
bybit position list --category linear
bybit account wallet-balance --accountType UNIFIED
# Assets
bybit asset inter-transfer --transferId "uuid" --coin USDT --amount 1000 --fromAccountType FUND --toAccountType UNIFIED