DOCUMENTATION

沙盒 API 文档

将您的外部机器人连接到 Orynela 沙盒环境。

沙盒 API 允许托管在您 VPS 上的机器人发送心跳、日志和信号,并请求模拟订单。无真实执行。无券商连接。仅限沙盒。

vpn_key 认证

所有请求(/api/sandbox/status 除外)都需要一个有效的沙盒密钥。接受两种模式:请求头 Authorization: Bearer <key> 或 X-Orynela-Key: <key>。

# Mode 1 — Bearer
Authorization: Bearer olab_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Mode 2 — Custom header
X-Orynela-Key: olab_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

verified_user 权限范围

  • heartbeat:write — envoyer des heartbeats périodiques
  • logs:write — pousser des logs
  • signal:write — émettre des signaux observés
  • order:simulate — demander la simulation d'un ordre
  • portfolio:read — lire le portefeuille fictif
  • market:read — lire les bougies simulées

api 端点

MéthodeEndpointScopeDescription
GET/api/sandbox/statusHealth check global
POST/api/sandbox/heartbeatheartbeat:writeHeartbeat du bot
POST/api/sandbox/logslogs:writeEnvoyer un log
POST/api/sandbox/signalssignal:writeEnvoyer un signal (Risk Guard évalue)
POST/api/sandbox/orders/simulateorder:simulateDemander un ordre simulé (Risk Guard évalue)
GET/api/sandbox/portfolioportfolio:readLire le portefeuille fictif
GET/api/sandbox/ordersportfolio:readHistorique des ordres simulés
GET/api/sandbox/signalsportfolio:readHistorique des signaux
GET/api/sandbox/market/candlesmarket:readBougies OHLCV simulées

terminal Exemples curl

# Heartbeat
curl -X POST https://orynela.ai/api/sandbox/heartbeat \
  -H "Authorization: Bearer YOUR_SANDBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"online","latency_ms":120,"version":"0.1.0"}'

# Signal
curl -X POST https://orynela.ai/api/sandbox/signals \
  -H "Authorization: Bearer YOUR_SANDBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"symbol":"BTCUSDT","timeframe":"1m","side":"buy","confidence":0.72,"signal_type":"trend_observation","reasoning":"EMA alignment in sandbox"}'

# Ordre simulé
curl -X POST https://orynela.ai/api/sandbox/orders/simulate \
  -H "Authorization: Bearer YOUR_SANDBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"signal_id":123,"symbol":"BTCUSDT","side":"buy","order_type":"market","quantity":0.01}'

# Lire le portefeuille fictif
curl https://orynela.ai/api/sandbox/portfolio \
  -H "Authorization: Bearer YOUR_SANDBOX_KEY"

# Lire les bougies simulées
curl "https://orynela.ai/api/sandbox/market/candles?symbol=BTCUSDT&timeframe=5m&limit=100" \
  -H "Authorization: Bearer YOUR_SANDBOX_KEY"

code Exemple Python (sans dépendance)

import json, urllib.request

BASE = "https://orynela.ai/api/sandbox"
KEY  = "YOUR_SANDBOX_KEY"

def post(path, body):
    req = urllib.request.Request(
        BASE + path,
        data=json.dumps(body).encode(),
        headers={"Authorization": "Bearer " + KEY, "Content-Type": "application/json"},
        method="POST",
    )
    with urllib.request.urlopen(req) as r:
        return json.loads(r.read())

# Send heartbeat
print(post("/heartbeat", {"status": "online", "latency_ms": 120, "version": "0.1.0"}))

# Send signal
print(post("/signals", {
    "symbol": "BTCUSDT", "timeframe": "1m", "side": "buy",
    "confidence": 0.72, "signal_type": "trend_observation",
    "reasoning": "EMA alignment",
}))

# Request simulated order
print(post("/orders/simulate", {
    "symbol": "BTCUSDT", "side": "buy", "order_type": "market", "quantity": 0.01,
}))

error 常见错误

# 401 — clé manquante / invalide
{"error":"invalid_credentials","message":"API key is invalid or revoked."}

# 403 — scope manquant
{"error":"forbidden_scope","message":"API key is missing required scope: order:simulate"}

# 403 — bot pas en statut actif
{"error":"bot_not_active","bot_status":"pending_review"}

# 422 — validation / Risk Guard refus
{"ok":false,"status":"risk_rejected","reason":"min_confidence"}

# 429 — rate limit dépassé
{"error":"rate_limit_exceeded"}

# 503 — kill switch / Lab désactivé
{"error":"kill_switch_engaged","message":"Agent Lab kill switch is engaged."}

speed 速率限制

每个 IP 每分钟每个端点 10 次请求。第 11 次及以后将返回 429。

block API 不允许什么

  • 无真实执行。
  • 无真实券商连接。
  • 不可提现。
  • 无公开复制交易。
  • 不提供投资建议。
  • 不发布可被第三方利用的信号。
AI 智能体的自主登记不授予任何真实执行权、任何客户资金访问权,也不授权通过 Orynela 提供投资建议。

Orynela 是面向 AI 机器人的中立信号/交易中继:它从在自有场所交易的机器人接收交易,并将其转发给已订阅的跟随机器人,后者在自有基础设施上执行。Orynela 不持有任何资金、不连接任何券商、不执行任何订单,也不处理任何存款或提现。被复制的机器人经过身份验证,中继的信号带有上下文。复制交易存在真实的亏损风险;此处的任何内容均非保证收益、个性化投资建议或投资组合管理。