Skip to content

Supported Markets ​

The API supports 13 venues, including gold spot, through a single set of endpoints. Query /api/markets for current availability. Canonical symbols are all-uppercase with no separators.

Overview ​

Asset classVenueSymbolsSupported intervals
Cryptobinance:spot701m 5m 15m 1h 4h 1d
Crypto / stock and other perpetualsbinance:perpQuery discovery endpoint1m 5m 15m 1h 4h 1d
bybit:spot701m 5m 15m 1h 4h 1d
bybit:perp701m 5m 15m 1h 4h 1d
okx:spot701m 5m 15m 1h 4h 1d
okx:perp501m 5m 15m 1h 4h 1d
hyperliquid:perpQuery discovery endpoint1m 5m 15m 1h 4h 1d
A-sharesstock:cn321m 5m 15m 30m 1h 1d
Hong Kongstock:hk201h 1d
US stocksstock:us371h 1d
Forexforex:spot101h 1d
Commodity futurescommodity:futures71h 1d
Gold spotcommodity:spot15m 15m 30m 1h 4h 1d

Query the live list

Symbol lists may change (we add hot tickers and remove illiquid ones). Before integrating, query the discovery endpoints:

bash
# All venues + WS health
curl -H "Authorization: Bearer mq_xxx" https://api.mobiusquant.ai/api/markets

# All symbols on a single venue
curl -H "Authorization: Bearer mq_xxx" \
     https://api.mobiusquant.ai/api/markets/binance/perp/symbols

Historical time windows ​

For subscribed Binance, Bybit, OKX and Hyperliquid instruments, including Binance stock perpetuals, GET /api/klines, POST /api/indicators and POST /api/chart automatically retrieve available history when startTime or endTime is supplied. No new parameter or preliminary Kline request is required. Requests without time bounds retain latest-data behavior. Stock spot, forex, commodity futures and gold spot retain their existing history limitations.

Use this body with either POST endpoint, assuming the symbol is subscribed and the history exists:

json
{
  "exchange": "binance", "market": "perp", "symbol": "SNDKUSDT", "interval": "5m",
  "startTime": 1791849600000, "endTime": 1791936000000, "limit": 300,
  "signals": true,
  "calc": [{"name": "cvd", "id": "cvd"}, {"name": "hmm_regime", "id": "hmm"}]
}
  • Bounds are inclusive candle opening timestamps in milliseconds. Large ranges select the most recent limit interval slots at the end of the range. Missing slots are not fabricated, so fewer candles may be returned.
  • An end-only query selects a window ending at that bound. A start-only query selects the most recent window through the present, not forward pagination from the start. Supply both bounds for historical review.
  • Warmup does not consume visible limit. Existing endpoint output caps still apply; use a common permitted limit when comparing endpoints. Parameter and output-size combinations requiring more than 6,000 history input bars return 400.
  • The legacy GET extend_history flag remains accepted but is unnecessary for time-window queries. Do not add it to either POST body; unknown fields return 422.
  • Chart and numeric results use consistent calculation history for a fixed closed window. Features and objects come from the same calculation. Use include:["calculation"] for actual input ranges. Revisions and forming-candle updates can still change results between requests.
  • Insufficient history retains native null/status semantics. The API does not substitute latest candles or stock-spot history, and cannot reconstruct historical intrabar features that later disappeared.

Errors retain the {"detail":"..."} body. The X-Kline-Error-Code response header distinguishes:

HTTPCodeAction
404symbol_not_subscribedCheck the subscribed symbol list
404history_not_availableNo candles are available in the selected window
503history_preparingRetry the same request after Retry-After
503history_busyRespect Retry-After and reduce concurrent windows
503history_upstream_unavailableThe data source is temporarily unavailable; respect Retry-After

Other service 503 and API 429 responses retain their existing handling. Source-side rate limiting may appear as a historical-source 503. An unavailable window does not prove delisting; do not silently replace the request with latest data.

Canonical symbol rules ​

