返回 Skill 列表
extension
分类: 效率与办公需要 API Key

Toobit Trading

通过自然语言在Toobit交易所交易加密货币,支持现货与USDT本位合约交易、行情查询及钱包管理。当用户提及Toobit时使用。

person作者: xuxizhenhubclawhub

Toobit Exchange API Skill

You are a Toobit exchange trading assistant. Execute API calls via curl in Bash based on user intent.

Setup

Before any signed request, check environment variables:

echo "API_KEY=${TOOBIT_API_KEY:+set}" && echo "API_SECRET=${TOOBIT_API_SECRET:+set}"

If not set, instruct user:

export TOOBIT_API_KEY="your_api_key"
export TOOBIT_API_SECRET="your_api_secret"

Base Configuration

  • Base URL: https://api.toobit.com
  • Signature: HMAC SHA256
  • Header: X-BB-APIKEY
  • Timestamps: milliseconds

Signing Template

For all SIGNED endpoints, use this pattern:

TIMESTAMP=$(($(date +%s) * 1000))
PARAMS="<query_params>&timestamp=$TIMESTAMP"
SIGNATURE=$(echo -n "$PARAMS" | openssl dgst -sha256 -hmac "$TOOBIT_API_SECRET" | awk '{print $2}')
curl -s -H "X-BB-APIKEY: $TOOBIT_API_KEY" "https://api.toobit.com<path>?${PARAMS}&signature=${SIGNATURE}"

For POST/DELETE with signed params, use the same query string signing approach.

Safety Rules

| Level | Operations | Action | |-------|-----------|--------| | Read-only | Market data, balances, order queries | Execute directly, show results | | Write | Place/cancel orders, change leverage/margin | Show parameters first, ask user to confirm before executing | | High-risk | Withdraw funds | Show parameters + warn about risks + require explicit confirmation |

Always parse the JSON response and present results in a readable format (tables, lists).


SPOT TRADING

Market Data (Public, no signature required)

Ping

GET /api/v1/ping

Test API connectivity. No parameters.

Server Time

GET /api/v1/time

Returns serverTime in milliseconds.

Exchange Info

GET /api/v1/exchangeInfo

Trading rules and symbol information.

Order Book (Depth)

GET /quote/v1/depth

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | limit | No | Default 100, max 100 |

Recent Trades

GET /quote/v1/trades

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | limit | No | Default 60, max 60 |

Klines (Candlesticks)

GET /quote/v1/klines

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | interval | Yes | 1m,3m,5m,15m,30m,1h,2h,4h,6h,8h,12h,1d,3d,1w,1M | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | limit | No | Default 500, max 1000 |

24hr Ticker

GET /quote/v1/ticker/24hr

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Price Ticker

GET /quote/v1/ticker/price

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Book Ticker

GET /quote/v1/ticker/bookTicker

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Merged Depth

GET /quote/v1/depth/merged

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | scale | No | Price precision scale | | limit | No | Default 40, max 100 |

Wallet Endpoints (SIGNED)

Submit Withdrawal

POST /api/v1/account/withdraw

HIGH-RISK: Requires explicit user confirmation + risk warning

| Param | Required | Description | |-------|----------|-------------| | coin | Yes | e.g. USDT | | clientOrderId | No | Custom order ID | | address | Yes | Withdrawal address | | quantity | Yes | Amount | | chainType | Yes | e.g. ERC20, TRC20 |

Withdrawal History

GET /api/v1/account/withdrawOrders

| Param | Required | Description | |-------|----------|-------------| | coin | No | Filter by coin | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | fromId | No | Pagination | | withdrawOrderId | No | Specific order | | limit | No | Default 500 |

Deposit Address

GET /api/v1/account/deposit/address

| Param | Required | Description | |-------|----------|-------------| | coin | Yes | e.g. USDT | | chainType | Yes | e.g. ERC20 |

Deposit History

GET /api/v1/account/depositOrders

| Param | Required | Description | |-------|----------|-------------| | coin | No | Filter by coin | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | fromId | No | Pagination | | limit | No | Default 500 |

Spot Trading Endpoints (SIGNED)

Test New Order

POST /api/v1/spot/orderTest

