ProductsPyPI 0.1.6Python 3.9+MIT

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.

01Open source

nexrade (library)

Python trading SDK — exchange clients, Spot/Futures aggregators, Redis cache, indicators, termplot. Runs in your bot process.

02Client

nexrade_req

HTTP layer the SDK uses for public REST. Retries, timeouts, and optional routing through the Nexrade API.

03Hosted API

Nexrade API

api.nexrade.com — proxy pool, short TTL cache, exchange-aware routing. Rate-limit bypass and optimized public market-data fetches.

request path
Your bot
nexrade.Binance / Spot / Futures
Public GET
nexrade_req (+ retries)
Nexrade API
/market-data · API key
Exchange
allowlisted public APIs only

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.

install
pip install nexrade
enable API rate-limit bypass
# 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"))
single exchange
import nexrade

binance = nexrade.Binance({"api_key": "...", "secret": "..."})
print(binance.get_price("BTCUSDT"))
multi-exchange
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.

Your code

Binance / Spot / Futures / Coingecko

Aggregators

Auto credentials · parallel best_ask / all_positions

Consistent API

Same methods · swap exchange by one string

Shared infra

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.

ExchangeSpotFutures
BinanceDoneIn progress
BybitDoneDone
MEXCDoneDone
GateDoneDone
KuCoinDoneDone
OKXDoneIn progress
BitgetDoneDone
CoinExDoneIn progress
HTXDoneIn progress
KrakenDoneIn progress
BitMartDoneIn progress
BingXDoneIn progress
BitrueDoneIn progress
PoloniexDoneIn progress
CoinbaseDoneIn progress
Crypto.comDoneIn progress
WhiteBITDoneIn progress
AscendEXDoneIn progress
PhemexDoneIn progress
BackpackDoneIn progress
BitfinexDoneIn progress
XTDoneIn progress
BithumbPublic onlyIn progress
UpbitPublic onlyIn progress
HyperliquidIn progress
AsterIn 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.

no redis
import nexrade
binance = nexrade.Binance({"enable_cache": False})
print(binance.get_price("BTCUSDT"))

Documentation

Deep dives in the repo

Runtime dependencies

Auto-installed with pip install nexrade

nexrade_req
Public HTTP + optional Nexrade API routing
pyureq
Authenticated HTTP (native extension)
redis
Cache backend (optional via enable_cache=False)
orjson
Fast JSON
numpy / pandas
Numeric + kline helpers
websocket-client
Streaming wrappers
Nexrade API

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.