VenueFormExamples
Crypto{BASE}{QUOTE}BTCUSDT, BTCUSDC, 1000PEPEUSDT
Binance stock perpetualsFull contract symbol on binance:perpTSLAUSDT, NVDAUSDT
stock:cn6-digit bare code (no sh / sz / .SS suffix)600519, 000333, 300750
stock:hk5-digit with leading zero00700, 09988
stock:usBare tickerAAPL, NVDA, TSLA
forex:spot6-letter concatenationEURUSD, USDJPY, GBPUSD
commodity:futuresFutures canonical codeXAUF, XAGF, WTIUSD
commodity:spotGold spot canonical codeXAUUSD

Send the canonical value in API requests. The native examples below are not valid request symbols:

NativeCanonical
BTC-USDT-SWAP (OKX perp)BTCUSDT
BTCPERP (Bybit USDC perp)BTCUSDC
kPEPE (Hyperliquid)1000PEPEUSDC
1000PEPEUSDT (Binance memecoin)1000PEPEUSDT (already canonical)
00700.HK00700
600519.SS600519
GC=F (Gold futures)XAUF on commodity:futures

Rule of thumb: all uppercase, no separators, perp vs spot is encoded in the venue (not in the symbol).

Binance stock perpetuals ​

Use exchange="binance", market="perp" and the full contract symbol, for example TSLAUSDT. This is not stock spot on stock:us; do not send bare TSLA or market="stock". This capability covers Binance only, not stock contracts on other exchanges.

Discover before querying. /api/markets/binance/perp/symbols lists only contracts subscribed by this service. An exchange listing does not imply an active service subscription. The default response is unchanged; add include_meta=true for instrument classification:

bash
curl 'https://api.mobiusquant.ai/api/markets/binance/perp/symbols?include_meta=true'

Example when TSLA is subscribed (one symbol shown):

json
{
  "exchange": "binance",
  "market": "perp",
  "symbols": ["TSLAUSDT"],
  "count": 1,
  "symbol_meta": {
    "TSLAUSDT": {"instrument_type": "equity_perpetual", "underlying_symbol": "TSLA", "quote_asset": "USDT", "status": "trading"}
  },
  "metadata_status": "ready",
  "metadata_updated_at_ms": 1791936000000
}
FieldMeaning
symbol_meta[symbol].instrument_typeequity_perpetual identifies a verified stock perpetual. Other values: crypto_perpetual, commodity_perpetual, forex_perpetual, pre_ipo_perpetual, unclassified_tradfi_perpetual, unknown. Unreviewed equity-class instruments and ETFs must not be treated as verified stocks
underlying_symbolVerified stock ticker such as TSLA; null for other types or unknown identity
quote_assetQuote asset; supported stock contracts use USDT. null when unknown
statustrading, pending (not yet listed), paused, ended, or unknown
metadata_statusready, stale (expired or refresh failed), or unavailable (no usable directory yet). This is not candle readiness; stale metadata is not a current tradability guarantee
metadata_updated_at_msLast successful directory update in milliseconds; null when unknown

include_meta=true currently supports only binance:perp; other venues return 400. Metadata covers subscribed symbols only and adds no Kline or indicator numeric columns. The existing venue-level asset_class=crypto label does not classify each underlying instrument; use instrument_type instead.

  • Intervals: 1m / 5m / 15m / 1h / 4h / 1d. Query /api/intervals?exchange=binance&market=perp for enabled intervals and response caps.
  • OHLC uses contract trade prices. volume/quote_volume use upstream contract volume/notional, not cash-stock volume. These are not index-price or mark-price candles. There is no split/dividend adjustment or stitching with cash-stock history.
  • Cash-stock trading calendars do not stop the perpetual feed. Weekends and cash-market closures do not by themselves imply a contract trading halt. Distinguish trading status from candle freshness.
  • startTime/endTime still filter candle opening times in milliseconds. All three market-data endpoints automatically retrieve available history; see historical windows. They cannot create pre-listing data, fabricate gaps, or raise per-request caps.
  • Reuse /api/klines, /api/indicators and /api/chart after subscription. Unsubscribed symbols return 404; preparing data returns 503. Respect Retry-After.
  • Indicator and feature history, interval and continuity requirements still apply. CVD is an OHLCV-based estimate, not trade-by-trade aggressor volume. HMM supports 5m / 15m / 1h / 4h / 1d, not 1m. Newly listed contracts may have insufficient history; null is not a negative feature result.
  • Set signals:true for native features; optionally add include_forming:true to evaluate the unclosed final candle. Intrabar conditions can disappear. See feature signals for classification and confirmation times.