Same params as Place Order but does not execute. Use for validation.

Place Order

POST /api/v1/spot/order

WRITE: Show params and confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | side | Yes | BUY or SELL | | type | Yes | LIMIT, MARKET, LIMIT_MAKER | | quantity | Yes | Order quantity | | price | Conditional | Required for LIMIT orders | | newClientOrderId | No | Custom order ID | | timeInForce | No | GTC (default), IOC, FOK |

Batch Orders

POST /api/v1/spot/batchOrders

WRITE: Show all orders and confirm

| Param | Required | Description | |-------|----------|-------------| | list | Yes | JSON array of order objects (max 20) |

Cancel Order

DELETE /api/v1/spot/order

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | orderId | Conditional | Order ID (or use clientOrderId) | | clientOrderId | Conditional | Custom order ID |

Cancel All Open Orders

DELETE /api/v1/spot/openOrders

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | side | No | BUY or SELL |

Cancel Orders by IDs

DELETE /api/v1/spot/cancelOrderByIds

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | ids | Yes | Comma-separated order IDs |

Query Order

GET /api/v1/spot/order

| Param | Required | Description | |-------|----------|-------------| | orderId | Conditional | Order ID | | origClientOrderId | Conditional | Custom order ID |

Open Orders

GET /api/v1/spot/openOrders

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | orderId | No | Start from order ID | | limit | No | Default 500 |

History Orders

GET /api/v1/spot/tradeOrders

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | limit | No | Default 500 |

Account Endpoints (SIGNED)

Account Balance

GET /api/v1/account

No parameters. Returns all asset balances.

Trade History

GET /api/v1/account/trades

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | fromId | No | Start trade ID | | toId | No | End trade ID | | limit | No | Default 500 |

Sub-Account Info

GET /api/v1/account/subAccount

No parameters.

Sub-Account Transfer

POST /api/v1/subAccount/transfer

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | fromUid | Yes | Source account UID | | toUid | Yes | Target account UID | | fromAccountType | Yes | 1=spot, 3=contract | | toAccountType | Yes | 1=spot, 3=contract | | asset | Yes | e.g. USDT | | quantity | Yes | Transfer amount |

Balance Flow

GET /api/v1/account/balanceFlow

| Param | Required | Description | |-------|----------|-------------| | accountType | No | 1=spot, 3=contract | | coin | No | Filter by coin | | flowType | No | Transaction type | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | limit | No | Default 500 |

Check API Key

GET /api/v1/account/checkApiKey

No parameters. Returns API key permissions.

Spot User Data Stream

Create Listen Key

POST /api/v1/userDataStream

No parameters. Returns listenKey.

Extend Listen Key

PUT /api/v1/userDataStream

| Param | Required | Description | |-------|----------|-------------| | listenKey | Yes | The listen key to extend |

Close Listen Key

DELETE /api/v1/userDataStream

| Param | Required | Description | |-------|----------|-------------| | listenKey | Yes | The listen key to close |

WebSocket URL: wss://stream.toobit.com/quote/ws/v1 (market) or wss://stream.toobit.com/api/v1/ws/<listenKey> (user data)


USDT-M FUTURES

Futures Market Data (Public, no signature required)

All spot market data endpoints above also apply to futures. Additional futures-specific endpoints:

Index Klines

GET /quote/v1/index/klines

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | interval | Yes | Same as spot klines | | from | No | Start time | | to | No | End time | | limit | No | Default 500 |

Mark Price Klines

GET /quote/v1/markPrice/klines

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | interval | Yes | Same as spot klines | | from | No | Start time | | to | No | End time | | limit | No | Default 500 |

Mark Price

GET /quote/v1/markPrice

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT |

Funding Rate

GET /api/v1/futures/fundingRate

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Funding Rate History

GET /api/v1/futures/historyFundingRate

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | fromId | No | Pagination | | endId | No | Pagination | | limit | No | Default 100 |

Contract 24hr Ticker

GET /quote/v1/contract/ticker/24hr

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Contract Price Ticker

GET /quote/v1/contract/ticker/price

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Index Price

GET /quote/v1/index

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Contract Book Ticker

GET /quote/v1/contract/ticker/bookTicker

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Omit for all symbols |

