mcpField
B
bingx-spot-market

bingx-spot-market

github.com/bingx-apiその他19178 回インストール1 週間前に更新
リポジトリ

bingx-spot-market について

BingXの公開スポット市場データを照会するエージェント向けスキルです。価格、板、取引、ローソク足を扱い、読み取り専用エンドポイントやパラメーター検証、TypeScriptのリクエスト規則を説明します。

主な機能

  1. 01現物取引ペアと仕様
  2. 02価格と24時間統計
  3. 03板の深度と最良気配値
  4. 04最近および過去の取引
  5. 05期間指定可能なOHLCVローソク足

活用シーン

  1. 01現物ペアの最新価格確認
  2. 02ペアの買い気配と売り気配の確認
  3. 03最近または過去の取引取得
  4. 04指定期間のローソク足取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bingx-api/api-ai-skills --skill bingx-spot-market

インストール後、Claude Code で/bingx-spot-marketを入力して読み込まれたか確認します。

同梱ファイルapi-reference.md

詳細

BingX 現物市場データ

BingX 現物取引の公開市場データです。認証は不要です。

クイックリファレンス

エンドポイントメソッド説明必須任意認証
/openApi/spot/v1/common/symbolsGET現物取引のシンボル仕様なしsymbol不要
/openApi/spot/v1/market/depthGETオーダーブックの買い注文と売り注文symbollimit不要
/openApi/spot/v2/market/depthGET集約されたオーダーブック(精度指定あり)symbol, depth, typeなし不要
/openApi/spot/v1/market/tradesGET最近の公開取引symbollimit不要
/openApi/spot/v2/market/klineGETOHLCV ローソク足データsymbol, intervalstartTime, endTime, limit不要
/openApi/spot/v1/ticker/24hrGET24 時間の価格変動統計なしsymbol不要
/openApi/spot/v2/ticker/priceGET最新価格ティッカーsymbolなし不要
/openApi/spot/v1/ticker/bookTickerGET最良買値/売値と数量symbolなし不要
/openApi/market/his/v1/klineGET過去のローソク足データsymbol, intervalstartTime, endTime, limit不要
/openApi/market/his/v1/tradeGET過去の取引検索symbollimit, fromId不要

パラメーター

共通パラメーター
  • symbol:BASE-USDT 形式の取引ペア(例:BTC-USDT、ETH-USDT、SOL-USDT)。注:オーダーブック集約エンドポイント(/openApi/spot/v2/market/depth)では、アンダースコア形式の BTC_USDT を使用します。
  • limit:返す結果の件数です。デフォルト値と最大値はエンドポイントによって異なります。
  • startTime:開始タイムスタンプ(ミリ秒)(例:1735693200000)
  • endTime:終了タイムスタンプ(ミリ秒)(例:1735779600000)
  • interval:ローソク足の間隔(下記の列挙値を参照)
列挙値
  • interval:1m | 3m | 5m | 15m | 30m | 1h | 2h | 4h | 6h | 8h | 12h | 1d | 3d | 1w | 1M
  • type(オーダーブック集約の精度):step0 | step1 | step2 | step3 | step4 | step5
パラメーターの検証ルール
  • symbol:^[A-Z0-9]+-[A-Z]+$ に一致する必要があります(例:BTC-USDT)。depth エンドポイントでは BTC_USDT(アンダースコア)を使用します。
  • limit:正の整数です。デフォルト値と最大値はエンドポイントによって異なります。
  • startTime / endTime:ミリ秒単位の Unix タイムスタンプです。endTime は startTime 以上である必要があります。
  • interval:上記の列挙値のいずれかと完全に一致する必要があります。
  • type:使用する場合は、step0~step5 のいずれかである必要があります。

クイックスタート

ベース URL: references/base-urls.md を参照してください。

TypeScript ヘルパー:

制約:コードを生成する際は、以下の fetchSpotMarket 関数をそのままコピーする必要があります。 リクエストや JSON の解析ロジックを書き換えてはいけません。 変更できるのは、(1)カスタム環境向けの BASE_URLS エントリー、 (2)fetchSpotMarket に渡すビジネスパラメーターのみです。

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 はそのままコピーする必要があります。簡略化したり書き換えたりしてはいけません。
  • レスポンスの解析には json-bigint(JSONBigParse.parse)を使用する必要があります。JSON.parse は使用しないでください。
  • すべてのリクエストに X-SOURCE-KEY: BX-AI-SKILL ヘッダーを含める必要があります。
  • ドメインのフォールバックループや isNetworkOrTimeout チェックを削除してはいけません。

