LunAI SeleneQuant Signal Intelligence

Developer API

LunAI Selene API 文件

使用 API key 讀取即時訊號,讓你的本地 Binance 自動交易工具或 AI Agent 不需要打開網站也能同步 Selene 訊號。

只讀權限

API 不會替你下單,也不會接觸你的 Binance 憑證。

即時與補漏

SSE 收即時事件,REST events 用 after_event_id 補漏。

雙格式

bot 格式給程式交易,agent 格式給 AI Agent 讀取。

Authentication
API key 需要先在帳戶頁申請,等待管理員審核為 active。

每個 request 都帶 Bearer token。Key 只會顯示一次;如果遺失,請撤銷後重新申請。

Authorization: Bearer ls_live_xxxxxxxxxxxxxxxxx

也支援 `X-Lunai-Api-Key` header,但建議優先使用 Authorization。

Endpoints
所有 v1 API 都是 read-only,且只會回傳你有訂閱權限的幣種。
GET https://selene.lunai.club/api/v1/me
GET https://selene.lunai.club/api/v1/subscriptions
GET https://selene.lunai.club/api/v1/signals/latest?limit=50&format=bot
GET https://selene.lunai.club/api/v1/signals/open?format=bot
GET https://selene.lunai.club/api/v1/signals/{signal_id}?format=agent
GET https://selene.lunai.club/api/v1/events?after_event_id={last_event_id}&format=bot
GET https://selene.lunai.club/api/v1/stream?format=bot
Trading Bot Format
適合完全由程式規則構建的本地自動交易工具。

使用 `event_id` 當作冪等鍵。你的 bot 每次處理事件前先檢查本地是否已處理過同一個 `event_id`,就能避免重複下單或重複撤單。

{
  "schema_version": "v1",
  "format": "trading_bot",
  "event_id": "4b9c...",
  "signal_id": "9d2a...",
  "event_type": "new",
  "status": "waiting",
  "symbol": "TAO/USDT:USDT",
  "binance_symbol": "TAOUSDT",
  "timeframe": "1h",
  "side": "long",
  "entry": 253.344,
  "tp": 259.64715,
  "sl": 250.29048,
  "tp_distance_pct": 2.488,
  "sl_distance_pct": 1.205,
  "rr": 2.065,
  "event_time": "2026-06-14T15:00:00+00:00"
}
AI Agent Format
適合讓 LLM / Agent 讀懂訊號目的與下一步行動。
GET /api/v1/events?format=agent

{
  "schema_version": "v1-agent",
  "format": "ai_agent",
  "intent": "new_signal",
  "action_hint": "prepare_or_place_entry_order",
  "summary": "TAOUSDT LONG signal is waiting for entry...",
  "dedupe_key": "4b9c...",
  "canonical_signal": {
    "binance_symbol": "TAOUSDT",
    "side": "long",
    "entry": 253.344,
    "tp": 259.64715,
    "sl": 250.29048
  },
  "risk_notes": ["Use event_id as the idempotency key..."]
}
SSE 即時串流
適合長時間運行的 bot。斷線後請用 /events 補漏。
curl -N \
  -H "Authorization: Bearer $LUNAI_API_KEY" \
  "https://selene.lunai.club/api/v1/stream?format=bot"
Python 範例
輪詢 events 是最穩的第一版接法。
import os
import requests

BASE = "https://selene.lunai.club"
KEY = os.environ["LUNAI_API_KEY"]
headers = {"Authorization": f"Bearer {KEY}"}
last_event_id = None

while True:
    params = {"format": "bot", "limit": 100}
    if last_event_id:
        params["after_event_id"] = last_event_id
    data = requests.get(f"{BASE}/api/v1/events", headers=headers, params=params, timeout=20).json()
    for event in data["items"]:
        # 1. check event["event_id"] in your local processed table
        # 2. place / cancel / mark order according to event["event_type"]
        print(event["event_type"], event["binance_symbol"], event["side"])
        last_event_id = event["event_id"]
Node.js 範例
適合放進自己的 worker 或交易服務。
const base = "https://selene.lunai.club";
const headers = { Authorization: `Bearer ${process.env.LUNAI_API_KEY}` };

const res = await fetch(`${base}/api/v1/signals/open?format=bot`, { headers });
const data = await res.json();

for (const signal of data.items) {
  console.log(signal.binance_symbol, signal.event_type, signal.entry, signal.tp, signal.sl);
}
訊號生命週期
請讓你的 bot 明確處理每一種 event_type。

new

等待進場,可掛 entry / TP / SL

entry

策略確認進場

tp

止盈結案

sl

止損結案

cancel

未進場前取消,應撤掉掛單

錯誤碼
API key 與會員權限會同時檢查。
401 Missing API key / Invalid API key
403 API key is not active / Member access is not active
404 Signal not found / Symbol is not available for this API key
422 Query or payload validation error