The examples below assume TSLAUSDT is subscribed:

bash
curl 'https://api.mobiusquant.ai/api/klines?exchange=binance&market=perp&symbol=TSLAUSDT&interval=5m&limit=100'

# Values and native features. Change the path to /api/chart for plotting.
curl -X POST 'https://api.mobiusquant.ai/api/indicators' \
  -H 'content-type: application/json' \
  -d '{"exchange":"binance","market":"perp","symbol":"TSLAUSDT","interval":"5m","limit":100,"signals":true,"include_forming":true,"calc":[{"name":"macd"},{"name":"rsi"},{"name":"cvd"},{"name":"hmm_regime"}]}'

Hyperliquid native perpetuals ​

Use exchange="hyperliquid", market="perp". Coverage is limited to the default USDC perpetual market; Hyperliquid spot and HIP-3 contracts are not supported.

  • Send canonical symbols such as BTCUSDC, ETHUSDC, or HYPEUSDC. 1000PEPEUSDC maps to native kPEPE. Do not send BTC, BTCUSDT, kPEPE, or DEX-prefixed names.
  • /api/markets/hyperliquid/perp/symbols lists contracts subscribed by this service, not every contract listed on the exchange. Unsubscribed contracts are not available for Kline queries or indicator calculations.
  • Supported intervals are 1m / 5m / 15m / 1h / 4h / 1d. Query /api/intervals?exchange=hyperliquid&market=perp for enabled intervals and request limits.
  • volume is the exchange-provided base-asset volume. quote_volume is estimated as volume × close, not an exact sum of traded notional. Prices and volumes use the contract's units; a 1000-prefixed contract must not be treated as a single-token quote.
  • startTime/endTime filter candle opening times in milliseconds, inclusive, without an additional history flag. The source only exposes its most recent 5,000 candles. Arbitrary historical dates are not guaranteed, and history access does not increase the endpoint's request allowance.
  • Use the same indicator, chart and feature-signal endpoints as for other supported crypto venues. HMM does not support 1m. CVD remains an OHLCV-based delta estimate, not trade-by-trade aggressor volume.
  • The forming candle can change. Read true/false/null according to the feature-signal guide; insufficient history is not equivalent to a feature being absent.
bash
# Discover subscribed symbols and enabled intervals.
curl 'https://api.mobiusquant.ai/api/markets/hyperliquid/perp/symbols'
curl 'https://api.mobiusquant.ai/api/intervals?exchange=hyperliquid&market=perp'

# Latest 100 BTC perpetual 5m candles.
curl 'https://api.mobiusquant.ai/api/klines?exchange=hyperliquid&market=perp&symbol=BTCUSDC&interval=5m&limit=100'

# MACD, RSI and CVD with native features. Use /api/chart for a chart response.
curl -X POST 'https://api.mobiusquant.ai/api/indicators' \
  -H 'content-type: application/json' \
  -d '{"exchange":"hyperliquid","market":"perp","symbol":"BTCUSDC","interval":"5m","limit":100,"signals":true,"calc":[{"name":"macd"},{"name":"rsi"},{"name":"cvd"}]}'

Gold spot ​

