bybit-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bybit-mcp Show me my Bybit account balance."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š” Bybit MCP Server
The most comprehensive MCP server for Bybit ā 247 tools covering the entire Bybit V5 API
Quick Start ⢠Features ⢠Configuration ⢠Tools Reference ⢠Troubleshooting ⢠Contributing
šÆ Overview
Bybit MCP Server enables AI assistants like Claude, Cursor, ChatGPT, and other MCP-compatible clients to interact directly with the Bybit cryptocurrency exchange. Execute trades, manage portfolios, analyze markets, and automate strategies ā all through natural language.
Why Bybit MCP?
š„ Complete Coverage ā 247 tools spanning every Bybit V5 API endpoint
š Secure by Design ā API credentials never leave your machine
šļø Read-Only Mode ā Use all market tools without any API key
š” Triple Transport ā STDIO, SSE, and Streamable HTTP
š Universal Compatibility ā Works with Claude Desktop, Cursor, ChatGPT, and any MCP client
ā” Zero Config Start ā Just
uv run bybit.pyand go
Related MCP server: Bybit MCP Server
⨠Features
š Trading & Markets
Spot Trading ā Market & limit orders, batch operations
Derivatives ā Linear & inverse perpetuals
Order Management ā Amend, cancel, batch, DCP
Market Data ā Klines, orderbook, tickers, funding rates
Open Interest ā Long/short ratio, ADL alerts
š° Earn & Lending
Simple Earn ā Stake, redeem, yield tracking
Crypto Loans ā Old & new (fixed + flexible)
Leveraged Tokens ā Subscribe & redeem
Spot Margin ā Cross-margin trading
OTC Lending ā Institutional loan management
š¦ Account & Assets
Wallet ā Deposits, withdrawals, transfers
Multi-Account ā Sub-accounts, universal transfers
Asset Convert ā Crypto-to-crypto, small balance, fiat
Margin Modes ā Cross, isolated, portfolio margin
Risk Management ā MMP, leverage, TP/SL
š ļø Advanced
Spread Trading ā Spread instruments & orders
Block Trading (RFQ) ā Request for quote workflow
Broker ā Earnings, rate limits, vouchers
Strategy ā Built-in arbitrage detection
Announcements ā Exchange news & system status
š Quick Start
Method 1: Ask AI to Install (Recommended)
Simply tell your AI assistant:
"Help me install the Bybit MCP server from https://github.com/JohnnyWic/bybit-mcp"
Your AI will clone the repo, install dependencies, and configure everything automatically. Works with Claude Code, Cursor, and other MCP-compatible clients.
Method 2: Manual Setup
1. Install
git clone https://github.com/JohnnyWic/bybit-mcp.git
cd bybit-mcp
uv syncRequires Python ā„ 3.13 and uv.
2. Add to Your MCP Client
Add the following to your MCP config file:
Client | Config File |
Claude Desktop |
|
Cursor |
|
Claude Code | Run |
JSON config (Claude Desktop / Cursor):
{
"mcpServers": {
"bybit-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/bybit-mcp", "run", "bybit.py"]
}
}
}Claude Code CLI:
claude mcp add bybit-mcp -- uv --directory /path/to/bybit-mcp run bybit.py3. Configure API Key (Optional)
Create a .env file in the project root:
cp .env.example .envBYBIT_API_KEY=your_api_key_here
BYBIT_SECRET_KEY=your_secret_key_here
BYBIT_TESTNET=falseOr pass credentials inline in the MCP config:
{
"mcpServers": {
"bybit-mcp": {
"command": "uv",
"args": [
"--directory", "/path/to/bybit-mcp", "run", "bybit.py",
"--bybit-api-key", "YOUR_API_KEY",
"--bybit-secret-key", "YOUR_SECRET_KEY"
]
}
}
}š” No API key? No problem! All 23 market data tools work without authentication.
š Security Note: Never commit your
.envfile. It's already in.gitignore.
Transport Modes
uv run bybit.py # STDIO (default)
uv run bybit.py --transport sse --port 8000 # SSE
uv run bybit.py --transport streamable-http --port 8000 # Streamable HTTPš¬ Usage Examples
Check Market Price
"What's the current price of BTC?"Place a Trade
"Buy 0.01 BTC at market price on spot"Analyze Funding Rates
"Show me the funding rate history for ETHUSDT over the last 24 hours"Manage Positions
"What are my open positions? Set a stop loss at 95000 for my BTCUSDT long"Portfolio Overview
"Show my unified account balance and all open orders"š Available Tools (246)
Module | Tools | Description |
Market | 23 | Prices, klines, orderbook, funding rates, open interest, tickers (no API key needed) |
Trade | 15 | Market/limit orders, amend, cancel, batch operations, DCP |
Account | 25 | Balance, fee rates, margin mode, collateral, MMP, transaction log |
Position | 11 | Positions, leverage, TP/SL, auto-margin, move positions |
Asset | 41 | Deposits, withdrawals, transfers, convert, fiat, address management |
Lending | 39 | Crypto loans ā legacy + new (fixed & flexible) |
User | 15 | Sub-accounts, API key management, affiliate |
RFQ | 15 | Block trading ā create/cancel RFQ, quotes, executions |
Spot Margin | 12 | Spot margin trading, borrow, repay, collateral |
Spread | 11 | Spread instruments, orderbook, trading |
Broker | 10 | Broker earnings, rate limits, vouchers |
OTC | 7 | Institutional OTC lending |
Pre-Upgrade | 6 | Pre-upgrade historical data queries |
Earn | 6 | Staking, redemption, yield tracking |
Leveraged Token | 5 | Leveraged token subscribe/redeem |
Announcement | 2 | Exchange announcements, system status |
Strategy | 2 | Built-in arbitrage pair detection |
Total: 246 tools
uv run python -c "
import src.tools
from src import mcp
for name in sorted(mcp._tool_manager._tools):
print(name)
"šļø Project Structure
bybit-mcp/
āāā bybit.py # Entry point (backward compatible)
āāā src/
ā āāā __init__.py # Shared FastMCP instance
ā āāā main.py # CLI: dotenv + argparse + logging + mcp.run()
ā āāā client.py # Config singleton + HMAC signing + HTTP methods
ā āāā tools/
ā āāā __init__.py # Auto-imports all tool modules
ā āāā market.py # 23 tools ā public market data
ā āāā trade.py # 15 tools ā order management
ā āāā account.py # 25 tools ā account operations
ā āāā position.py # 11 tools ā position management
ā āāā asset.py # 41 tools ā wallet & transfers
ā āāā lending.py # 39 tools ā crypto loans
ā āāā earn.py # 6 tools ā staking & yield
ā āāā leveraged_token.py # 5 tools ā leveraged tokens
ā āāā spot_margin.py # 12 tools ā spot margin
ā āāā user.py # 15 tools ā sub-accounts & API keys
ā āāā broker.py # 10 tools ā broker services
ā āāā otc.py # 7 tools ā OTC lending
ā āāā spread.py # 11 tools ā spread trading
ā āāā rfq.py # 15 tools ā block trading RFQ
ā āāā pre_upgrade.py # 6 tools ā pre-upgrade data
ā āāā announcement.py # 2 tools ā announcements
ā āāā strategy.py # 2 tools ā arbitrage strategies
āāā .env.example # Environment variable template
āāā pyproject.toml # Project config & dependencies
āāā LICENSE # MIT Licenseš§ Troubleshooting
MCP Server Not Loading / "No MCP servers configured"
If you've configured the server but /mcp shows no tools or "No MCP servers configured":
1. Check the correct configuration file
Claude Code reads MCP server config from ~/.claude.json (per-project), not from ~/.claude/settings.json. The recommended way to add the server is via CLI:
claude mcp add bybit-mcp -- uv --directory /path/to/bybit-mcp run bybit.pyThis writes the config to the correct location. If you manually edited ~/.claude/settings.json, the server won't be found.
2. Use the full path to uv
Claude Code spawns MCP server subprocesses without loading your shell profile (.zshrc / .zprofile), so PATH may not include ~/.local/bin. Use the absolute path:
# Find your uv path
which uv
# Example output: /Users/yourname/.local/bin/uv
# Add with full path
claude mcp add bybit-mcp -- /Users/yourname/.local/bin/uv --directory /path/to/bybit-mcp run bybit.py3. Restart Claude Code after configuration changes
MCP servers connect at session startup. After adding or changing config, you must exit and restart Claude Code for changes to take effect.
4. Verify the server starts correctly
Test that the server can start and respond to MCP protocol:
# Test import
uv run python -c "from src.main import main; print('Import OK')"
# Test MCP initialize handshake
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' | uv run bybit.pyIf the import fails, run uv sync to install dependencies.
5. Don't run the server manually
Claude Code manages the MCP server process itself via stdio. A manually started server instance is completely separate ā Claude Code won't connect to it. Let Claude Code handle the lifecycle automatically.
Quick Diagnosis Checklist
Symptom | Cause | Fix |
| Config in wrong file ( | Use |
Config exists but tools don't load |
| Use absolute path to |
Tools loaded before but not now | Session not restarted after config change | Restart Claude Code |
Server works manually but not in Claude Code | Manual server is a separate process | Don't start manually; let Claude Code manage it |
Import errors on startup | Dependencies not installed | Run |
ā ļø Disclaimer
This software is provided for educational and informational purposes only.
Not Financial Advice ā This tool does not provide financial, investment, or trading advice
Use at Your Own Risk ā Cryptocurrency trading involves substantial risk of loss
API Security ā Protect your API credentials; use IP restrictions and disable withdrawal permissions
Test First ā Always test on Bybit Testnet before using real funds (
--testnetflag)No Warranty ā The software is provided "as is" without warranty of any kind
š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Adding New Tools
Add your tool function in the appropriate
src/tools/*.pymoduleDecorate with
@mcp.tool()Use
_public_getfor unauthenticated or_signed_get/_signed_postfor authenticated endpointsThat's it ā tools are auto-registered on import
š Resources
Resource | Description |
Official Bybit API documentation | |
Practice trading with test funds | |
Model Context Protocol spec | |
Fast Python package manager |
š License
This project is licensed under the MIT License ā see the LICENSE file for details.
Built with ā¤ļø for the Bybit trading community
Available Tools
246 toolsaccept_rfq_non_lp_quoteC
Accept a non-LP quote for an RFQ.
Args: rfq_id: RFQ ID.
Inputs: rfq_id (required).
add_reduce_marginA
Add or reduce margin for a position (isolated margin mode).
Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. margin: Positive to add (e.g., "10"), negative to reduce (e.g., "-10"). position_idx: 0: one-way, 1: hedge-Buy, 2: hedge-Sell (default: 0).
Inputs: category (required), symbol (required), margin (required), position_idx.
amend_orderA
Amend (modify) an existing open order.
Args: symbol: The trading pair, e.g., BTCUSDT. order_id: Order ID to amend. category: Product type: spot, linear, inverse (default: spot). qty: New quantity (optional, leave empty to keep unchanged). price: New price (optional, leave empty to keep unchanged).
Returns: Amendment result.
Inputs: symbol (required), order_id (required), category, qty, +1 more.
amend_spread_orderA
Amend a spread trading order.
Args: symbol: Spread symbol. order_id: Order ID (either order_id or order_link_id required). order_link_id: Order link ID. qty: New quantity (optional). price: New price (optional).
Inputs: symbol (required), order_id, order_link_id, qty, +1 more.
batch_amend_orderA
Amend multiple orders in a single request (max 20 for derivatives, 10 for spot).
Args: category: Product type: spot, linear, inverse, option. orders: List of order dicts. Each must contain: symbol, and either orderId or orderLinkId. Optional: qty, price, triggerPrice, takeProfit, stopLoss, etc.
Returns: Batch amendment results.
Inputs: category (required), orders (required).
batch_cancel_orderA
Cancel multiple orders in a single request (max 10).
Args: category: Product type: spot, linear, inverse, option. orders: List of order dicts. Each must contain: symbol and orderId (or orderLinkId). Example: [{"symbol": "BTCUSDT", "orderId": "123456"}]
Returns: Batch cancellation results.
Inputs: category (required), orders (required).
batch_place_orderA
Place multiple orders in a single request (max 10).
Args: category: Product type: spot, linear, inverse, option. orders: List of order dicts. Each must contain: symbol, side, orderType, qty. Optional fields: price, timeInForce, orderLinkId, etc. Example: [{"symbol": "BTCUSDT", "side": "Buy", "orderType": "Limit", "qty": "0.01", "price": "50000"}]
Returns: Batch order placement results.
Inputs: category (required), orders (required).
batch_set_collateral_coinA
Batch set collateral coin on/off.
Args: request: List of objects, each with: coin (string), collateralSwitch ("ON"/"OFF").
Inputs: request (required).
cancel_all_ordersB
Cancel all open orders for a symbol.
Args: symbol: The trading pair. category: Product type: spot, linear, inverse (default: spot).
Returns: Cancellation result.
Inputs: symbol (required), category.
cancel_all_rfq_quotesB
Cancel all open quotes.
Inputs: no named parameters.
cancel_all_rfqsA
Cancel all open RFQs.
Inputs: no named parameters.
cancel_all_spread_ordersC
Cancel all spread trading orders.
Args: symbol: Filter by spread symbol (optional).
Inputs: symbol.
cancel_new_crypto_loan_fixed_borrowC
Cancel a fixed crypto loan borrow order.
Args: order_id: Borrow order ID.
Inputs: order_id (required).
cancel_new_crypto_loan_fixed_supplyB
Cancel a fixed crypto loan supply order.
Args: order_id: Supply order ID.
Inputs: order_id (required).
cancel_orderA
Cancel a specific order.
Args: symbol: The trading pair. order_id: Order ID to cancel. category: Product type: spot, linear, inverse (default: spot).
Returns: Cancellation result.
Inputs: symbol (required), order_id (required), category.
cancel_rfqB
Cancel an RFQ.
Args: rfq_id: RFQ ID (either rfq_id or rfq_link_id required). rfq_link_id: RFQ link ID.
Inputs: rfq_id, rfq_link_id.
cancel_rfq_quoteB
Cancel a quote.
Args: quote_id: Quote ID (one of quote_id, rfq_id, or quote_link_id required). rfq_id: RFQ ID. quote_link_id: Quote link ID.
Inputs: quote_id, rfq_id, quote_link_id.
cancel_spread_orderB
Cancel a spread trading order.
Args: order_id: Order ID (either order_id or order_link_id required). order_link_id: Order link ID.
Inputs: order_id, order_link_id.
cancel_withdrawalC
Cancel a pending withdrawal.
Args: withdraw_id: Withdrawal ID.
Inputs: withdraw_id (required).
confirm_convert_quoteC
Confirm a crypto-to-crypto conversion quote.
Args: quote_tx_id: Quote transaction ID.
Inputs: quote_tx_id (required).
confirm_fiat_quoteC
Confirm a fiat conversion quote.
Args: quote_tx_id: Quote transaction ID. sub_user_id: Sub user ID.
Inputs: quote_tx_id (required), sub_user_id (required).
confirm_risk_limitA
Confirm new risk limit (required after risk limit change that triggers margin adjustment).
Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT.
Inputs: category (required), symbol (required).
confirm_small_balance_quoteB
Confirm a small balance conversion quote.
Args: quote_id: Quote ID from request_small_balance_quote.
Inputs: quote_id (required).
create_internal_transferB
Create an internal transfer between account types.
Args: coin: Coin to transfer, e.g., USDT. amount: Amount to transfer. from_account_type: Source account: UNIFIED, CONTRACT, SPOT, FUND. to_account_type: Destination account: UNIFIED, CONTRACT, SPOT, FUND. transfer_id: Unique transfer ID (UUID). Auto-generated if not provided.
Returns: Transfer result.
Inputs: coin (required), amount (required), from_account_type (required), to_account_type (required), +1 more.
create_rfqB
Create an RFQ (Request for Quote).
Args: counterparties: List of counterparty UIDs. legs: List of leg dicts, each with: category, symbol, side, qty. rfq_link_id: Unique RFQ link ID (optional).
Inputs: counterparties (required), legs (required), rfq_link_id.
create_rfq_quoteC
Create a quote for an RFQ.
Args: rfq_id: RFQ ID to quote against. quote_link_id: Unique quote link ID (optional).
Inputs: rfq_id (required), quote_link_id.
create_spread_orderB
Create a spread trading order.
Args: symbol: Spread symbol. side: Buy or Sell. order_type: Order type: Limit, Market. qty: Order quantity. price: Order price (required for Limit orders). order_link_id: Unique order link ID (optional).
Inputs: symbol (required), side (required), order_type (required), qty (required), +2 more.
create_sub_api_keyA
Create API key for a sub UID.
Args: sub_uid: Sub UID. read_only: 0: Read and Write, 1: Read only. permissions: Permission object, e.g., {"ContractTrade": ["Order","Position"], "Spot": ["SpotTrade"]}.
Inputs: sub_uid (required), read_only (required), permissions (required).
create_sub_uidA
Create a sub UID.
Args: username: Sub account username (6-16 chars, letters+numbers). member_type: 1: normal sub account, 6: custodial sub account. note: Note for the sub account (optional).
Inputs: username (required), member_type (required), note.
create_universal_transferB
Create a universal transfer (between sub UIDs or master-sub).
Args: coin: Coin to transfer. amount: Amount to transfer. from_member_id: Source UID. to_member_id: Destination UID. from_account_type: Source account type. to_account_type: Destination account type. transfer_id: Unique transfer ID (UUID). Auto-generated if not provided.
Inputs: coin (required), amount (required), from_member_id (required), to_member_id (required), +3 more.
crypto_loan_adjust_ltvC
Adjust collateral amount (LTV) for a crypto loan.
Args: order_id: Loan order ID. amount: Adjustment amount. direction: Direction: add, reduce.
Inputs: order_id (required), amount (required), direction (required).
crypto_loan_borrowC
Borrow via crypto loan.
Args: loan_currency: Loan currency, e.g., USDT. collateral_currency: Collateral currency, e.g., BTC. loan_amount: Loan amount (either loan_amount or collateral_amount required). collateral_amount: Collateral amount.
Inputs: loan_currency (required), collateral_currency (required), loan_amount, collateral_amount.
crypto_loan_repayC
Repay a crypto loan.
Args: order_id: Loan order ID. amount: Repay amount.
Inputs: order_id (required), amount (required).
delete_master_api_keyB
Delete the current master API key.
Inputs: no named parameters.
delete_sub_api_keyC
Delete a sub API key.
Args: apikey: The sub API key to delete (optional).
Inputs: apikey.
delete_sub_uidC
Delete a sub UID.
Args: sub_member_id: Sub UID to delete.
Inputs: sub_member_id (required).
earn_place_orderB
Stake or redeem in Bybit Earn.
Args: category: Product category, e.g., FlexibleSaving, StakingProduct. order_type: Order type: Stake, Redeem. account_type: Account type: UNIFIED, FUND. amount: Amount to stake or redeem. coin: Coin name, e.g., USDT. product_id: Product ID. order_link_id: Unique order link ID.
Inputs: category (required), order_type (required), account_type (required), amount (required), +3 more.
execute_hedge_arbitrage_strategyC
Execute hedge arbitrage based on funding rate. Opens opposing positions in spot and linear perpetual to capture funding rate.
Args: symbol: The trading pair, e.g., BTCUSDT. quantity: Amount to trade.
Returns: Summary of the arbitrage result.
Inputs: symbol (required), quantity (required).
execute_rfq_quoteB
Execute (fill) a quote.
Args: rfq_id: RFQ ID. quote_id: Quote ID. quote_side: Quote side: maker, taker.
Inputs: rfq_id (required), quote_id (required), quote_side (required).
find_arbitrage_pairsA
Find arbitrage pairs based on funding rate, volume, and rate direction stability.
Args: min_funding_rate: Minimum absolute funding rate to qualify. min_avg_volume: Minimum 24hr volume in USDT. history_limit: Number of historical funding rate records to analyze. stability_threshold: Minimum proportion of funding rates in same direction.
Returns: List of qualifying arbitrage opportunities.
Inputs: min_funding_rate, min_avg_volume, history_limit, stability_threshold. Returns: result
freeze_sub_uidB
Freeze or unfreeze a sub UID.
Args: sub_uid: Sub UID. frozen: 0: unfreeze, 1: freeze.
Inputs: sub_uid (required), frozen (required).
get_account_balanceB
Get the balance of a specific cryptocurrency asset.
Args: coin: The cryptocurrency symbol, e.g., BTC. account_type: Account type: UNIFIED, CONTRACT, SPOT, FUND (default: UNIFIED).
Returns: Asset balance info.
Inputs: coin (required), account_type.
get_account_infoC
Get account info including margin mode and account type.
Returns: Account configuration information.
Inputs: no named parameters.
get_account_instruments_infoB
Get account-level instruments info (tradable instruments for your account).
Args: category: Product type: spot, linear, inverse. symbol: Filter by symbol (optional). limit: Number of records (default: 200, max: 200).
Inputs: category (required), symbol, limit.
get_adl_alertC
Get ADL (Auto-Deleveraging) alert info.
Args: symbol: Contract name, e.g., BTCUSDT (optional).
Inputs: symbol.
get_affiliate_user_infoC
Get affiliate user info.
Args: uid: The user UID.
Inputs: uid (required).
get_affiliate_user_listB
Get affiliate user list.
Args: limit: Number of records (default: 50).
Inputs: limit.
get_all_coins_balanceC
Get all coins balance for an account type.
Args: account_type: UNIFIED, CONTRACT, SPOT, FUND. coin: Filter by coin (optional).
Inputs: account_type (required), coin.
get_allowed_deposit_coinsC
Get allowed deposit coin info.
Args: coin: Filter by coin (optional). limit: Number of records (default: 50).
Inputs: coin, limit.
get_announcementB
Get Bybit announcements.
Args: locale: Language locale, e.g., en-US, zh-CN, zh-TW, ja-JP, ko-KR. limit: Number of records (default: 20).
Inputs: locale, limit.
get_api_key_infoA
Get current API key information (permissions, IP whitelist, etc.).
Inputs: no named parameters.
get_asset_sub_uid_listC
Get sub UID list for asset transfers.
Inputs: no named parameters.
get_borrow_historyC
Get borrow history.
Args: currency: Filter by currency (optional). limit: Number of records (default: 20, max: 50).
Inputs: currency, limit.
get_broker_account_infoC
Get broker account info.
Inputs: no named parameters.
get_broker_all_rate_limitsC
Get all broker rate limits.
Args: limit: Number of records (default: 50).
Inputs: limit.
get_broker_earning_recordA
Get broker earning record (deprecated, use get_broker_earnings_info).
Args: biz_type: Business type filter (optional). limit: Number of records (default: 50).
Inputs: biz_type, limit.
get_broker_earnings_infoC
Get broker earnings info.
Args: biz_type: Business type filter (optional). limit: Number of records (default: 50).
Inputs: biz_type, limit.
get_broker_issued_voucherC
Get broker issued voucher record.
Args: account_id: Target account ID. award_id: Award ID. spec_code: Spec code.
Inputs: account_id (required), award_id (required), spec_code (required).
get_broker_rate_limit_capC
Get broker rate limit cap.
Inputs: no named parameters.
get_broker_sub_deposit_recordC
Get broker sub account deposit records.
Args: sub_member_id: Sub member ID (optional). coin: Filter by coin (optional). limit: Number of records (default: 50).
Inputs: sub_member_id, coin, limit.
get_broker_voucher_specC
Get broker voucher specification.
Args: voucher_id: Voucher/award ID.
Inputs: voucher_id (required).
get_closed_options_positionsC
Get closed options positions.
Args: symbol: Filter by symbol (optional). limit: Number of records (default: 50, max: 100).
Inputs: symbol, limit.
get_closed_pnlB
Get closed profit and loss records.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). limit: Number of records (default: 50, max: 100).
Returns: List of closed PnL records.
Inputs: symbol (required), category, limit.
get_coin_balanceA
Get the balance of a specific coin in a specific account type.
Args: coin: The cryptocurrency symbol, e.g., BTC. account_type: Account type: UNIFIED, CONTRACT, SPOT, FUND (default: UNIFIED).
Returns: Coin balance details.
Inputs: coin (required), account_type.
get_coin_exchange_recordsD
Get coin exchange records.
Args: from_coin: Source coin (optional). to_coin: Destination coin (optional). limit: Number of records (default: 50).
Inputs: from_coin, to_coin, limit.
get_coin_greeksC
Get coin greeks (delta, gamma, vega, theta).
Args: base_coin: Base coin, e.g., BTC (optional).
Inputs: base_coin.
get_coin_infoB
Get coin info (chains, deposit/withdraw status, fees).
Args: coin: Filter by coin (optional, returns all if empty).
Inputs: coin.
get_collateral_infoC
Get collateral coin info (haircut rates, etc.).
Args: currency: Filter by currency (optional).
Inputs: currency.
get_convert_coin_listB
Get available coins for crypto-to-crypto conversion.
Args: account_type: UNIFIED or eb_convert_funding. coin: Filter by coin (optional). side: 0: from coin, 1: to coin (optional).
Inputs: account_type (required), coin, side.
get_convert_historyB
Get crypto-to-crypto conversion history.
Args: account_type: Filter by account type (optional). limit: Number of records (default: 50).
Inputs: account_type, limit.
get_convert_statusC
Get crypto-to-crypto conversion status.
Args: quote_tx_id: Quote transaction ID. account_type: Account type.
Inputs: quote_tx_id (required), account_type (required).
get_crypto_loan_adjustment_historyB
Get crypto loan LTV adjustment history.
Args: collateral_currency: Filter by collateral currency (optional). limit: Number of records (default: 50).
Inputs: collateral_currency, limit.
get_crypto_loan_borrowable_collateralisableB
Get borrowable and collateralisable amount for account.
Args: loan_currency: Loan currency, e.g., USDT. collateral_currency: Collateral currency, e.g., BTC.
Inputs: loan_currency (required), collateral_currency (required).
get_crypto_loan_borrow_historyB
Get crypto loan completed loan history.
Args: loan_currency: Filter by loan currency (optional). limit: Number of records (default: 50).
Inputs: loan_currency, limit.
get_crypto_loan_collateral_dataB
Get collateral coin data (LTV ratios, limits).
Args: currency: Filter by currency (optional).
Inputs: currency.
get_crypto_loan_loanable_dataA
Get loanable coin data (interest rates, limits).
Args: currency: Filter by currency (optional).
Inputs: currency.
get_crypto_loan_max_collateralC
Get max allowed collateral reduction amount for a crypto loan.
Args: order_id: Loan order ID.
Inputs: order_id (required).
get_crypto_loan_ongoing_ordersB
Get ongoing (unpaid) crypto loan orders.
Args: loan_currency: Filter by loan currency (optional). collateral_currency: Filter by collateral currency (optional). limit: Number of records (default: 50).
Inputs: loan_currency, collateral_currency, limit.
get_crypto_loan_repayment_historyB
Get crypto loan repayment history.
Args: loan_currency: Filter by loan currency (optional). limit: Number of records (default: 50).
Inputs: loan_currency, limit.
get_dcp_infoB
Get Disconnect Cancel All (DCP) configuration info.
Inputs: no named parameters.
get_delivery_priceC
Get delivery price for futures/options.
Args: category: Product type: linear, inverse, option. symbol: Symbol name (optional). limit: Number of records (default: 50, max: 200).
Inputs: category (required), symbol, limit.
get_delivery_recordB
Get delivery record.
Args: category: Product type: option, linear, inverse. symbol: Filter by symbol (optional). limit: Number of records (default: 20, max: 50).
Inputs: category (required), symbol, limit.
get_deposit_recordsB
Get deposit records.
Args: coin: Filter by coin (optional). limit: Number of records (default: 50, max: 50).
Returns: List of deposit records.
Inputs: coin, limit.
get_earn_hourly_yieldA
Get Earn hourly yield history.
Args: category: Product category. product_id: Filter by product ID (optional). limit: Number of records (default: 50).
Inputs: category (required), product_id, limit.
get_earn_order_historyC
Get Earn stake/redeem order history.
Args: category: Product category. product_id: Filter by product ID (optional). limit: Number of records (default: 50).
Inputs: category (required), product_id, limit.
get_earn_positionB
Get Earn staked position.
Args: category: Product category. product_id: Filter by product ID (optional). coin: Filter by coin (optional).
Inputs: category (required), product_id, coin.
get_earn_productC
Get Earn product info.
Args: category: Product category. coin: Filter by coin (optional).
Inputs: category (required), coin.
get_earn_yield_historyC
Get Earn yield history.
Args: category: Product category. product_id: Filter by product ID (optional). limit: Number of records (default: 50).
Inputs: category (required), product_id, limit.
get_fee_group_infoB
Get fee group structure info.
Args: product_type: Product type: contract. group_id: Group ID: 1-7 (optional).
Inputs: product_type, group_id.
get_fee_rateA
Get trading fee rate for a symbol.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse, option (default: spot).
Returns: Fee rate information.
Inputs: symbol (required), category.
get_fiat_balanceC
Get fiat balance.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_fiat_coin_listC
Get fiat trading pair list.
Args: side: Filter by side (optional).
Inputs: side.
get_fiat_convert_historyC
Get fiat conversion history.
Args: limit: Number of records (default: 50).
Inputs: limit.
get_fiat_convert_statusC
Get fiat conversion status.
Args: trade_no: Trade number (optional). merchant_request_id: Merchant request ID (optional).
Inputs: trade_no, merchant_request_id.
get_fiat_reference_priceC
Get fiat reference price for a trading pair.
Args: symbol: Trading pair symbol.
Inputs: symbol (required).
get_fund_custodial_sub_listB
Get fund custodial sub account list.
Inputs: no named parameters.
get_funding_rate_historyA
Get funding rate history for a perpetual contract.
Args: symbol: Perpetual contract symbol, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). limit: Number of records to return (default: 100, max: 200).
Returns: Funding rate data list.
Inputs: symbol (required), category, limit.
get_historical_volatilityC
Get historical volatility for options.
Args: category: Product type: option. base_coin: Base coin (default: BTC). period: Period in days (default: 7).
Inputs: category, base_coin, period.
get_index_price_componentsC
Get index price components.
Args: index_name: Index name, e.g., BTCUSDT.
Inputs: index_name (required).
get_index_price_klineB
Get index price kline data.
Args: symbol: Symbol, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,W,M. category: Product type: linear, inverse (default: linear). limit: Number of records (default: 200, max: 1000).
Inputs: symbol (required), interval (required), category, limit.
get_instruments_infoA
Get instrument specification info.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse, option (default: spot).
Returns: Instrument specification details including lot size, price filter, etc.
Inputs: symbol (required), category.
get_insuranceB
Get insurance pool data.
Args: coin: Coin name (optional, returns all if empty).
Inputs: coin.
get_internal_deposit_recordsB
Get internal (off-chain) deposit records.
Args: coin: Filter by coin (optional). limit: Number of records (default: 50).
Inputs: coin, limit.
get_internal_transfer_recordsB
Get internal transfer records.
Args: coin: Filter by coin (optional). limit: Number of records (default: 50).
Inputs: coin, limit.
get_klineA
Get kline/candlestick data.
Args: symbol: The trading pair, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,M,W (default: 60). category: Product type: spot, linear, inverse (default: spot). limit: Number of records (default: 100, max: 1000).
Returns: List of kline data [startTime, openPrice, highPrice, lowPrice, closePrice, volume, turnover].
Inputs: symbol (required), interval, category, limit.
get_leveraged_token_infoB
Get leveraged token info.
Args: lt_coin: Leveraged token abbreviation, e.g., BTC3L (optional, returns all if empty).
Inputs: lt_coin.
get_leveraged_token_marketB
Get leveraged token market data (NAV, leverage, etc.).
Args: lt_coin: Leveraged token abbreviation, e.g., BTC3L.
Inputs: lt_coin (required).
get_leveraged_token_order_recordB
Get leveraged token purchase/redemption records.
Args: lt_coin: Filter by leveraged token (optional). order_id: Filter by order ID (optional). limit: Number of records (default: 50).
Inputs: lt_coin, order_id, limit.
get_long_short_ratioC
Get long/short ratio (account ratio).
Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. period: Period: 5min, 15min, 30min, 1h, 4h, 1d. limit: Number of records (default: 50, max: 500).
Inputs: category (required), symbol (required), period (required), limit.
get_mark_price_klineB
Get mark price kline data.
Args: symbol: Symbol, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,M,W. category: Product type: linear, inverse (default: linear). limit: Number of records (default: 200, max: 1000).
Inputs: symbol (required), interval (required), category, limit.
get_master_deposit_addressB
Get master deposit address.
Args: coin: Coin name, e.g., BTC. chain_type: Chain type (optional).
Inputs: coin (required), chain_type.
get_mmp_stateC
Get Market Maker Protection (MMP) state.
Args: base_coin: Base coin, e.g., BTC.
Inputs: base_coin (required).
get_move_position_historyC
Get move position history.
Args: category: Product type: linear, inverse, spot, option (optional). symbol: Filter by symbol (optional). limit: Number of records (default: 20, max: 200).
Inputs: category, symbol, limit.
get_new_crypto_loan_adjustment_historyC
Get new crypto loan collateral adjustment history.
Args: collateral_currency: Filter by collateral currency (optional). limit: Number of records (default: 50).
Inputs: collateral_currency, limit.
get_new_crypto_loan_collateral_dataC
Get new crypto loan collateral coin data.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_new_crypto_loan_fixed_borrow_marketC
Get fixed crypto loan borrowing market quotes.
Args: order_currency: Borrow currency. order_by: Order by field.
Inputs: order_currency (required), order_by (required).
get_new_crypto_loan_fixed_borrow_orderB
Get fixed crypto loan borrow order info.
Args: order_currency: Filter by currency (optional). limit: Number of records (default: 50).
Inputs: order_currency, limit.
get_new_crypto_loan_fixed_contract_infoC
Get fixed crypto loan borrow contract info.
Args: order_currency: Filter by currency (optional). limit: Number of records (default: 50).
Inputs: order_currency, limit.
get_new_crypto_loan_fixed_renew_infoC
Get fixed crypto loan renew order info.
Args: order_currency: Filter by currency (optional). limit: Number of records (default: 50).
Inputs: order_currency, limit.
get_new_crypto_loan_fixed_repay_historyB
Get fixed crypto loan repayment history.
Args: loan_currency: Filter by loan currency (optional). limit: Number of records (default: 50).
Inputs: loan_currency, limit.
get_new_crypto_loan_fixed_supply_contractC
Get fixed crypto loan supply contract info.
Args: supply_currency: Filter by currency (optional). limit: Number of records (default: 50).
Inputs: supply_currency, limit.
get_new_crypto_loan_fixed_supply_marketC
Get fixed crypto loan lending market quotes.
Args: order_currency: Supply currency. order_by: Order by field.
Inputs: order_currency (required), order_by (required).
get_new_crypto_loan_fixed_supply_orderC
Get fixed crypto loan supply order info.
Args: order_currency: Filter by currency (optional). limit: Number of records (default: 50).
Inputs: order_currency, limit.
get_new_crypto_loan_flexible_borrow_historyB
Get flexible crypto loan borrowing history.
Args: loan_currency: Filter by loan currency (optional). limit: Number of records (default: 50).
Inputs: loan_currency, limit.
get_new_crypto_loan_flexible_loansB
Get ongoing flexible crypto loans.
Args: loan_currency: Filter by loan currency (optional).
Inputs: loan_currency.
get_new_crypto_loan_flexible_repay_historyC
Get flexible crypto loan repayment history.
Args: loan_currency: Filter by loan currency (optional). limit: Number of records (default: 50).
Inputs: loan_currency, limit.
get_new_crypto_loan_loanable_dataC
Get new crypto loan loanable coin data.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_new_crypto_loan_max_collateralC
Get max allowed collateral reduction amount (new crypto loan).
Args: currency: Collateral currency.
Inputs: currency (required).
get_new_crypto_loan_max_loanC
Obtain max loan amount for new crypto loan.
Args: currency: Loan currency.
Inputs: currency (required).
get_new_crypto_loan_positionC
Get new crypto loan position info.
Inputs: no named parameters.
get_new_delivery_priceC
Get new delivery price for options.
Args: category: Product type: option. base_coin: Base coin (default: BTC).
Inputs: category, base_coin.
get_open_closed_ordersB
Get open and/or closed orders (unified endpoint).
Args: category: Product type: linear, inverse, spot, option. symbol: Filter by symbol (optional). open_only: 0: open orders only (default), 1: recent 500 closed orders. order_filter: Filter: Order, StopOrder, tpslOrder, OcoOrder (optional). limit: Number of records (default: 20, max: 50).
Inputs: category (required), symbol, open_only, order_filter, +1 more.
get_open_interestB
Get open interest data.
Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. interval_time: Interval: 5min, 15min, 30min, 1h, 4h, 1d. limit: Number of records (default: 50, max: 200).
Inputs: category (required), symbol (required), interval_time (required), limit.
get_open_ordersA
Get open orders for a symbol.
Args: symbol: The trading pair. category: Product type: spot, linear, inverse (default: spot).
Returns: List of open orders.
Inputs: symbol (required), category.
get_orderbookA
Get order book depth data.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: spot). limit: Depth limit: 1-200 (default: 25).
Returns: Order book with bids and asks.
Inputs: symbol (required), category, limit.
get_order_historyA
Get historical (closed/cancelled/filled) orders.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: spot). limit: Number of records (default: 50, max: 50).
Returns: List of historical orders.
Inputs: symbol (required), category, limit.
get_otc_loan_ltvB
Get OTC loan LTV conversion info.
Inputs: no named parameters.
get_otc_loan_margin_coin_infoC
Get OTC loan margin coin conversion info.
Args: product_id: Filter by product ID (optional).
Inputs: product_id.
get_otc_loan_ordersB
Get OTC loan orders.
Args: order_id: Filter by order ID (optional). limit: Number of records (default: 50).
Inputs: order_id, limit.
get_otc_loan_product_infoC
Get OTC loan product info.
Args: product_id: Filter by product ID (optional).
Inputs: product_id.
get_otc_loan_repay_historyC
Get OTC loan repayment history.
Args: limit: Number of records (default: 50).
Inputs: limit.
get_positionsA
Get current positions for derivatives.
Args: symbol: The trading pair (optional, returns all if empty). category: Product type: linear, inverse (default: linear).
Returns: List of current positions.
Inputs: symbol, category.
get_pre_upgrade_closed_pnlA
Get pre-upgrade closed PnL records.
Args: category: Product type: linear, inverse. symbol: The trading pair, e.g., BTCUSDT. limit: Number of records (default: 50, max: 100).
Inputs: category (required), symbol (required), limit.
get_pre_upgrade_delivery_recordC
Get pre-upgrade delivery record.
Args: category: Product type: option. symbol: Symbol name (optional). limit: Number of records (default: 20, max: 50).
Inputs: category, symbol, limit.
get_pre_upgrade_order_historyB
Get pre-upgrade order history.
Args: category: Product type: linear, inverse, option, spot. symbol: Symbol name (optional). limit: Number of records (default: 20, max: 50).
Inputs: category (required), symbol, limit.
get_pre_upgrade_settlementB
Get pre-upgrade USDC session settlement record.
Args: category: Product type: linear. symbol: Symbol name (optional). limit: Number of records (default: 20, max: 50).
Inputs: category, symbol, limit.
get_pre_upgrade_trade_historyB
Get pre-upgrade trade history (execution list).
Args: category: Product type: linear, inverse, option, spot. symbol: Symbol name (optional). limit: Number of records (default: 50, max: 100).
Inputs: category (required), symbol, limit.
get_pre_upgrade_transaction_logA
Get pre-upgrade transaction log.
Args: category: Product type: linear, option. limit: Number of records (default: 20, max: 50).
Inputs: category (required), limit.
get_price_limitB
Get order price limit for a symbol.
Args: symbol: Symbol, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: linear).
Inputs: symbol (required), category.
get_recent_tradeA
Get recent public trades.
Args: category: Product type: spot, linear, inverse, option. symbol: Symbol (required for spot/linear/inverse). limit: Number of records (default: 60 for spot, 500 for others).
Inputs: category (required), symbol, limit.
get_rfq_configA
Get RFQ configuration (counterparties, supported coins, etc.).
Inputs: no named parameters.
get_rfq_listC
Get RFQ list.
Args: rfq_id: Filter by RFQ ID (optional). limit: Number of records (default: 50).
Inputs: rfq_id, limit.
get_rfq_public_tradesC
Get RFQ public trades.
Args: limit: Number of records (default: 50).
Inputs: limit.
get_rfq_quote_listB
Get RFQ quotes list.
Args: rfq_id: Filter by RFQ ID (optional). limit: Number of records (default: 50).
Inputs: rfq_id, limit.
get_rfq_quote_realtimeB
Get RFQ quotes in real-time.
Args: rfq_id: Filter by RFQ ID (optional).
Inputs: rfq_id.
get_rfq_realtimeC
Get RFQs in real-time.
Args: rfq_id: Filter by RFQ ID (optional).
Inputs: rfq_id.
get_rfq_trade_listB
Get RFQ trade history.
Args: rfq_id: Filter by RFQ ID (optional). limit: Number of records (default: 50).
Inputs: rfq_id, limit.
get_risk_limitC
Get risk limit info for a symbol.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear).
Returns: Risk limit tiers for the symbol.
Inputs: symbol (required), category.
get_rpi_orderbookA
Get RPI (Retail Price Improvement) orderbook.
Args: symbol: Symbol, e.g., BTCUSDT. limit: Depth limit: 1-50. category: Product type: spot, linear, inverse (optional).
Inputs: symbol (required), limit (required), category.
get_server_timeB
Get Bybit server time.
Returns: Server time information.
Inputs: no named parameters.
get_settlement_recordB
Get USDC session settlement record.
Args: category: Product type: linear. symbol: Filter by symbol (optional). limit: Number of records (default: 20, max: 50).
Inputs: category (required), symbol, limit.
get_small_balance_coinsB
Get small balance coins eligible for conversion.
Args: account_type: Account type: UNIFIED, FUND.
Inputs: account_type (required).
get_small_balance_exchange_historyC
Get small balance exchange history.
Args: account_type: Filter by account type (optional). limit: Number of records (default: 50).
Inputs: account_type, limit.
get_smp_groupB
Get Self Match Prevention (SMP) group ID.
Inputs: no named parameters.
get_spot_borrow_quotaB
Get spot borrow quota for margin trading.
Args: symbol: Symbol, e.g., BTCUSDT. side: Buy or Sell.
Inputs: symbol (required), side (required).
get_spot_margin_auto_repay_modeC
Get spot margin auto repay mode.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_spot_margin_coin_stateC
Get spot margin coin borrowing state.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_spot_margin_collateral_ratioC
Get tiered collateral ratio for spot margin.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_spot_margin_interest_rate_historyC
Get spot margin historical interest rate.
Args: currency: Currency, e.g., USDT.
Inputs: currency (required).
get_spot_margin_max_borrowableC
Get spot margin max borrowable amount.
Args: currency: Currency, e.g., USDT.
Inputs: currency (required).
get_spot_margin_position_tiersC
Get spot margin position tiers.
Args: currency: Filter by currency (optional).
Inputs: currency.
get_spot_margin_repayment_availableB
Get available amount to repay for spot margin.
Args: currency: Currency, e.g., USDT.
Inputs: currency (required).
get_spot_margin_statusA
Get spot margin trading status and leverage info.
Inputs: no named parameters.
get_spot_margin_vip_dataC
Get VIP margin data (borrow rates, limits).
Args: currency: Filter by currency (optional).
Inputs: currency.
get_spread_instrumentsC
Get spread trading instruments info.
Args: symbol: Spread symbol (optional). limit: Number of records (default: 50).
Inputs: symbol, limit.
get_spread_open_ordersC
Get spread trading open orders.
Args: symbol: Filter by symbol (optional). limit: Number of records (default: 50).
Inputs: symbol, limit.
get_spread_orderbookC
Get spread trading orderbook.
Args: symbol: Spread symbol. limit: Depth limit (default: 25).
Inputs: symbol (required), limit.
get_spread_order_historyB
Get spread trading order history.
Args: symbol: Filter by symbol (optional). limit: Number of records (default: 50).
Inputs: symbol, limit.
get_spread_recent_tradesB
Get spread trading recent public trades.
Args: symbol: Spread symbol. limit: Number of records (default: 50).
Inputs: symbol (required), limit.
get_spread_tickersC
Get spread trading tickers.
Args: symbol: Spread symbol.
Inputs: symbol (required).
get_spread_trade_historyB
Get spread trading execution history.
Args: symbol: Filter by symbol (optional). limit: Number of records (default: 50).
Inputs: symbol, limit.
get_sub_api_keysA
Get all API keys of a sub account.
Args: sub_member_id: Sub UID.
Inputs: sub_member_id (required).
get_sub_deposit_addressB
Get sub account deposit address.
Args: coin: Coin name, e.g., BTC. chain_type: Chain type, e.g., ETH. sub_member_id: Sub UID.
Inputs: coin (required), chain_type (required), sub_member_id (required).
get_sub_deposit_recordsC
Get sub account on-chain deposit records.
Args: sub_member_id: Sub UID. coin: Filter by coin (optional). limit: Number of records (default: 50).
Inputs: sub_member_id (required), coin, limit.
get_sub_uid_listC
Get sub UID list (limited).
Inputs: no named parameters.
get_sub_uid_list_paginatedB
Get sub UID list (unlimited, paginated).
Inputs: no named parameters.
get_symbol_priceA
Get the current price of a cryptocurrency pair.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: spot).
Returns: Price information from Bybit.
Inputs: symbol (required), category.
get_system_statusB
Get Bybit system/platform status.
Inputs: no named parameters.
get_tickersB
Get tickers for all symbols in a category.
Args: category: Product type: spot, linear, inverse, option (default: spot).
Returns: List of all tickers for the category.
Inputs: category.
get_trade_behaviour_configC
Get trade behaviour configuration settings.
Inputs: no named parameters.
get_trade_historyB
Get recent trade history for a pair.
Args: symbol: The trading pair. category: Product type: spot, linear, inverse (default: spot). limit: Number of trades to fetch (default: 20, max: 100).
Returns: List of trade summaries.
Inputs: symbol (required), category, limit.
get_transaction_logA
Get transaction logs.
Args: category: Product type: spot, linear, inverse, option (default: spot). limit: Number of records (default: 50, max: 50).
Returns: List of transaction log entries.
Inputs: category, limit.
get_transferable_amountA
Get transferable amount for unified account.
Args: coin_name: Coin name(s), comma-separated for multiple (max 20), e.g., "BTC,ETH".
Inputs: coin_name (required).
get_transferable_coinD
Get transferable coins between account types.
Args: from_account_type: Source account type. to_account_type: Destination account type.
Inputs: from_account_type (required), to_account_type (required).
get_uid_wallet_typeB
Get UID wallet type (UTA or classic).
Args: member_ids: Comma-separated member IDs (optional).
Inputs: member_ids.
get_universal_transfer_recordsC
Get universal transfer records.
Args: coin: Filter by coin (optional). limit: Number of records (default: 50).
Inputs: coin, limit.
get_vasp_listA
Get available VASPs (Virtual Asset Service Providers) for travel rule compliance.
Inputs: no named parameters.
get_withdrawable_amountC
Get withdrawable amount for a coin.
Args: coin: Coin name, e.g., USDT.
Inputs: coin (required).
get_withdrawal_address_listA
Get saved withdrawal address list.
Args: coin: Filter by coin (optional). chain: Filter by chain (optional). limit: Number of records (default: 50).
Inputs: coin, chain, limit.
get_withdrawal_recordsB
Get withdrawal records.
Args: coin: Filter by coin (optional). limit: Number of records (default: 50, max: 50).
Returns: List of withdrawal records.
Inputs: coin, limit.
issue_broker_voucherC
Issue a broker voucher/award.
Args: account_id: Target account ID. award_id: Award ID. spec_code: Spec code. amount: Amount. broker_id: Broker ID.
Inputs: account_id (required), award_id (required), spec_code (required), amount (required), +1 more.
manual_borrowC
Manually borrow funds in unified margin account.
Args: coin: Coin to borrow, e.g., USDT. amount: Borrow amount.
Inputs: coin (required), amount (required).
manual_repayC
Manual repay (with auto conversion if needed).
Args: coin: Coin to repay (optional). amount: Repay amount (optional).
Inputs: coin, amount.
manual_repay_no_convertC
Manual repay without asset conversion.
Args: coin: Coin to repay, e.g., USDT. amount: Repay amount (optional, repays all if empty).
Inputs: coin (required), amount.
modify_master_api_keyB
Modify master API key permissions.
Args: permissions: Permission object (optional). read_only: 0: Read and Write, 1: Read only (optional, -1 to skip).
Inputs: permissions, read_only.
modify_sub_api_keyB
Modify sub API key permissions.
Args: apikey: Sub API key (optional). permissions: Permission object (optional). read_only: 0: Read and Write, 1: Read only (optional, -1 to skip).
Inputs: apikey, permissions, read_only.
move_positionA
Move positions between UIDs (master API key only).
Args: from_uid: Source UID. to_uid: Destination UID. legs: List of position legs, each with: category, symbol, price, side, qty. Max 25 legs per request.
Inputs: from_uid (required), to_uid (required), legs (required).
new_crypto_loan_adjust_ltvC
Adjust collateral amount for new crypto loan.
Args: currency: Collateral currency. amount: Adjustment amount. direction: Direction: add, reduce.
Inputs: currency (required), amount (required), direction (required).
new_crypto_loan_fixed_borrowC
Create a fixed-term crypto loan borrow order.
Args: order_currency: Borrow currency. order_amount: Borrow amount. annual_rate: Annual interest rate. term: Loan term in days.
Inputs: order_currency (required), order_amount (required), annual_rate (required), term (required).
new_crypto_loan_fixed_renewC
Renew a fixed crypto loan borrow order.
Args: loan_id: Loan ID.
Inputs: loan_id (required).
new_crypto_loan_fixed_repayC
Fully repay a fixed crypto loan.
Args: loan_id: Loan ID (either loan_id or loan_currency required). loan_currency: Loan currency.
Inputs: loan_id, loan_currency.
new_crypto_loan_fixed_repay_collateralC
Repay fixed crypto loan with collateral.
Args: loan_currency: Loan currency. collateral_coin: Collateral coin. amount: Repay amount. loan_id: Loan ID (optional).
Inputs: loan_currency (required), collateral_coin (required), amount (required), loan_id.
new_crypto_loan_fixed_supplyC
Create a fixed crypto loan supply (lending) order.
Args: order_currency: Supply currency. order_amount: Supply amount. annual_rate: Annual interest rate. term: Supply term in days.
Inputs: order_currency (required), order_amount (required), annual_rate (required), term (required).
new_crypto_loan_flexible_borrowD
Borrow via flexible crypto loan.
Args: loan_currency: Loan currency. loan_amount: Loan amount.
Inputs: loan_currency (required), loan_amount (required).
new_crypto_loan_flexible_repayC
Repay a flexible crypto loan.
Args: loan_currency: Loan currency. amount: Repay amount.
Inputs: loan_currency (required), amount (required).
new_crypto_loan_flexible_repay_collateralC
Repay flexible crypto loan with collateral.
Args: loan_currency: Loan currency. collateral_coin: Collateral coin. amount: Repay amount.
Inputs: loan_currency (required), collateral_coin (required), amount (required).
otc_loan_bind_uidB
Bind or unbind UID for OTC lending.
Args: uid: UID to bind/unbind. operate: Operation: bind, unbind.
Inputs: uid (required), operate (required).
otc_loan_repayC
Repay OTC loan.
Args: token: Repay token/coin. quantity: Repay amount.
Inputs: token (required), quantity (required).
place_limit_orderB
Place a limit order to buy or sell.
Args: symbol: The trading pair, e.g., BTCUSDT. side: Buy or Sell. qty: Amount to trade. price: Limit price. category: Product type: spot, linear, inverse (default: spot).
Returns: Order placement result.
Inputs: symbol (required), side (required), qty (required), price (required), +1 more.
place_market_orderA
Place a market order to buy or sell.
Args: symbol: The trading pair, e.g., BTCUSDT. side: Buy or Sell. qty: Amount to trade. category: Product type: spot, linear, inverse (default: spot).
Returns: Order placement result.
Inputs: symbol (required), side (required), qty (required), category.
pre_check_orderA
Pre-check an order before placing it (validates margin, limits, etc.).
Args: category: Product type: inverse, linear, option. symbol: Symbol, e.g., BTCUSDT. side: Buy or Sell. order_type: Market or Limit. qty: Order quantity. price: Order price (required for Limit).
Inputs: category (required), symbol (required), side (required), order_type (required), +2 more.
purchase_leveraged_tokenB
Purchase a leveraged token.
Args: lt_coin: Leveraged token abbreviation, e.g., BTC3L. lt_amount: Purchase amount in USDT. serial_no: Unique serial number (optional).
Inputs: lt_coin (required), lt_amount (required), serial_no.
redeem_leveraged_tokenB
Redeem a leveraged token.
Args: lt_coin: Leveraged token abbreviation, e.g., BTC3L. quantity: Redemption quantity. serial_no: Unique serial number (optional).
Inputs: lt_coin (required), quantity (required), serial_no.
repay_liabilityC
Quick repay liability.
Args: coin: Coin with liability (optional, repays all if empty).
Inputs: coin.
request_convert_quoteC
Request a quote for crypto-to-crypto conversion.
Args: account_type: UNIFIED or eb_convert_funding. from_coin: Source coin. to_coin: Destination coin. request_coin: The coin to specify amount for (from_coin or to_coin). request_amount: Amount of the request_coin.
Inputs: account_type (required), from_coin (required), to_coin (required), request_coin (required), +1 more.
request_fiat_quoteB
Request a fiat conversion quote.
Args: from_coin: Source coin/currency. from_coin_type: Source type: crypto, fiat. to_coin: Destination coin/currency. to_coin_type: Destination type: crypto, fiat. request_amount: Amount.
Inputs: from_coin (required), from_coin_type (required), to_coin (required), to_coin_type (required), +1 more.
request_small_balance_quoteB
Request a quote for converting small balance coins.
Args: account_type: Account type: UNIFIED, FUND. from_coin_list: List of coins to convert from. to_coin: Coin to convert to (e.g., USDT).
Inputs: account_type (required), from_coin_list (required), to_coin (required).
reset_mmpC
Reset Market Maker Protection (MMP).
Args: base_coin: Base coin, e.g., BTC.
Inputs: base_coin (required).
set_auto_add_marginB
Set auto add margin for a position.
Args: symbol: Symbol, e.g., BTCUSDT. auto_add_margin: 0: off, 1: on. category: Product type: linear (default: linear). position_idx: 0: one-way, 1: hedge-Buy, 2: hedge-Sell (default: 0).
Inputs: symbol (required), auto_add_margin (required), category, position_idx.
set_broker_rate_limitA
Set broker rate limits.
Args: rate_limits: List of rate limit objects, each with: uids, bizType, rate.
Inputs: rate_limits (required).
set_collateral_coinB
Set collateral coin on or off.
Args: coin: Coin name (USDT/USDC cannot be set). collateral_switch: "ON" or "OFF".
Inputs: coin (required), collateral_switch (required).
set_dcpA
Set Disconnect Cancel All (DCP) - auto-cancel orders on disconnect.
Args: time_window: Time window in seconds (3-300). product: Product type: OPTIONS, DERIVATIVES, SPOT (default: OPTIONS).
Inputs: time_window (required), product.
set_deposit_accountC
Set deposit account type.
Args: account_type: UNIFIED, SPOT, FUND, etc.
Inputs: account_type (required).
set_leverageB
Set leverage for a symbol.
Args: symbol: The trading pair, e.g., BTCUSDT. buy_leverage: Buy side leverage, e.g., "10". sell_leverage: Sell side leverage, e.g., "10". category: Product type: linear, inverse (default: linear).
Returns: Leverage setting result.
Inputs: symbol (required), buy_leverage (required), sell_leverage (required), category.
set_margin_modeB
Set account margin mode.
Args: margin_mode: ISOLATED_MARGIN, REGULAR_MARGIN, or PORTFOLIO_MARGIN.
Inputs: margin_mode (required).
set_mmpC
Set Market Maker Protection (MMP) parameters.
Args: base_coin: Base coin, e.g., BTC. window: Time window in ms. frozen_period: Frozen period in ms. qty_limit: Trade quantity limit. delta_limit: Delta limit.
Inputs: base_coin (required), window (required), frozen_period (required), qty_limit (required), +1 more.
set_price_limit_behaviourA
Set price limit behaviour (allow system to modify order price or reject).
Args: category: Product type: linear, inverse, spot. modify_enable: true: allow modify, false: reject.
Inputs: category (required), modify_enable (required).
set_spot_hedgingB
Set spot hedging mode on or off.
Args: mode: "ON" or "OFF".
Inputs: mode (required).
set_spot_margin_auto_repay_modeC
Set spot margin auto repay mode.
Args: auto_repay_mode: Auto repay mode: on, off. currency: Currency (optional).
Inputs: auto_repay_mode (required), currency.
set_spot_margin_leverageC
Set spot margin leverage.
Args: leverage: Leverage value, e.g., "2". currency: Currency (optional).
Inputs: leverage (required), currency.
set_trading_stopB
Set take profit and/or stop loss for a position.
Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). take_profit: Take profit price. Leave empty to not set. stop_loss: Stop loss price. Leave empty to not set. position_idx: Position index: 0 (one-way), 1 (buy side), 2 (sell side). Default: 0.
Returns: Trading stop setting result.
Inputs: symbol (required), category, take_profit, stop_loss, +1 more.
switch_position_modeC
Switch position mode between one-way and hedge mode.
Args: symbol: The trading pair, e.g., BTCUSDT. mode: Position mode: 0 (merged single side), 3 (both sides). category: Product type: linear, inverse (default: linear). coin: Required for inverse. Coin name, e.g., BTC.
Returns: Position mode switch result.
Inputs: symbol (required), mode (required), category, coin.
toggle_spot_margin_tradeA
Toggle spot margin trading on or off.
Args: spot_margin_mode: "1" to enable, "0" to disable.
Inputs: spot_margin_mode (required).
upgrade_to_utaB
Upgrade account to Unified Trading Account (UTA).
Inputs: no named parameters.
withdrawC
Withdraw funds to an external address.
Args: coin: Coin to withdraw, e.g., USDT. address: Withdrawal address. amount: Amount to withdraw. account_type: Account type: FUND (default). chain: Chain type (optional, e.g., ETH, TRX).
Inputs: coin (required), address (required), amount (required), account_type, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 246 tools
Many tools have overlapping purposes (e.g., get_account_balance vs get_coin_balance vs get_all_coins_balance; get_order_history vs get_open_closed_orders vs get_trade_history), and the old/new crypto loan tool families are easily confused. The sheer number of similarly named getters makes reliable selection difficult for an agent.
Tool names mostly follow a consistent snake_case verb_noun pattern (get_, set_, cancel_, create_, etc.). Minor deviations exist (pre_check_order, execute_hedge_arbitrage_strategy, get_open_closed_orders), but the overall convention is predictable.
246 tools is an extreme number for an MCP server. Even if it comprehensively mirrors Bybit's API, this creates a massive selection surface that will overwhelm agents and exceed practical context limits.
The server covers an exceptionally broad range of Bybit domains: market data, trading, account, loans, earn, spread, RFQ, broker, sub-accounts, and pre-upgrade records. Minor gaps exist (e.g., no get_spot_hedging status), but overall the API surface is very complete.
Maintenance
Related MCP Connectors
MCP server for Gainium ā manage trading bots, deals, and balances via AI assistants
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
MCP server for OpenMM ā exposes market data, account, trading, and strategy tools to AI agents
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI coding tools like Claude Code and Cursor to interact with Bybit's trading platform for market data retrieval, account management, and trading operations.1126 npm13MIT
- FlicenseBqualityDmaintenanceA comprehensive MCP server providing full access to Bybit's v5 API for real-time market data, trading operations, and account management. It enables AI assistants to execute trades, manage positions, and monitor wallet balances with built-in safety controls for both testnet and production environments.226-

Bybit MCP Serverofficial
AlicenseBqualityBmaintenanceA production-ready MCP server for Bybit ā 206 tools covering market data, trading, positions, account management, assets, and real-time WebSocket streams. Enables AI assistants to interact directly with the Bybit cryptocurrency exchange through natural language.3981,294 npm43MIT- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to scan the market, manage positions, and retrieve trading metrics for Bybit through natural language commands.20AGPL 3.0