Developers
API Center
Every route a member, a bot or a visitor can call, with the access its middleware enforces.
https://ribqa.com · probe /api/v1/market/btc-macro · refresh 30s
- Routes
- 118callable under /api
- Public
- 44
- Session
- 74JWT
- Health
- Checking
Checking backend reachability
Quick start
# 1. Sign in with your own credentials (no account yet: https://ribqa.com/register, free)
curl -X POST "https://ribqa.com/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"<your-email>","password":"<your-password>"}'
# 2. Put the access_token from that response in your shell
export TOKEN="<access_token>"
# 3. Call a session route
curl "https://ribqa.com/api/v1/signals" -H "Authorization: Bearer $TOKEN"
# 4. Public routes need no header (120 requests a minute per IP)
curl "https://ribqa.com/api/v1/market/btc-macro"
# 5. Your API key (Account, API keys) lifts that to 600 a minute
curl "https://ribqa.com/api/v1/market/btc-macro" -H "Authorization: Bearer $SENTINEL_KEY"Placeholders only. No credential of yours or anyone else's is stored on this page.
Routes (118 of 118)
| Method | Path | Access | Category | Description | curl |
|---|---|---|---|---|---|
| GET | /api/v1/market/btc-macro | public | Market | BTC macro context: trend state, volatility and dominance. | |
| GET | /api/v1/market/majors | public | Market | Rule-based trend state for BTC, ETH, SOL and XRP. | |
| GET | /api/v1/market/ticker | public | Market | Multi-pair ticker proxied from DataHub. | |
| GET | /api/v1/market/candles/history | session | Market | Historical klines (spot or futures; 1m, 5m, 15m, 1h, 4h, 1d; up to 9000 candles) proxied from DataHub. | |
| GET | /api/v1/chart/smc | session | Market | SMC structure for any USDT pair (order blocks, fair value gaps, breakers, latest MSB / CHoCH / sweep, untaken liquidity pools, premium/discount range and each engine's vote) from the platform's SMC engines on closed DataHub candles. Query: symbol, market=spot|futures, interval=1m|5m|15m|1h|4h|1d. Cached until the next candle closes, at most 5 minutes. | |
| GET | /api/v1/market/funding-rates | session | Market | Funding rate, mark and index price for every Binance USDT-M perpetual, proxied from DataHub (rate in percent per interval, cached 60 seconds). | |
| GET | /api/v1/market/depth/{symbol} | session | Market | USD depth within 1% of mid on each side of a Binance book, with spread and imbalance, proxied from DataHub (cached 15 seconds). Query: market=futures (USDT-M, the default) or spot. | |
| GET | /api/public/market/btc-candles | public | Market | BTCUSDT spot candles (5m, 15m, 1h, 4h or 1d; up to 1000) proxied from DataHub, cached 15 seconds. Feeds the dashboard BTC chart. | |
| GET | /api/public/listings | public | Market | New and upcoming coin listings from the exchanges' own announcement channels (Binance, OKX, Bybit, Kraken pair list, Upbit), with source links and, where DataHub has candles, the measured price move after listing. Query: status=upcoming|recent, exchange, asset_kind. | |
| GET | /api/public/news/impact | public | Market | What BTC did 1h, 4h and 24h after past news of each type, against same-hour random baselines, over a 90-day window. Measured history, not a forecast; types under 30 stories show as measuring. | |
| GET | /api/public/edge/before-you-trade | public | Market | The Aleph Edge "Before you trade" page payload: BTC trend state, ATR and funding, the chart read with its hit record, which bot templates are proven, news impact and new listings, each with its time. Cached 5 minutes. | |
| GET | /api/public/market/btc-chart-read | public | Market | Latest scheduled BTC chart reads: an experimental AI read and a rule read, with hit rates beside their no-skill references and the veto bar verdict. | |
| GET | /api/public/market/btc-chart-read/{id}/chart/{tf} | public | Market | Rendered PNG of one chart read at one timeframe. | |
| GET | /api/public/market/btc-chart-patterns | public | Market | Chart patterns the model reported, with their outcomes. | |
| GET | /api/public/market/btc-candle-patterns | public | Market | Candlestick patterns detected by code, with their outcomes. | |
| GET | /api/public/market/news | public | Market | Latest news digest and the last day's items from five public feeds. Third-party reporting, not a measurement. | |
| GET | /api/public/market/btc-chart-reads | public | Market | UTC days with BTC chart reads over the last 90 days, with the read count per day. | |
| GET | /api/public/market/btc-chart-reads/{date} | public | Market | Every BTC chart read of one UTC day (YYYY-MM-DD), with its grades once due. | |
| GET | /api/public/market/btc-stream | public | Market | Newest streaming BTC regime reading: Kalman slope and HMM bull / bear / sideways probabilities, updated every 5 minutes. A measurement; no signal uses it. | |
| GET | /api/public/stats | public | ML | Public summary counters from the ML outcome store, cached for 60 seconds. | |
| GET | /api/public/ml/stats | public | ML | Aggregated ML outcome statistics; registered only when the ML service is wired. | |
| GET | /api/public/ml/outcomes | public | ML | Recorded ML outcomes; registered only when the ML service is wired. | |
| GET | /api/v1/ml/stats | session | ML | The same aggregate as the public route, behind a session. | |
| GET | /api/v1/ml/outcomes | session | ML | The same outcome list as the public route, behind a session. | |
| GET | /api/v1/ml/weights | session | ML | Current ML feature weights. | |
| POST | /api/v1/advisor/ask | session | Advisor | Answers from Sentinel's ledger, DataHub market and exchange data, stored news and trending searches; the handler enforces the plan and the daily question limit itself and is registered only when the advisor is wired. | |
| GET | /api/v1/advisor/status | session | Advisor | Whether this account may ask the advisor, and how many of today's questions are used. | |
| GET | /api/v1/combos | public | Ledger | Engine combination ranking; returns zeros when no database pool is configured. | |
| GET | /api/v1/ledger/export | public | Ledger | Independently auditable trade ledger export. | |
| GET | /api/v1/stats/verified-ledger | session | Ledger | Win rate with its Wilson 95% interval and sample size; session-gated during beta. | |
| POST | /api/v1/auth/register | public | Auth | Create an account; answers 503 when no database is configured. | |
| POST | /api/v1/auth/login | public | Auth | Password sign-in; returns a token or a 2FA challenge. | |
| POST | /api/v1/auth/login/2fa | public | Auth | Second step of a 2FA sign-in, with a TOTP or recovery code. | |
| POST | /api/v1/auth/refresh | public | Auth | Exchange a refresh token for a new access token. | |
| POST | /api/v1/auth/forgot-password | public | Auth | Start a password reset and mail a single-use token. | |
| POST | /api/v1/auth/reset-password | public | Auth | Complete a password reset with the mailed token. | |
| GET | /api/v1/auth/verify-email | public | Auth | Confirm an email address from the link token. | |
| POST | /api/v1/auth/dev-token | public | Auth | Issues a development token only when the server runs in dev mode; it is registered in production too, where it answers 403. | |
| DELETE | /api/v1/auth/session | session | Auth | Sign out of the current session. | |
| DELETE | /api/v1/auth/sessions | session | Auth | Sign out of every session on this account. | |
| GET | /api/v1/auth/me | session | Auth | Profile and tier of the signed-in user. | |
| PATCH | /api/v1/auth/profile | session | Auth | Update the signed-in user's profile fields. | |
| POST | /api/v1/auth/change-password | session | Auth | Change the password of the signed-in user. | |
| POST | /api/v1/auth/2fa/setup | session | Auth | Start TOTP enrolment and return the shared secret. | |
| POST | /api/v1/auth/2fa/enable | session | Auth | Confirm enrolment and switch 2FA on. | |
| POST | /api/v1/auth/2fa/verify | session | Auth | Verify a TOTP code for the signed-in user. | |
| POST | /api/v1/auth/2fa/disable | session | Auth | Switch 2FA off for the signed-in user. | |
| POST | /api/v1/auth/2fa/recovery-codes/regenerate | session | Auth | Issue a fresh set of single-use recovery codes. | |
| GET | /api/v1/auth/2fa/recovery-codes/status | session | Auth | How many recovery codes remain unused. | |
| POST | /api/v1/analytics/page-view | public | System | Record a page view; registered only when the admin handlers are wired. | |
| POST | /api/v1/webhooks/stripe | publicneeds Stripe signature | Billing | Stripe webhook receiver; the handler verifies the Stripe signature. | |
| POST | /api/v1/billing/checkout | session | Billing | Open a Stripe checkout session. | |
| POST | /api/v1/billing/portal | session | Billing | Open the Stripe customer portal. | |
| GET | /api/v1/billing/status | session | Billing | Subscription and tier status of the signed-in user. | |
| POST | /api/v1/billing/trial | session | Billing | Start the 7-day free trial. | |
| GET | /api/v1/billing/trial | session | Billing | Days remaining on the free trial. | |
| POST | /api/v1/billing/bcn/checkout | session | Billing | Open a BCN Global checkout; answers 503 when BCN is not configured. | |
| GET | /api/v1/billing/bcn/status/{paymentID} | session | Billing | Status of one BCN payment; answers 503 when BCN is not configured. | |
| POST | /api/v1/webhooks/bcn | publicneeds BCN Global signature | Billing | BCN Global webhook receiver. | |
| POST | /api/v1/webhooks/bcon | publicneeds BCN Global signature | Billing | BCN Global webhook receiver under its alternate spelling. | |
| POST | /api/v1/billing/paypal/checkout | session | Billing | Open a PayPal order; answers 503 when PayPal is not configured. | |
| POST | /api/v1/billing/paypal/capture | session | Billing | Capture an approved PayPal order. | |
| POST | /api/v1/webhooks/paypal | publicneeds PayPal signature | Billing | PayPal webhook receiver. | |
| GET | /api/public/signals | public | Signals | Published signals visible without an account. | |
| GET | /api/public/signals/pending | public | Signals | Published signals that have not matured yet. Optional symbol filters to one pair. | |
| GET | /api/public/signals/vetoed | public | Signals | Signals the guard cancelled, with the reason; registered only when the repository can list them. | |
| GET | /api/public/signals/{id} | public | Signals | One published signal: levels, engines, combo, plan, veto context, outcome net of the cost model, and headlines naming its coin within 24 h. | |
| GET | /api/public/ledger/recent | public | Ledger | Newest published signals with their outcome and net result, up to 500. | |
| GET | /api/public/ledger/monthly | public | Ledger | The public book by Zurich month: published, TP, SL, break-even, veto closes, net after the cost model. | |
| GET | /api/v1/signals | session | Signals | Full signal list for the signed-in user. | |
| GET | /api/v1/signals/history | session | Signals | Closed signals with paging. | |
| GET | /api/v1/signals/stats | session | Signals | Win rate, payoff and counts over the signal book. | |
| GET | /api/v1/signals/intelligence | session | Signals | Outcome counts plus engine, combo and SMC rule win rates over signals at least 96h old (matured_win_rate with matured_closed as n; omitted below n=20). | |
| POST | /api/v1/signals/{id}/outcome | session | Signals | Record the outcome of one signal. | |
| GET | /api/v1/signals/{id} | session | Signals | One signal by id. | |
| GET | /api/v1/scanner/signals | session | Scanner | Scanner output with strategy filtering. | |
| GET | /api/v1/scanner/status | session | Scanner | Scanner run state and counters. | |
| GET | /api/v1/scanner/engines | session | Scanner | Registered scanner engines and their configuration. | |
| GET | /api/v1/confluence/snapshot | session | Scanner | Confluence snapshot across the watched symbols. | |
| POST | /api/v1/backtest | session | Backtest | Queue a backtest run. | |
| GET | /api/v1/backtest/history | session | Backtest | Previous backtest runs. | |
| GET | /api/v1/backtest/{id} | session | Backtest | Result of one backtest run. | |
| GET | /api/v1/arbitrage/opportunities | session | Arbitrage | Cross-exchange, carry and triangular opportunity feed. | |
| GET | /api/v1/arbitrage/stats | session | Arbitrage | Lifetime counters of the arbitrage monitor. | |
| GET | /api/v1/arbitrage/funding-rates | session | Arbitrage | Perpetual funding snapshot from the arbitrage worker. | |
| GET | /api/v1/optagon/state | session | Optagon | Optagon regime state for the signed-in user. | |
| GET | /api/v1/optagon/public | public | Optagon | Reduced Optagon state served without a session. | |
| POST | /api/v1/strategies | session | Strategies | Create a strategy; registered only when a database is configured. | |
| GET | /api/v1/strategies | session | Strategies | Strategies owned by the signed-in user. | |
| GET | /api/v1/strategies/{id} | session | Strategies | One strategy by id. | |
| PUT | /api/v1/strategies/{id} | session | Strategies | Replace one strategy. | |
| DELETE | /api/v1/strategies/{id} | session | Strategies | Delete one strategy. | |
| POST | /api/v1/strategies/{id}/deploy | session | Strategies | Deploy one strategy to the scanner. | |
| GET | /api/v1/preferences | session | Preferences | Saved preferences of the signed-in user. | |
| PUT | /api/v1/preferences | session | Preferences | Replace the saved preferences. | |
| GET | /api/v1/whale/alerts | session | Flow | Large-trade alerts from the whale tracker. | |
| GET | /api/v1/whale/flow | session | Flow | Aggregated whale flow by side. | |
| GET | /api/v1/whale/top | session | Flow | Symbols carrying the largest whale flow. | |
| GET | /api/v1/whale/metrics/{symbol} | session | Flow | Whale metrics for one symbol. | |
| GET | /api/v1/liquidity/depth/{symbol} | session | Flow | Order-book depth for one symbol. | |
| GET | /api/v1/liquidity/heatmap/{symbol} | session | Flow | Liquidity heatmap levels for one symbol. | |
| GET | /api/v1/liquidity/walls/{symbol} | session | Flow | Detected order-book walls for one symbol. | |
| GET | /api/v1/liquidity/gaps/{symbol} | session | Flow | Liquidity gaps for one symbol. | |
| POST | /api/v1/stream/ticket | session | Stream | Issue a short-lived single-use ticket for the SSE stream. | |
| GET | /api/v1/stream | publicneeds bearer token or stream ticket | Stream | SSE event stream; it carries no auth middleware, but the handler itself requires a bearer header or a stream ticket. | |
| POST | /api/v1/bots | session | Bots | Create a paper bot. | |
| GET | /api/v1/bots | session | Bots | Bots owned by the signed-in user. | |
| GET | /api/v1/bots/{id} | session | Bots | One bot by id. | |
| POST | /api/v1/bots/{id}/start | session | Bots | Start one bot. | |
| POST | /api/v1/bots/{id}/stop | session | Bots | Stop one bot. | |
| DELETE | /api/v1/bots/{id} | session | Bots | Delete one bot. | |
| GET | /api/v1/bots/{id}/stream | session | Bots | Event stream for one bot. | |
| POST | /api/v1/mcp | publicneeds MCP API key for account tools and run_backtest | MCP | MCP remote (Streamable HTTP, JSON-RPC 2.0). initialize, ping, tools/list and the public read tools (signals, ledger, market, BTC chart read, news, get_before_you_trade) are open; get_my_bots, get_my_strategies, get_strategy, create/update/delete_strategy, run_backtest, get_my_backtests and get_backtest need an MCP API key. | |
| GET | /api/v1/mcp | public | MCP | Answers 405 with Allow: POST; the server opens no SSE stream. | |
| GET | /api/v1/mcp/ws | publicneeds MCP API key | MCP | Push-only WebSocket events channel (signals, BTC regime vetoes, entries, stops moved to entry, closes, BTC chart read changes); it carries no auth middleware, but the handler requires an MCP API key, sent as Authorization: Bearer or, from a browser, as the subprotocols sentinel.mcp plus the key (only sentinel.mcp is echoed). A foreign Origin gets 403. | |
| POST | /api/v1/mcp/keys | session | MCP | Create an MCP API key (shown once); registered only when a database pool is configured. | |
| GET | /api/v1/mcp/keys | session | MCP | List the signed-in user's working MCP API keys and the account's MCP access. | |
| DELETE | /api/v1/mcp/keys/{id} | session | MCP | Revoke one MCP API key. |