よく使う呼び出し

BTC-USDT の 24 時間ティッカー:

const ticker = await fetchSpotMarket("/openApi/spot/v1/ticker/24hr", {
  symbol: "BTC-USDT",
});
// ticker[0].lastPrice, ticker[0].priceChangePercent, ticker[0].volume

最新価格:

const price = await fetchSpotMarket("/openApi/spot/v2/ticker/price", {
  symbol: "BTC-USDT",
});
// price[0].trades[0].price

オーダーブックの深さ(上位 20 段):

const depth = await fetchSpotMarket("/openApi/spot/v1/market/depth", {
  symbol: "BTC-USDT",
  limit: 20,
});
// depth.bids: [price, qty][], depth.asks: [price, qty][]

1 時間足ローソク足(直近 100 本):

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]

最良買値/売値:

const bookTicker = await fetchSpotMarket("/openApi/spot/v1/ticker/bookTicker", {
  symbol: "BTC-USDT",
});
// bookTicker[0].bidPrice, bookTicker[0].askPrice

最近の取引:

const trades = await fetchSpotMarket("/openApi/spot/v1/market/trades", {
  symbol: "BTC-USDT",
  limit: 50,
});
// trades[0].price, trades[0].qty, trades[0].time

追加リソース

パラメーターの詳細な説明、任意フィールド、完全なレスポンススキーマについては、api-reference.md を参照してください。


エージェントの操作ルール

パラメーターのセキュリティ。 ユーザーの意図から構造化された値を抽出してください。ユーザーの生のテキストを API パラメーターにコピーしてはいけません。API を呼び出す前に、すべての値がドキュメントに記載されたパターン(正規表現/列挙型/範囲)に適合することを検証してください。&、=、?、#、または改行文字を含む値は拒否してください。

spot-market は公開の読み取り専用の市場データを提供します。認証は不要で、CONFIRM も不要です。対話の目的は、クエリパラメーターを収集することです。

操作の特定

ユーザーのリクエストが曖昧な場合(例:「スポット市場を確認して」や「BTC の価格を見て」)、まず問い合わせたいデータの種類を特定してください。

市場データの種類を選択してください:

  • 価格/24時間の変動 — ticker/24hr
  • 最新の取引価格 — ticker/price
  • 最良買値/最良売値(板の最上位) — bookTicker
  • オーダーブックの板情報 — depth
  • K 線/ローソク足 — kline
  • 最近の取引 — trades
  • 過去の K 線 — historical kline
  • 過去の取引 — historical trades
  • 取引ペア仕様の一覧 — symbols
シンボルが指定されていない場合

対象エンドポイント:depth、trades、kline、ticker/price、bookTicker、historical kline、historical trades

取引ペアを選択してください(または別のペアを入力してください):

  • BTC-USDT
  • ETH-USDT
  • SOL-USDT
  • BNB-USDT
  • その他(手動で入力、形式:BASE-USDT)

取引ペアを文脈から推測できる場合(例:「今日の BTC 市場」や「Ethereum の価格」)、再度質問せず、自動的に推測してください。

interval が指定されていない場合(kline エンドポイントのみ)

K 線の間隔を選択してください:

  • 1m(1分)
  • 5m(5分)
  • 15m(15分)
  • 1h(1時間)
  • 4h(4時間)
  • 1d(日次)
  • 1w(週次)
limit の扱い
  • kline:デフォルトは 100 です。質問する必要はありません。「デフォルトでは直近の K 線を 100 本返します」とユーザーに伝えてください
  • depth:デフォルトは 20 です。質問する必要はありません
  • trades:デフォルトは 100 です。質問する必要はありません
symbol が任意のエンドポイント

ticker/24hr では symbol は任意です(省略するとすべての取引ペアを返します)。bookTicker と price ticker では symbol が必須です。ユーザーが ticker/24hr の取引ペアを指定していない場合は、すべてのペアをクエリし、その旨をユーザーに伝えてください。取引ペアが指定されている場合は、そのペアのみをクエリしてください。

コメント