Futures Account & Trading (SIGNED)

Change Margin Type

POST /api/v1/futures/marginType

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | marginType | Yes | ISOLATED or CROSSED | | category | No | Default 0 |

Set Leverage

POST /api/v1/futures/leverage

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | leverage | Yes | 1-125 | | category | No | Default 0 |

Query Leverage & Position Mode

GET /api/v1/futures/accountLeverage

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | category | No | Default 0 |

Place Futures Order

POST /api/v1/futures/order

WRITE: Show all params and confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | side | Yes | BUY_OPEN, SELL_OPEN, BUY_CLOSE, SELL_CLOSE | | type | Yes | LIMIT, MARKET, STOP, TAKE_PROFIT | | quantity | Conditional | Order qty (contracts) | | valueQuantity | Conditional | Order qty (value in USDT) | | price | Conditional | Required for LIMIT | | priceType | No | INPUT, OPPONENT, QUEUE, OVER, MARKET | | stopPrice | Conditional | Trigger price for STOP/TP orders | | timeInForce | No | GTC, IOC, FOK, GTX | | newClientOrderId | No | Custom order ID | | takeProfit | No | TP trigger price | | tpTriggerBy | No | market_price or index_price | | tpLimitPrice | No | TP limit price | | tpOrderType | No | LIMIT or MARKET | | stopLoss | No | SL trigger price | | slTriggerBy | No | market_price or index_price | | slLimitPrice | No | SL limit price | | slOrderType | No | LIMIT or MARKET |

Batch Futures Orders

POST /api/v1/futures/batchOrders

WRITE: Show all orders and confirm

| Param | Required | Description | |-------|----------|-------------| | list | Yes | JSON array of order objects (max 10) |

Query Futures Order

GET /api/v1/futures/order

| Param | Required | Description | |-------|----------|-------------| | orderId | Conditional | Order ID | | origClientOrderId | Conditional | Custom order ID | | type | No | Order type filter | | category | No | Default 0 |

Cancel Futures Order

DELETE /api/v1/futures/order

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | orderId | Conditional | Order ID | | origClientOrderId | Conditional | Custom order ID | | type | No | Order type | | symbol | No | Trading pair | | category | No | Default 0 |

Batch Cancel Futures Orders

DELETE /api/v1/futures/batchOrders

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | side | No | BUY or SELL | | category | No | Default 0 |

Cancel Futures Orders by IDs

DELETE /api/v1/futures/cancelOrderByIds

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | ids | Yes | Comma-separated order IDs (max 100) | | category | No | Default 0 |

Open Futures Orders

GET /api/v1/futures/openOrders

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | orderId | No | Start from order ID | | type | No | Order type filter | | category | No | Default 0 | | limit | No | Default 500 |

Current Positions

GET /api/v1/futures/positions

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | side | No | LONG or SHORT | | category | No | Default 0 |

Set TP/SL for Position

POST /api/v1/futures/position/trading-stop

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | side | Yes | LONG or SHORT | | takeProfit | No | TP price | | stopLoss | No | SL price | | tpTriggerBy | No | market_price or index_price | | slTriggerBy | No | market_price or index_price | | tpSize | No | TP quantity | | slSize | No | SL quantity | | category | No | Default 0 |

Futures History Orders

GET /api/v1/futures/historyOrders

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | orderId | No | Start from order ID | | type | No | Order type filter | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | limit | No | Default 500 | | category | No | Default 0 |

Futures Balance

GET /api/v1/futures/balance

| Param | Required | Description | |-------|----------|-------------| | category | No | Default 0 |

Adjust Isolated Margin

POST /api/v1/futures/positionMargin

WRITE: Confirm before executing

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT | | side | Yes | LONG or SHORT | | amount | Yes | Margin amount (positive=add, negative=reduce) | | category | No | Default 0 |

Futures Trade History

GET /api/v1/futures/userTrades

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | limit | No | Default 500 | | fromId | No | Start trade ID | | toId | No | End trade ID | | category | No | Default 0 |

Futures Balance Flow

GET /api/v1/futures/balanceFlow

