Exchanges
Bitget

Bitget

Bitget connects via API key + secret + passphrase. The passphrase is a third credential you choose at key-creation time — it is not your account password and it is unique to Bitget among the exchanges CubeTerminal supports.

Create an API key

  1. Log in to bitget.com (opens in a new tab) and open Profile → API Management
  2. Click Create APISystem-generated
  3. Choose a Passphrase — any string 8–32 characters. Write it down — Bitget will not show it again.
  4. Set permissions:
    • Read-only — for market data and balance polling
    • Trade — required for placing and cancelling orders
    • Leave Withdraw disabled
  5. (Recommended) Bind the key to CubeTerminal's IPs — see IP allowlist below
  6. Save the API Key, Secret Key, and Passphrase
⚠️

Three fields, not two. If you only copy the key and secret, the connection will fail on every request because the passphrase is part of the request signature.

Connect in CubeTerminal

  1. Open Settings → Trading Accounts → Bitget
  2. Paste the API Key
  3. Paste the Secret Key
  4. Paste the Passphrase
  5. Click Connect
  6. The terminal verifies all three by fetching your futures balance

IP allowlist

Bitget supports IP-binding on every API key. CubeTerminal is a hosted web app, so requests originate from CubeTerminal's servers — not your browser. Whitelist these two IPs:

  • 208.77.244.15 — CubeTerminal app (REST)
  • 162.220.232.99 — Exchange WS Proxy (WebSocket)

In Bitget: API Management → edit key → Bind IP → paste both IPs → save.

⚠️

Whitelisting your home IP blocks every trade — your home IP doesn't make the requests CubeTerminal does. See the Binance IP allowlist explanation for full context.

USDT-M futures

CubeTerminal trades Bitget's USDT-M perpetual futures product (linear, USDT-margined). Coin-M futures and spot products are not connected.

Symbols use Bitget's native format with the USDT suffix:

  • BTCUSDT
  • ETHUSDT
  • SOLUSDT

Request signing

Every authenticated request to Bitget includes an HMAC signature computed from:

timestamp + method + requestPath + body

The signature uses your secret as the HMAC key, and the passphrase is sent as a separate header. Both must be correct for the request to succeed — a wrong passphrase returns a misleading "Invalid signature" error even though the signature itself is valid.

Quirks

Position mode

Bitget supports One-way and Hedge modes on USDT-M. CubeTerminal assumes one-way; switch your account to one-way in the Bitget web UI if you are currently hedging (Futures → Preferences → Position Mode).

Leverage per side

Bitget lets you set leverage independently for longs and shorts. The terminal writes the same leverage to both sides when you adjust it from the Trade Entry widget.

Order book depth

Bitget's websocket streams 15-level depth by default. The Order Book widget displays whatever the feed provides — go deeper by zooming the aggregation level in the widget settings.

Troubleshooting

"Invalid sign" even though the key and secret look right

  • Re-paste the passphrase — this is the single most common cause
  • Check the system clock — Bitget rejects requests with a timestamp skew over 30 seconds

"Parameter error: symbol"

  • Verify you are trading a USDT-M symbol (suffix USDT)
  • COIN-M symbols appear under a different API base URL that the terminal does not call

Passphrase lost

  • Bitget does not recover passphrases. Delete the API key and create a new one.