API Reference

RaoBot Signal API

Real-time crypto sentiment signals via REST. Authenticate with your API key using the X-API-Key header. JSON responses, no SDK required.

Base URL: https://raobot.ai

Authentication

Pass your API key in the X-API-Key request header on every call. Keys are prefixed rb_live_ for production.

HTTP request
GET /api/crypto/signals HTTP/1.1
Host: raobot.ai
X-API-Key: rb_live_your_key_here
🔓 Free endpoints — no key needed: /api/health and /api/crypto/prices are publicly accessible without authentication.
⚠️ Missing or invalid key returns HTTP 401. Exceeding your daily quota returns HTTP 429.

Rate limits

Limits are counted per API key per calendar day (UTC). The counter resets at 00:00 UTC.

Plan Price Requests / day Infrastructure
Starter $25 / mo 100 Shared
Pro $149 / mo Unlimited Shared
Enterprise $1,049 / mo Unlimited Dedicated infrastructure

Endpoints

All endpoints return application/json. Click any endpoint to expand the example response.

GET
/api/health Pipeline status and database latency. No authentication required.
No auth
Example response — 200 OK
{
  "status": "ok",
  "db_latency_ms": 2.4,
  "uptime_seconds": 86423
}
GET
/api/crypto/prices Live Binance spot prices for all 7 assets. No authentication required.
No auth
Example response — 200 OK
{
  "BTC":  67420.50,
  "ETH":  3541.20,
  "XRP":  0.5912,
  "SOL":  142.87,
  "DOGE": 0.1204,
  "BNB":  398.41,
  "AVAX": 34.52
}
GET
/api/crypto/signals Latest direction signal per asset — sentiment-driven UP/DOWN with entry price.
Auth required
Example response — 200 OK
[
  {
    "asset":           "BTC",
    "direction":       "up",
    "sentiment_score": 0.342,
    "confidence":      0.81,
    "entry_price":     67420.50,
    "timestamp":       "2026-03-27T09:14:00Z"
  },
  {
    "asset":           "ETH",
    "direction":       "down",
    "sentiment_score": -0.218,
    "confidence":      0.74,
    "entry_price":     3541.20,
    "timestamp":       "2026-03-27T08:52:00Z"
  }
]
GET
/api/crypto/trades Last 20 paper trades with entry/exit prices and P&L outcomes.
Auth required
Example response — 200 OK
[
  {
    "asset":       "BTC",
    "direction":   "up",
    "entry_price": 67420.50,
    "exit_price":  68105.00,
    "outcome":     0.0101,
    "timestamp":   "2026-03-27T09:14:00Z"
  }
]
GET
/api/crypto/stats Per-asset win rate, average P&L, and signals fired today.
Auth required
Example response — 200 OK
{
  "BTC": {
    "win_rate":      0.63,
    "avg_pnl":       0.0082,
    "total_trades":  48,
    "signals_today": 3
  },
  "ETH": {
    "win_rate":      0.58,
    "avg_pnl":       0.0061,
    "total_trades":  31,
    "signals_today": 1
  }
}
GET
/api/crypto/daily-summary Today's running P&L, win rate, and best and worst trade.
Auth required
Example response — 200 OK
{
  "date":         "2026-03-27",
  "total_pnl":    0.0243,
  "win_rate":     0.67,
  "trades_today": 6,
  "best_trade":   { "asset": "SOL", "pnl": 0.0181 },
  "worst_trade":  { "asset": "DOGE", "pnl": -0.0094 }
}

Error codes

All errors return a JSON body with a detail field explaining the reason.

StatusMeaningResolution
401 Unauthorized Missing or invalid X-API-Key header Check your key and ensure it is prefixed rb_live_
429 Too Many Requests Daily request quota exceeded Wait for the counter to reset at 00:00 UTC or upgrade your plan
503 Service Unavailable Pipeline is starting up or database is unreachable Retry with exponential backoff; check /api/health
Error response body
{
  "detail": "Invalid or inactive API key"
}

Quick start

Fetch the latest signal for each asset in under 10 lines of code.

python
import requests

API_KEY = "rb_live_your_key_here"
BASE    = "https://raobot.ai"

headers = {"X-API-Key": API_KEY}

# Fetch latest signals
signals = requests.get(
    f"{BASE}/api/crypto/signals",
    headers=headers,
).json()

for s in signals:
    print(f"{s['asset']:5}  {s['direction']:4}  score={s['sentiment_score']:+.3f}")
javascript
const API_KEY = "rb_live_your_key_here";
const BASE    = "https://raobot.ai";

const res = await fetch(`${BASE}/api/crypto/signals`, {
  headers: { "X-API-Key": API_KEY },
});

const signals = await res.json();

signals.forEach(s => {
  console.log(`${s.asset}  ${s.direction}  score=${s.sentiment_score}`);
});

Ready to integrate?

Request your API key and start pulling live crypto sentiment signals into your strategy today.

Request API access →