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 class | Venue | Symbols | Supported intervals |
|---|---|---|---|
| Crypto | binance:spot | 70 | 1m 5m 15m 1h 4h 1d |
| Crypto / stock and other perpetuals | binance:perp | Query discovery endpoint | 1m 5m 15m 1h 4h 1d |
bybit:spot | 70 | 1m 5m 15m 1h 4h 1d | |
bybit:perp | 70 | 1m 5m 15m 1h 4h 1d | |
okx:spot | 70 | 1m 5m 15m 1h 4h 1d | |
okx:perp | 50 | 1m 5m 15m 1h 4h 1d | |
hyperliquid:perp | Query discovery endpoint | 1m 5m 15m 1h 4h 1d | |
| A-shares | stock:cn | 32 | 1m 5m 15m 30m 1h 1d |
| Hong Kong | stock:hk | 20 | 1h 1d |
| US stocks | stock:us | 37 | 1h 1d |
| Forex | forex:spot | 10 | 1h 1d |
| Commodity futures | commodity:futures | 7 | 1h 1d |
| Gold spot | commodity:spot | 1 | 5m 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:
# 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/symbolsHistorical 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:
{
"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
limitinterval 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_historyflag 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:
| HTTP | Code | Action |
|---|---|---|
| 404 | symbol_not_subscribed | Check the subscribed symbol list |
| 404 | history_not_available | No candles are available in the selected window |
| 503 | history_preparing | Retry the same request after Retry-After |
| 503 | history_busy | Respect Retry-After and reduce concurrent windows |
| 503 | history_upstream_unavailable | The 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
| Venue | Form | Examples |
|---|---|---|
| Crypto | {BASE}{QUOTE} | BTCUSDT, BTCUSDC, 1000PEPEUSDT |
| Binance stock perpetuals | Full contract symbol on binance:perp | TSLAUSDT, NVDAUSDT |
stock:cn | 6-digit bare code (no sh / sz / .SS suffix) | 600519, 000333, 300750 |
stock:hk | 5-digit with leading zero | 00700, 09988 |
stock:us | Bare ticker | AAPL, NVDA, TSLA |
forex:spot | 6-letter concatenation | EURUSD, USDJPY, GBPUSD |
commodity:futures | Futures canonical code | XAUF, XAGF, WTIUSD |
commodity:spot | Gold spot canonical code | XAUUSD |
Send the canonical value in API requests. The native examples below are not valid request symbols:
| Native | Canonical |
|---|---|
BTC-USDT-SWAP (OKX perp) | BTCUSDT |
BTCPERP (Bybit USDC perp) | BTCUSDC |
kPEPE (Hyperliquid) | 1000PEPEUSDC |
1000PEPEUSDT (Binance memecoin) | 1000PEPEUSDT (already canonical) |
00700.HK | 00700 |
600519.SS | 600519 |
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:
curl 'https://api.mobiusquant.ai/api/markets/binance/perp/symbols?include_meta=true'Example when TSLA is subscribed (one symbol shown):
{
"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
}| Field | Meaning |
|---|---|
symbol_meta[symbol].instrument_type | equity_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_symbol | Verified stock ticker such as TSLA; null for other types or unknown identity |
quote_asset | Quote asset; supported stock contracts use USDT. null when unknown |
status | trading, pending (not yet listed), paused, ended, or unknown |
metadata_status | ready, 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_ms | Last 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=perpfor enabled intervals and response caps. - OHLC uses contract trade prices.
volume/quote_volumeuse 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/endTimestill 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/indicatorsand/api/chartafter subscription. Unsubscribed symbols return404; preparing data returns503. RespectRetry-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, not1m. Newly listed contracts may have insufficient history;nullis not a negative feature result. - Set
signals:truefor native features; optionally addinclude_forming:trueto evaluate the unclosed final candle. Intrabar conditions can disappear. See feature signals for classification and confirmation times.
The examples below assume TSLAUSDT is subscribed:
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, orHYPEUSDC.1000PEPEUSDCmaps to nativekPEPE. Do not sendBTC,BTCUSDT,kPEPE, or DEX-prefixed names. /api/markets/hyperliquid/perp/symbolslists 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=perpfor enabled intervals and request limits. volumeis the exchange-provided base-asset volume.quote_volumeis estimated asvolume × close, not an exact sum of traded notional. Prices and volumes use the contract's units; a1000-prefixed contract must not be treated as a single-token quote.startTime/endTimefilter 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/nullaccording to the feature-signal guide; insufficient history is not equivalent to a feature being absent.
# 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 spot1mrequests 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=spotfor the venue-specific limits; the unfiltered endpoint describes crypto. - Reuse
/api/klines,/api/indicatorsand/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
0placeholders, withdata_meta.volume_type="unavailable". Volume-dependent indicators such as CVD, VWAP and OBV return 400; the existing CVD-basedmarket-pulseplaybook is not suitable for gold spot. - Inspect
data_meta.ready,stale,last_sync_ms,data_as_of_msandlast_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
timeis in seconds. Daily candles open at 07:00 Australia/Sydney; 4h boundaries follow that local session clock, including daylight-saving changes.
# 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:
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
| Method | Path | Purpose |
|---|---|---|
| GET | /api/markets | All venues + WS health |
| GET | /api/markets/{exchange}/{market}/symbols | Symbols on one venue |
| GET | /api/intervals | Supported intervals and maximum returned bars |
| GET | /api/klines | Raw OHLCV |
| GET | /api/symbols/builtin | Natural-name → canonical mapping table |
| GET | /api/symbols/search?q= | Fuzzy natural-language search (with smartbox fallback) |
| GET | /api/health | Per-venue status (ok / degraded / dead / starting) |
| GET | /api/derivatives/funding-rates | Funding rate history (Binance / Bybit / OKX) |
| GET | /api/derivatives/open-interest | Open interest history (Binance) |
| GET | /api/derivatives/long-short-ratio | Top trader long/short ratio (Binance) |
| GET | /api/derivatives/taker-ratio | Taker buy/sell ratio (Binance) |
| GET | /api/sentiment/fear-greed | Crypto Fear & Greed Index |
Full field-level reference: API Documentation. See also Derivatives & Sentiment for detailed endpoint documentation.