API Documentation

Programmatic access to MoneyGlow signals, performance data, and system status.

API access requires an API tier subscription ($199/month).

Authentication

All API requests require authentication via API key. Generate keys in your dashboard settings.

bash
# Using Authorization header (recommended)
curl -H "Authorization: Bearer mg_live_your_api_key_here" \
  https://moneyglow.net/api/v1/signals

# Using X-API-Key header
curl -H "X-API-Key: mg_live_your_api_key_here" \
  https://moneyglow.net/api/v1/signals

API keys start with mg_live_. Keep them secret. Revoke compromised keys immediately.

Rate Limits

Limit

1,000 req/hour

Window

Sliding 1 hour

Rate limit info is included in response headers:

http
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1709251200

429 responses include a Retry-After header in seconds.

Endpoints

GET/api/v1/signals

Retrieve AI-scored trading signals

ParameterTypeDefaultDescription
statusstringallFilter by status: 'executed', 'pending', 'expired', or 'all'
limitinteger50Results per page (1-100)
offsetinteger0Pagination offset
symbolstring-Filter by symbol (e.g. EURUSD, XAUUSD)
min_scoreinteger0Minimum combined AI score (0-100)
sinceISO 8601-Only signals after this timestamp
bash
curl -H "Authorization: Bearer mg_live_xxx" \
  "https://moneyglow.net/api/v1/signals?status=executed&min_score=70&limit=10"
Response:
json
{
  "data": [
    {
      "id": "abc123",
      "symbol": "EURUSD",
      "direction": "BUY",
      "combined_score": 85,
      "ai_score": 82,
      "source_score": 88,
      "confidence": 0.91,
      "status": "executed",
      "entry_price": 1.0850,
      "stop_loss": 1.0800,
      "take_profits": [1.0900, 1.0950],
      "source_name": "FX Premium",
      "signal_type": "entry",
      "ai_reasoning": "Strong bullish momentum with RSI divergence...",
      "received_at": "2026-03-11T14:30:00Z",
      "executed_at": "2026-03-11T14:30:05Z"
    }
  ],
  "meta": {
    "total": 142,
    "limit": 10,
    "offset": 0,
    "has_more": true
  }
}
GET/api/v1/performance

Strategy performance metrics, equity curve, and returns

ParameterTypeDefaultDescription
periodstringALLTime period: '1M', '3M', '6M', '1Y', 'ALL'
includestringallComma-separated: 'equity_curve', 'monthly_returns', 'symbols'
bash
curl -H "Authorization: Bearer mg_live_xxx" \
  "https://moneyglow.net/api/v1/performance?period=3M&include=equity_curve,symbols"
Response:
json
{
  "data": {
    "metrics": {
      "total_return": 2450.75,
      "total_return_percent": 24.51,
      "win_rate": 68.3,
      "total_trades": 142,
      "profit_factor": 2.15,
      "sharpe_ratio": 1.82,
      "sortino_ratio": 2.41,
      "max_drawdown": -850.00,
      "max_drawdown_percent": -8.50,
      "calmar_ratio": 2.88,
      "volatility": 12.3,
      "avg_daily_pnl": 28.50,
      "trading_days": 86
    },
    "equity_curve": [
      { "date": "2026-01-15", "equity": 10250, "pnl": 250, "drawdown_percent": 0 }
    ],
    "symbol_performance": [
      { "symbol": "XAUUSD", "pnl": 1250.50, "trades": 45, "win_rate": 71.1 }
    ],
    "live_status": { "open_positions": 3 }
  }
}
GET/api/v1/status

System health and service status

bash
curl -H "Authorization: Bearer mg_live_xxx" \
  "https://moneyglow.net/api/v1/status"
Response:
json
{
  "data": {
    "status": "operational",
    "timestamp": "2026-03-11T15:00:00Z",
    "services": [
      { "service": "signal_intelligence", "status": "operational" },
      { "service": "trade_execution", "status": "operational" },
      { "service": "position_management", "status": "operational" },
      { "service": "risk_management", "status": "operational" },
      { "service": "pnl_tracking", "status": "operational" }
    ],
    "uptime": { "operational": 5, "total": 5 }
  }
}

Error Codes

StatusError CodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyKey is invalid, expired, or revoked
429rate_limit_exceededHourly rate limit exceeded
502service_unavailableBackend service temporarily down

Quick Start

Example using Python:

python
import requests

API_KEY = "mg_live_your_key_here"
BASE = "https://moneyglow.net/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}

# Get high-score signals
signals = requests.get(
    f"{BASE}/signals",
    headers=headers,
    params={"min_score": 75, "status": "executed"}
).json()

for s in signals["data"]:
    print(f"{s['direction']} {s['symbol']} - Score: {s['combined_score']}")

Example using JavaScript/Node.js:

javascript
const API_KEY = 'mg_live_your_key_here';
const BASE = 'https://moneyglow.net/api/v1';

const res = await fetch(`${BASE}/signals?min_score=75`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const { data, meta } = await res.json();

console.log(`${meta.total} signals found`);
data.forEach(s => {
  console.log(`${s.direction} ${s.symbol} - Score: ${s.combined_score}`);
});

Questions? Contact api@moneyglow.net