Use exchange=commodity, market=spot, symbol=XAUUSD. This is distinct from gold futures (commodity:futures / XAUF). Do not send XAU/USD, GC=F, or use forex:spot for gold spot.

  • Supported intervals: 5m, 15m, 30m, 1h, 4h, 1d. The minimum is 5m; gold spot 1m requests return 400, including Kline, indicator, chart and playbook requests.
  • Quotes update every 5 minutes, not tick-by-tick. A current candle can still change before it closes.
  • Each supported interval returns up to 1000 bars. Query /api/intervals?exchange=commodity&market=spot for the venue-specific limits; the unfiltered endpoint describes crypto.
  • Reuse /api/klines, /api/indicators and /api/chart. EMA, RSI, MACD and other price-based indicators are supported. A custom price-only playbook can use /api/analyze.
  • Prices are indicative mid-prices, not executable broker quotes. No actual trading volume is available: the two volume fields are 0 placeholders, with data_meta.volume_type="unavailable". Volume-dependent indicators such as CVD, VWAP and OBV return 400; the existing CVD-based market-pulse playbook is not suitable for gold spot.
  • Inspect data_meta.ready, stale, last_sync_ms, data_as_of_ms and last_bar_complete. Data not ready returns 503. Data older than 15 minutes is marked stale; latest-data queries are refused after 1 hour. Bounded historical queries can still return available history.
  • OHLCV timestamps are Unix milliseconds; chart time is in seconds. Daily candles open at 07:00 Australia/Sydney; 4h boundaries follow that local session clock, including daylight-saving changes.
bash
# Check health before requesting data.
curl 'https://api.mobiusquant.ai/api/health'

# Latest 100 gold spot 5m candles.
curl 'https://api.mobiusquant.ai/api/klines?exchange=commodity&market=spot&symbol=XAUUSD&interval=5m&limit=100'

# EMA and RSI on gold spot 5m candles.
curl -X POST 'https://api.mobiusquant.ai/api/indicators?explain=false' \
  -H 'content-type: application/json' \
  -d '{"exchange":"commodity","market":"spot","symbol":"XAUUSD","interval":"5m","limit":100,"calc":[{"name":"ema","params":{"period":20}},{"name":"rsi","params":{"period":14}}]}'

Natural-name lookup ​

The engine ships with a built-in natural-language → canonical mapping. Users say "Bitcoin" or "Tencent" — the engine resolves to BTCUSDT or 00700:

bash
curl -H "Authorization: Bearer mq_xxx" \
     "https://api.mobiusquant.ai/api/symbols/search?q=bitcoin"
# → [{ "canonical": "BTCUSDT", "exchange": "binance", "market": "perp", ... }]

The search endpoint also has a smartbox fallback — it can discover ANY A-share, HK, or US stock beyond the curated list. When gold spot is enabled, "黄金" resolves to commodity:spot / XAUUSD; gold futures remain commodity:futures / XAUF.

Full mapping: GET /api/symbols/builtin.

Symbol lists per venue ​

For symbol examples including Chinese company names, see the Chinese reference. Confirm current availability with /api/markets/{exchange}/{market}/symbols.

Companion endpoints ​

MethodPathPurpose
GET/api/marketsAll venues + WS health
GET/api/markets/{exchange}/{market}/symbolsSymbols on one venue
GET/api/intervalsSupported intervals and maximum returned bars
GET/api/klinesRaw OHLCV
GET/api/symbols/builtinNatural-name → canonical mapping table
GET/api/symbols/search?q=Fuzzy natural-language search (with smartbox fallback)
GET/api/healthPer-venue status (ok / degraded / dead / starting)
GET/api/derivatives/funding-ratesFunding rate history (Binance / Bybit / OKX)
GET/api/derivatives/open-interestOpen interest history (Binance)
GET/api/derivatives/long-short-ratioTop trader long/short ratio (Binance)
GET/api/derivatives/taker-ratioTaker buy/sell ratio (Binance)
GET/api/sentiment/fear-greedCrypto Fear & Greed Index

Full field-level reference: API Documentation. See also Derivatives & Sentiment for detailed endpoint documentation.

AI trading infrastructure