Skip to main content
Version: 1.0

Frequently Asked Questions

General

What is the Bitzoom Futures API?

The Bitzoom Futures API provides programmatic access to perpetual futures trading. You can use it to:

  • Access real-time market data
  • Place and manage orders
  • Monitor positions and account balances
  • Automate trading strategies

What are the API rate limits?

Endpoint TypeRate Limit
Public endpoints10 requests/second
Private endpoints5 requests/second
Order placement10 orders/second
WebSocket connections5 connections per IP

Exceeding rate limits will result in a -1003 error and temporary IP ban.

Is there a testnet environment?

Yes, you can test your integration without risking real funds:

EnvironmentBase URL
Productionhttp://119.8.50.236:8088
Testnethttps://testnet.bitzoom.com

Testnet API keys are separate from production keys.


Authentication

How do I get API credentials?

  1. Log in to your Bitzoom account
  2. Navigate to AccountAPI Management
  3. Click Create API Key
  4. Set permissions and IP whitelist (recommended)
  5. Save your API Key and Secret securely

My token expired. What should I do?

JWT tokens have a limited lifetime. When expired:

  1. You'll receive a -1002 Unauthorized error
  2. Request a new token using your credentials
  3. Update your application with the new token

Can I use the same API key for multiple applications?

Yes, but we recommend creating separate API keys for each application for better security and tracking.


Trading

What order types are supported?

Order TypeDescription
MARKETExecute immediately at best available price
LIMITExecute at specified price or better
STOPTrigger market order when stop price is reached
TAKE_PROFITTrigger order when take-profit price is reached
STOP_MARKETStop-loss with market execution
TAKE_PROFIT_MARKETTake-profit with market execution

What does "timeInForce" mean?

ValueDescription
GTCGood Till Cancel - remains until filled or canceled
IOCImmediate Or Cancel - fill immediately, cancel unfilled portion
FOKFill Or Kill - fill entirely or cancel completely
GTXGood Till Crossing - post-only, rejected if would immediately match

How do I set leverage?

curl -X POST "http://119.8.50.236:8088/api/v1/leverage" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"symbol": "BTCUSDT", "leverage": 10}'

Maximum leverage varies by symbol. Check /api/v1/exchangeinfo for limits.

Why was my order rejected?

Common rejection reasons:

Error CodeReasonSolution
-2010Insufficient balanceDeposit more funds or reduce order size
-2015Invalid sideUse "BUY" or "SELL"
-2018Invalid quantityCheck min/max quantity for the symbol
-2019Invalid pricePrice must meet tick size requirements
-2021Order would trigger immediatelyUse a different order type or price

Positions

How do I check my open positions?

curl -X GET "http://119.8.50.236:8088/api/v1/openpositions" \
-H "Authorization: Bearer YOUR_TOKEN"

What is the difference between isolated and cross margin?

Margin TypeDescription
IsolatedEach position has its own margin. Liquidation affects only that position.
CrossAll positions share margin from your account balance. Higher risk but more efficient capital usage.

How is liquidation price calculated?

Liquidation occurs when your margin ratio falls below the maintenance margin requirement. The formula depends on:

  • Entry price
  • Position size
  • Leverage
  • Maintenance margin rate

Use the /api/v1/positionrisk endpoint to get your current liquidation price.


WebSocket

How do I connect to WebSocket streams?

const ws = new WebSocket('ws://119.8.50.236:8088/ws');

ws.onopen = () => {
ws.send(JSON.stringify({
method: 'SUBSCRIBE',
params: ['btcusdt@ticker'],
id: 1
}));
};

Why did my WebSocket connection drop?

Common reasons:

  • 24-hour limit: Connections are closed after 24 hours. Implement reconnection logic.
  • Inactivity: Send a ping every 30 minutes to keep the connection alive.
  • Rate limit: Too many subscriptions or messages.

How many streams can I subscribe to?

  • Maximum 200 streams per connection
  • Maximum 5 connections per IP
  • Maximum 10 subscription requests per second

Account & Wallet

How do I check my balance?

curl -X GET "http://119.8.50.236:8088/api/v1/balance" \
-H "Authorization: Bearer YOUR_TOKEN"

How long do deposits take?

AssetConfirmations RequiredEstimated Time
BTC2~20 minutes
ETH12~3 minutes
USDT (TRC20)20~1 minute
USDT (ERC20)12~3 minutes

Why is my withdrawal pending?

Withdrawals may be delayed due to:

  • Security review for large amounts
  • Network congestion
  • Address whitelist verification
  • 2FA confirmation required

Troubleshooting

I'm getting "Invalid signature" errors

  1. Verify your API secret is correct
  2. Check that your system clock is synchronized
  3. Ensure you're signing the correct request parameters
  4. Verify the signature algorithm (HMAC-SHA256)

API calls are timing out

  1. Check your network connection
  2. Increase your client timeout (we recommend 30 seconds)
  3. Verify the API endpoint is correct
  4. Check status.bitzoom.com for service issues

I'm getting rate limited but haven't exceeded limits

  1. Check if you're sharing an IP with other users (VPN, cloud hosting)
  2. Implement exponential backoff on retries
  3. Use WebSocket for real-time data instead of polling
  4. Consider applying for a higher rate limit tier

Still Have Questions?