nexrade
Open-source multi-exchange trading library for 24/7 bots. Public market-data traffic can route through the Nexrade API for rate-limit bypass, proxy rotation, and optimized requests — private trading still goes direct with your exchange keys.
library: github.com/nexrade/nexrade · API: api.nexrade.com · client: nexrade_req
Library + API
The SDK is free. Rate-limit bypass is the product.
nexrade is the trading library you install. For public endpoints (tickers, orderbooks, klines), it uses nexrade_req, which can forward through the Nexrade API so you get IP rotation, short-TTL cache, and exchange-aware routing — without building your own proxy farm.
nexrade (library)
Python trading SDK — exchange clients, Spot/Futures aggregators, Redis cache, indicators, termplot. Runs in your bot process.
nexrade_req
HTTP layer the SDK uses for public REST. Retries, timeouts, and optional routing through the Nexrade API.
Nexrade API
api.nexrade.com — proxy pool, short TTL cache, exchange-aware routing. Rate-limit bypass and optimized public market-data fetches.
Authenticated trading (orders, balances with your keys) still hits the exchange directly — the API is for public / market-data optimization, not signing your private keys.
Why nexrade
Built for bots that run overnight
Most exchange SDKs leave retries, caching, and multi-venue fan-out to you. nexrade handles them in-process — and plugs into the Nexrade API when public REST needs to scale past a single IP.
Rate-limit bypass via Nexrade API
Public calls go through nexrade_req → Nexrade API (/market-data). Rotating proxies + short cache so you do not burn exchange IP limits.
Safe error handling
Methods return safe sentinels on failure instead of unhandled exceptions. handle_error is overridable per instance.
Redis at every layer
Orderbooks, tickers, balances, orders, and klines — namespaced per exchange and account. Disable with enable_cache=False.
Multi-exchange one object
Spot and Futures aggregators load many clients, resolve credentials, and run cross-exchange helpers in parallel.
Consistent interface
Same method signatures across venues. Swap an exchange by changing one string.
TA + terminal plots
57-indicator library on plain Python lists, plus nexrade.termplot for SSH-friendly candles, heatmaps, and PnL tables.
nexrade vs ccxt
Choose the right tool
Pick nexrade when…
- You want one object for many exchanges with best_ask / all_balances helpers
- You run a 24/7 bot and need Redis cache + retries + API rate-limit bypass
- You want normalized return types and sentinel zeros on failure
- You want TA that speaks the same shapes as the exchange SDKs
Pick ccxt when…
- You need its broader market / venue coverage today
- You're integrating an exchange nexrade doesn't support yet
- You already have your own cache, retry, and multi-venue layer
Quickstart
Install the lib. Attach the API.
Install the open-source SDK, create a free Nexrade API key, and route public REST through the Nexrade API for rate-limit bypass. Private orders still use your exchange keys directly.
pip install nexrade
# Point public REST through the Nexrade API (rate-limit bypass)
import os
os.environ["NEXRADE_API_KEY"] = "nxr_..." # from dashboard → API keys
# nexrade_req routes public GETs via api.nexrade.com/market-data
import nexrade
binance = nexrade.Binance({})
print(binance.get_price("BTCUSDT"))import nexrade
binance = nexrade.Binance({"api_key": "...", "secret": "..."})
print(binance.get_price("BTCUSDT"))import nexrade
spot = nexrade.Spot({
"exchanges": ["mexc", "bybit", "gate"],
"account_map": {"prefix": "_MAIN"},
})
print(spot.best_ask("BTCUSDT")) # ('gate', 71107.5)
print(spot.all_balances("USDT"))
futures = nexrade.Futures({"exchanges": ["bybit", "gate", "mexc"]})
print(futures.best_ask("BTCUSDT"))
print(futures.all_positions())Architecture
One stack under every client
Single-exchange SDKs, Spot / Futures aggregators, and data providers all sit on shared infrastructure — nexrade_req, Redis cache, and safe error handling.
Binance / Spot / Futures / Coingecko
Auto credentials · parallel best_ask / all_positions
Same methods · swap exchange by one string
nexrade_req · Redis · handle_error / is_success
Supported venues
Spot first. Futures filling in.
Spot SDKs are the primary focus. Futures coverage is functional and expanding. Delivery (coin-margined) is Gate.io only today.
| Exchange | Spot | Futures |
|---|---|---|
| Binance | Done | In progress |
| Bybit | Done | Done |
| MEXC | Done | Done |
| Gate | Done | Done |
| KuCoin | Done | Done |
| OKX | Done | In progress |
| Bitget | Done | Done |
| CoinEx | Done | In progress |
| HTX | Done | In progress |
| Kraken | Done | In progress |
| BitMart | Done | In progress |
| BingX | Done | In progress |
| Bitrue | Done | In progress |
| Poloniex | Done | In progress |
| Coinbase | Done | In progress |
| Crypto.com | Done | In progress |
| WhiteBIT | Done | In progress |
| AscendEX | Done | In progress |
| Phemex | Done | In progress |
| Backpack | Done | In progress |
| Bitfinex | Done | In progress |
| XT | Done | In progress |
| Bithumb | Public only | In progress |
| Upbit | Public only | In progress |
| Hyperliquid | — | In progress |
| Aster | — | In progress |
Done = full verified support · Public only = implemented, auth not verified · In progress = shipping soon
Caching
Redis on by default
Caching speeds up repeated reads and lets multiple bots share one Redis (keys namespaced per exchange + account). No Redis server? Pass enable_cache=False — every read falls through live with no connection attempt.
On Windows, pair with nexrade-cache for a Redis-compatible server from the same org.
import nexrade
binance = nexrade.Binance({"enable_cache": False})
print(binance.get_price("BTCUSDT"))Documentation
Deep dives in the repo
Spot
Single exchange + Spot aggregator, symbols, methods, WebSocket recipe.
Futures
Futures clients + aggregator, positions, leverage, examples.
Indicators
57-indicator TA library — kline, orderbook, and trade inputs.
termplot
Terminal candles, heatmaps, and styled PnL tables over stdout.
Configuration
BOT_ACCOUNT, nexrade_req, caching, errors, troubleshooting.
Runtime dependencies
Auto-installed with pip install nexrade
SDK alone works. The API is what scales public REST.
Free tier: limited RPM, public proxy pool. Pro / Enterprise: higher limits, OWN proxy routing, exchange weight awareness. Create a key, set it for nexrade_req, keep trading logic in the open-source SDK.