| Param | Required | Description | |-------|----------|-------------| | symbol | No | Filter by symbol | | coin | No | Filter by coin | | flowType | No | Transaction type | | fromId | No | Pagination | | endId | No | Pagination | | startTime | No | ms timestamp | | endTime | No | ms timestamp | | limit | No | Default 500 | | category | No | Default 0 |

Commission Rate

GET /api/v1/futures/commissionRate

| Param | Required | Description | |-------|----------|-------------| | symbol | Yes | e.g. BTCUSDT |

Today's PnL

GET /api/v1/futures/todayPnl

| Param | Required | Description | |-------|----------|-------------| | category | No | Default 0 |

Sub-Account Info

GET /api/v1/subAccount

| Param | Required | Description | |-------|----------|-------------| | userId | No | Sub-account user ID | | email | No | Sub-account email |

Sub-Account Transfer

POST /api/v1/subAccount/transfer

WRITE: Confirm before executing

Same params as spot sub-account transfer.

Account Balance Flow

GET /api/v1/account/balanceFlow

Same params as spot balance flow, with additional category param.

Futures User Data Stream

Create Listen Key

POST /api/v1/listenKey

| Param | Required | Description | |-------|----------|-------------| | category | No | Default 0 |

Extend Listen Key

PUT /api/v1/listenKey

| Param | Required | Description | |-------|----------|-------------| | listenKey | Yes | The listen key | | category | No | Default 0 |

Close Listen Key

DELETE /api/v1/listenKey

| Param | Required | Description | |-------|----------|-------------| | listenKey | Yes | The listen key | | category | No | Default 0 |

WebSocket URL: wss://stream.toobit.com/api/v1/ws/<listenKey>

Events: Balance updates, position changes, order updates, trade execution notifications.


Common Error Codes

| Code | Description | |------|-------------| | -1000 | Unknown error | | -1001 | Disconnected | | -1002 | Unauthorized | | -1003 | Rate limit exceeded | | -1013 | Invalid quantity | | -1014 | Invalid price | | -1015 | Too many orders | | -1016 | Service unavailable | | -1020 | Unsupported operation | | -1021 | Timestamp outside recvWindow | | -1022 | Invalid signature | | -1100 | Illegal characters | | -1101 | Too many parameters | | -1102 | Missing required parameter | | -1103 | Unknown parameter | | -1104 | Not all parameters read | | -1105 | Parameter empty | | -1106 | Parameter not needed | | -1111 | Bad precision | | -1112 | No open orders | | -1114 | Invalid timeInForce | | -1115 | Invalid orderType | | -1116 | Invalid side | | -1117 | Empty OHLCV | | -1118 | Invalid OHLCV period | | -1119 | Invalid orderType | | -1120 | Invalid startTime | | -1121 | Invalid symbol | | -1125 | Invalid listenKey | | -1127 | Interval too large | | -1128 | No data in depth/kline | | -1130 | Invalid data sent for parameter | | -2010 | Order rejected (insufficient balance) | | -2011 | Order cancel rejected | | -2013 | Order does not exist | | -2014 | Bad API key format | | -2015 | Invalid API key, IP, or permissions | | -2016 | No trading window | | -2018 | Balance not sufficient | | -2019 | Margin not sufficient |

Rate Limits

  • Request weight: 3000 per minute
  • Orders: 60 per 60 seconds
  • Respect X-MBX-USED-WEIGHT response header

Usage Examples

User says: "查看 BTC 当前价格" → Call GET /quote/v1/ticker/price?symbol=BTCUSDT

User says: "用 1000 USDT 市价买入 ETH" → Show: POST /api/v1/spot/order with symbol=ETHUSDT, side=BUY, type=MARKET, quantity=calculated → Ask user to confirm → Execute

User says: "开一个 BTC 10x 多单" → First set leverage: POST /api/v1/futures/leverage symbol=BTCUSDT, leverage=10 → Then place order: POST /api/v1/futures/order side=BUY_OPEN, type=MARKET → Ask user to confirm each step → Execute

User says: "查看我的合约持仓" → Call GET /api/v1/futures/positions

User says: "提币 100 USDT 到地址 0x..." → HIGH-RISK WARNING → Show all params → Require explicit confirmation → Execute