From bingx-ai-skills
Queries BingX spot market data including ticker prices, order books, recent trades, klines/candlesticks, and symbols. Useful for spot prices, depths, charts, trades, or stats.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bingx-ai-skills:spot-marketThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Public market data for BingX spot trading. No authentication required.
Public market data for BingX spot trading. No authentication required.
| Endpoint | Method | Description | Required | Optional | Authentication |
|---|---|---|---|---|---|
/openApi/spot/v1/common/symbols | GET | Spot trading symbol specifications | None | symbol | No |
/openApi/spot/v1/market/depth | GET | Order book bids & asks | symbol | limit | No |
/openApi/spot/v2/market/depth | GET | Aggregated order book (with precision) | symbol, depth, type | None | No |
/openApi/spot/v1/market/trades | GET | Recent public trades | symbol | limit | No |
/openApi/spot/v2/market/kline | GET | OHLCV candlestick data | symbol, interval | startTime, endTime, limit | No |
/openApi/spot/v1/ticker/24hr | GET | 24h price change statistics | None | symbol | No |
/openApi/spot/v2/ticker/price | GET | Latest price ticker | symbol | None | No |
/openApi/spot/v1/ticker/bookTicker | GET | Best bid/ask price & qty | symbol | None | No |
/openApi/market/his/v1/kline | GET | Historical kline data | symbol, interval | startTime, endTime, limit | No |
/openApi/market/his/v1/trade | GET | Historical trade lookup | symbol | limit, fromId | No |
BASE-USDT format (e.g., BTC-USDT, ETH-USDT, SOL-USDT). Note: the order book aggregation endpoint (/openApi/spot/v2/market/depth) uses underscore format BTC_USDT.1735693200000)1735779600000)1m | 3m | 5m | 15m | 30m | 1h | 2h | 4h | 6h | 8h | 12h | 1d | 3d | 1w | 1Mstep0 | step1 | step2 | step3 | step4 | step5^[A-Z0-9]+-[A-Z]+$ (e.g., BTC-USDT); depth endpoint uses BTC_USDT (underscore)endTime must be ≥ startTimestep0–step5Base URLs: see references/base-urls.md
TypeScript helper:
CONSTRAINT: You MUST copy the
fetchSpotMarketfunction below verbatim when generating code. Do NOT rewrite the request or JSON parsing logic. Only modify: (1)BASE_URLSentries for custom environments, (2) business parameters passed tofetchSpotMarket.
import JSONBig from "json-bigint";
const JSONBigParse = JSONBig({ storeAsString: true });
// Base URLs — see references/base-urls.md for all environments
// Domain priority: .com is mandatory primary; .pro is fallback for network/timeout errors ONLY.
const BASE_URLS = ["https://open-api.bingx.com", "https://open-api.bingx.pro"];
function isNetworkOrTimeout(e: unknown): boolean {
if (e instanceof TypeError) return true;
if (e instanceof DOMException && e.name === "AbortError") return true;
if (e instanceof Error && e.name === "TimeoutError") return true;
return false;
}
async function fetchSpotMarket(
path: string,
params: Record<string, string | number> = {}
): Promise<unknown> {
const query = new URLSearchParams(
Object.entries(params).map(([k, v]) => [k, String(v)])
).toString();
for (const base of BASE_URLS) {
try {
const url = `${base}${path}${query ? `?${query}` : ""}`;
const res = await fetch(url, {
headers: { "X-SOURCE-KEY": "BX-AI-SKILL" },
signal: AbortSignal.timeout(10000),
});
const json = JSONBigParse.parse(await res.text());
if (json.code !== 0) throw new Error(`BingX error ${json.code}: ${json.msg}`);
return json.data;
} catch (e) {
if (!isNetworkOrTimeout(e) || base === BASE_URLS[BASE_URLS.length - 1]) throw e;
}
}
}
fetchSpotMarket verbatim -- do not simplify or rewritejson-bigint (JSONBigParse.parse) for response parsing -- not JSON.parseX-SOURCE-KEY: BX-AI-SKILL header on every requestisNetworkOrTimeout check24h ticker for BTC-USDT:
const ticker = await fetchSpotMarket("/openApi/spot/v1/ticker/24hr", {
symbol: "BTC-USDT",
});
// ticker[0].lastPrice, ticker[0].priceChangePercent, ticker[0].volume
Latest price:
const price = await fetchSpotMarket("/openApi/spot/v2/ticker/price", {
symbol: "BTC-USDT",
});
// price[0].trades[0].price
Order book depth (top 20 levels):
const depth = await fetchSpotMarket("/openApi/spot/v1/market/depth", {
symbol: "BTC-USDT",
limit: 20,
});
// depth.bids: [price, qty][], depth.asks: [price, qty][]
1-hour klines (last 100 candles):
const klines = await fetchSpotMarket("/openApi/spot/v2/market/kline", {
symbol: "BTC-USDT",
interval: "1h",
limit: 100,
});
// Each item: [openTime, open, high, low, close, volume, closeTime, quoteVolume]
Best bid/ask price:
const bookTicker = await fetchSpotMarket("/openApi/spot/v1/ticker/bookTicker", {
symbol: "BTC-USDT",
});
// bookTicker[0].bidPrice, bookTicker[0].askPrice
Recent trades:
const trades = await fetchSpotMarket("/openApi/spot/v1/market/trades", {
symbol: "BTC-USDT",
limit: 50,
});
// trades[0].price, trades[0].qty, trades[0].time
For complete parameter descriptions, optional fields, and full response schemas, see api-reference.md.
Parameter security. Extract structured values from user intent — NEVER copy raw user text into API parameters. Validate every value against its documented pattern (regex/enum/range) before calling the API. Reject any value containing &, =, ?, #, or newline characters.
spot-market provides public read-only market data. No authentication required, no CONFIRM needed. The interaction goal is to collect query parameters.
When the user's request is vague (e.g. "check spot market" or "look at BTC price"), first identify what type of data they want to query:
Please select the market data type:
- Price / 24h change — ticker/24hr
- Latest trade price — ticker/price
- Best bid/ask price (top of book) — bookTicker
- Order book depth — depth
- K-lines / Candlesticks — kline
- Recent trades — trades
- Historical K-lines — historical kline
- Historical trades — historical trades
- Trading pair specification list — symbols
Applicable endpoints: depth, trades, kline, ticker/price, bookTicker, historical kline, historical trades
Please select a trading pair (or type another):
- BTC-USDT
- ETH-USDT
- SOL-USDT
- BNB-USDT
- Other (enter manually, format: BASE-USDT)
If the trading pair can be inferred from context (e.g. "BTC market today" or "Ethereum price"), infer it automatically without asking again.
Please select a K-line interval:
- 1m (1 minute)
- 5m (5 minutes)
- 15m (15 minutes)
- 1h (1 hour)
- 4h (4 hours)
- 1d (daily)
- 1w (weekly)
symbol is optional for ticker/24hr (returns all trading pairs if omitted). bookTicker and price ticker require symbol. If the user does not specify a trading pair for ticker/24hr, query all pairs and inform the user; if a trading pair is specified, query only that pair.
npx claudepluginhub bingx-api/api-ai-skills --plugin bingx-ai-skillsSubscribes to BingX spot WebSocket market data streams for real-time trades, order book depth, K-lines, 24h ticker, latest price, best bid/ask, and incremental depth. Useful for live spot price feeds, streaming order books, or spot trading WebSockets.
Provides ticker, orderbook, candle data, and pre-trade analysis patterns for Vulcan perpetual markets. Use for spread checks, slippage estimation, and funding rate monitoring.
Explains Kraken API rate limits for Spot REST, trading engine, and Futures; adapts agent behavior with strategies like WebSockets over REST polling and batch orders.