Skip to main content

Discover leverage tiers for BingX perpetual futures contracts

Project description

bingx-leverages

PyPI version Python 3.8+ License: MIT

Discover leverage tiers for BingX perpetual futures contracts.

Problem: BingX lacks a dedicated leverage bracket endpoint (unlike Binance /leverageBracket or Bybit). This library discovers tier boundaries by probing the API.

Installation

pip install bingx-leverages

Quick Start

from bingx_leverages import BingXClient

# Initialize client with API keys
client = BingXClient(
    api_key="your_api_key",
    api_secret="your_api_secret"
)

# Discover leverage tiers for BTC-USDT
tiers = client.discover_leverage_tiers("BTC-USDT")

for tier in tiers:
    print(f"{tier['leverage']}X: max {tier['max_position_val']:,} USDT")

Output:

150X: max 300,000 USDT
100X: max 800,000 USDT
75X: max 3,000,000 USDT
...

Features

  • Discover leverage tiers via API probing
  • Reference data from BingX website (15 trading pairs)
  • Validation tools to compare API vs reference data
  • Public endpoints for contract info, market data, funding rates

Supported Trading Pairs

Reference data available for: BTC, ETH, SOL, BNB, XRP, ADA, DOGE, LTC, AVAX, LINK, UNI, ATOM, SHIB, OP, AR (all USDT pairs)

from bingx_leverages import get_supported_symbols

print(get_supported_symbols())
# ['ADA-USDT', 'AR-USDT', 'ATOM-USDT', 'AVAX-USDT', 'BNB-USDT', ...]

Configuration

Set API keys via environment variables or pass directly:

# Option 1: Environment variables
import os
os.environ["BINGX_API_KEY"] = "your_key"
os.environ["BINGX_API_SECRET"] = "your_secret"

client = BingXClient()

# Option 2: Direct parameters
client = BingXClient(api_key="your_key", api_secret="your_secret")

Get API keys at: https://bingx.com/en/account/api/

Command Line Usage

# Fetch leverage data for a symbol
python -m bingx_leverages BTC-USDT

# List supported symbols
python -m bingx_leverages --list

# Validate against reference data
python -m bingx_leverages --validate BTC-USDT

Or use the installed command:

bingx-leverages BTC-USDT
bingx-leverages --list

API Reference

BingXClient

from bingx_leverages import BingXClient

client = BingXClient(api_key="...", api_secret="...")

# Discover leverage tiers (requires auth)
tiers = client.discover_leverage_tiers("BTC-USDT")

# Public endpoints (no auth required)
contracts = client.get_contracts()
ticker = client.get_ticker("BTC-USDT")
funding = client.get_funding_rate("BTC-USDT")
depth = client.get_depth("BTC-USDT", limit=20)

# Private endpoints (require auth)
balance = client.get_account_balance()
positions = client.get_positions()
leverage = client.get_leverage("BTC-USDT")

Reference Data

from bingx_leverages import (
    get_reference_tiers,
    get_supported_symbols,
    REFERENCE_TIERS
)

# Get reference tiers for a symbol
tiers = get_reference_tiers("BTC-USDT")
# [(1, 0, 300000, 150), (2, 300000, 800000, 100), ...]

# All reference data
print(REFERENCE_TIERS.keys())

Validation

from bingx_leverages import BingXClient, validate_symbol

client = BingXClient(api_key="...", api_secret="...")
results = validate_symbol(client, "BTC-USDT")

print(f"Accuracy: {results['boundary_matches']}/{results['total_boundaries']}")

How It Works

Since BingX has no /leverageBracket endpoint, the library uses probing:

  1. Calls set_leverage with different values (150, 125, 100, 75, ... 1)
  2. API returns maxPositionLongVal - max position size for that leverage
  3. When maxPositionLongVal changes, a tier boundary is found
  4. Original leverage is restored after probing

Safe: No orders are created, only leverage setting is temporarily changed.

Important Notes

  • KYC/VIP affects leverage: Unverified accounts may see lower max leverage
  • Data changes: BingX updates tier boundaries based on market conditions
  • API rate limits: 10 req/s for trading endpoints
  • Boundaries approximate: API may return slightly different values than website

Development

# Clone repository
git clone https://github.com/suenot/bingx-fetch-leverage-tiers
cd bingx-leverages

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
python test_leverage_tiers.py --offline

License

MIT License - see LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bingx_leverages-0.1.4.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bingx_leverages-0.1.4-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file bingx_leverages-0.1.4.tar.gz.

File metadata

  • Download URL: bingx_leverages-0.1.4.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for bingx_leverages-0.1.4.tar.gz
Algorithm Hash digest
SHA256 feb66177ed54344b233ffd96cced9c9095f6f31a348ed6a1a5b39f8c8e4b19fa
MD5 dff761db0e00458d0fefa18257ef3dff
BLAKE2b-256 28290c39f772a3e4e040083a8b73f1774321e651f70f1993567e755a731b3e9a

See more details on using hashes here.

File details

Details for the file bingx_leverages-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for bingx_leverages-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6b8dd3df20cde5f133a6cbd117df535d40c1e9916a6d2846054a97dc431468cd
MD5 f3c4fcc29b48e98762751cee7e990614
BLAKE2b-256 fb77ca86fd1beab98f1966dbe013e97ec53649641333ccb96688f17386005b6a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page