第一個請求
請把密鑰放在標頭中,URL 內的密鑰會被拒絕。寫入操作還必須具備請求簽名、一次性 Nonce 與冪等鍵。
curl -sS \
'https://mindaigold.com/api/v1/market/quote.php?symbol=XAU_USD' \
-H 'X-API-Key: mag_live_xxxxxxxxxxxx_your_secret'
伺服器對伺服器請求請使用 X-API-Key。Authorization: Bearer 也可承載 API 密鑰。
可用端點
市場情報與即時行情
/api/v1/market/instruments.phpmarket.read支援的外匯、貴金屬、加密永續合約與美股。
/api/v1/market/quote.php?symbol=XAU_USDmarket.read最新價格、買價、賣價、上游時間戳與來源。
/api/v1/market/candles.php?symbol=XAU_USD&timeframe=15m&limit=200market.read依時間遞增排列、支援多種週期的 OHLCV K 線。
/api/v1/market/stream-ticket.php?symbols=BTC-USDT-SWAPmarket.stream簽發一次性票證,建立已核准的即時 WebSocket 連線。
/api/v1/signals/latest.php?symbol=XAUUSD&lang=ensignals.read已發布的策略訊號,包含價位、信心值與到期時間。
/api/v1/news/latest.php?days=7&limit=30news.read黃金新聞、AI 情緒判讀與精簡摘要。
MT5 帳戶、訂單與持倉
/api/v1/trading/accounts.phpmt5.read已連結的 MT5 帳戶、連線狀態、餘額與保證金遙測。
/api/v1/trading/orders.phptrading.read已連結 MindAIGold 使用者名下的訂單。
/api/v1/trading/orders.phptrading.write驗證模擬訂單,或把已核准的實盤訂單送入 MT5 佇列。
/api/v1/trading/order-cancel.phptrading.write取消尚未傳送至 MT5 的已連結訂單。
/api/v1/trading/positions.phpmt5.read已連結 MT5 帳戶回報的即時持倉。
/api/v1/trading/position-control.phptrading.write排入平倉或修改停損/停利的保護性操作。
/api/v1/trading/deals.phpmt5.readMT5 成交歷史,包含損益、手續費與隔夜利息。
自動化交易
/api/v1/automation/status.phpautomation.read策略、啟用紀錄、已連結帳戶與自動化持倉。
/api/v1/automation/activate.phpautomation.write以模擬模式或另行核准的實盤模式啟用策略。
/api/v1/automation/control.phpautomation.write暫停、恢復或停止自己名下的自動化交易。
使用者、下線與佣金
/api/v1/partners/profile.phpusers.read已連結的合作夥伴使用者資料;聯絡資料預設遮罩。
/api/v1/referrals/users.php?depth=1referrals.read已核准層級內的代理下線樹。
/api/v1/referrals/commissions.phpcommissions.read已連結代理的佣金紀錄與返佣總額。
/api/v1/account/usage.phpaccount.read你自己的本月配額與最近 30 天用量。
即時 WebSocket 行情
使用 market.stream 取得短效、一次性票證,並在 60 秒內連線至回傳的 WebSocket URL。連線為唯讀,商品數量依合作方案限制。
const ticket = await fetch(
'https://mindaigold.com/api/v1/market/stream-ticket.php?symbols=BTC-USDT-SWAP',
{ headers: { 'X-API-Key': process.env.MINDAIGOLD_API_KEY } }
).then(response => response.json());
const socket = new WebSocket(ticket.data.websocket_url);
socket.onmessage = event => console.log(JSON.parse(event.data));經核准的加密貨幣即時行情可使用。外匯與貴金屬會保持鎖定,直到上游再分發權利完成書面確認。
簽名寫入操作
交易與自動化寫入只接受伺服器對伺服器請求。請對原始 JSON 本文簽名,Nonce 不得重複;同一邏輯操作重試時必須沿用同一個 Idempotency-Key。
timestamp + "\n" + nonce + "\n" +
method.toUpperCase() + "\n" + requestPath + "\n" +
sha256(rawJsonBody)
X-MAG-Signature = HMAC-SHA256(apiKey, canonicalRequest)X-MAG-時間stamp目前 Unix 秒數,必須落在系統設定的簽名時間窗內。X-MAG-Nonce每次請求都不同的 16–80 字元值。Idempotency-Key每個邏輯操作固定的 16–100 字元值,只能在重試相同操作時沿用。實盤請求仍須通過已連結使用者、合作夥伴審批、固定 IP、實盤授權,以及既有 MT5、行情新鮮度、風控與全域暫停檢查。測試密鑰與僅模擬合作夥伴絕不會送出實盤訂單。
限制與證據
每個回應都有 Request ID。速率與月配額標頭可讓串接程式在被拒絕前主動降速。
X-Rate限價-限價每分鐘限制X-Monthly-Quota-Remaining每月配額X-Request-ID請求紀錄穩定的錯誤格式
錯誤固定回傳機器可讀代碼、訊息,以及與回應標頭一致的 Request ID。
missing_api_key / invalid_api_key401憑證缺失、無效、已吊銷或已到期。
insufficient_scope403密鑰不包含此端點所需的權限。
origin_denied / ip_denied403瀏覽器來源或客戶端 IP 不在允許清單。
rate_limit_exceeded429已達每分鐘速率限制。
monthly_quota_exceeded429已達合作夥伴每月配額。
signature_required / invalid_signature401缺少寫入簽名標頭,或簽名內容與請求不一致。
replayed_request / idempotency_conflict409Nonce 被重複使用,或冪等鍵被用於不同內容。
live_trading_paused409平台的 MT5 實盤派送總開關目前為暫停。
{
"error": {
"code": "insufficient_scope",
"message": "This key does not have the required scope: signals.read"
},
"meta": { "request_id": "0f1e2d3c4b5a69788796a5b4" }
}正式環境開通流程
合作夥伴身分、使用情境與流量控制通過審核後才會開通。
- 01建立合作夥伴工作區,並連結負責人的帳戶。
- 02核准權限、行情類別、交易模式、下線層級、固定 IP 或瀏覽器來源,以及配額。
- 03一次性簽發密鑰,完成模擬與簽名測試後,只核准實際需要的正式能力。