Developers
API Center
Every route the API registers, with the access its middleware enforces.
https://ribqa.com · probe /api/v1/market/btc-macro · refresh 30s
- Routes
- 142registered under /api
- Public
- 40
- Session
- 76JWT
- Admin
- 26
- Health
- Checking
Checking backend reachability
The catalog stays readable while the backend is down; no endpoint response is invented here.
Quick start
# 1. Sign in with your own credentials
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
curl "https://ribqa.com/api/v1/market/btc-macro"Placeholders only. No credential of yours or anyone else's is stored on this page.
Routes (142 of 142)
| 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/public/market/btc-chart-read | public | Market | Latest scheduled BTC 1h and 4h chart reads. | |
| 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/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 only from measured rows; the handler enforces the Gold tier itself and is registered only when the advisor is wired. | |
| 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. | |
| 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. | |
| GET | /api/v1/forecast/{symbol} | session | Forecast | Kronos forecast for one symbol. | |
| GET | /api/v1/forecast/recent | session | Forecast | Most recent Kronos forecasts. | |
| GET | /api/v1/forecast/health | public | Forecast | Kronos sidecar health; reports disabled when the sidecar is not wired. | |
| 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/notifications/config | session | Preferences | Notification channels configured by the user. | |
| POST | /api/v1/notifications/config | session | Preferences | Add a notification channel. | |
| PUT | /api/v1/notifications/config/{id} | session | Preferences | Update one notification channel. | |
| DELETE | /api/v1/notifications/config/{id} | session | Preferences | Remove one notification channel. | |
| POST | /api/v1/notifications/test | session | Preferences | Send a test notification to a configured channel. | |
| GET | /api/v1/admin/users | admin | Admin | List accounts with last seen time and online flag. | |
| PUT | /api/v1/admin/users/{id}/tier | admin | Admin | Change one account's tier. | |
| PUT | /api/v1/admin/users/{id}/role | admin | Admin | Change one account's role. | |
| PUT | /api/v1/admin/users/{id}/suspend | admin | Admin | Suspend or reinstate one account. | |
| GET | /api/v1/admin/stats | admin | Admin | System-wide counters, plus signed-in users and visitors online in the last 5 min and users active in 24h / 7d. | |
| POST | /api/v1/admin/btc-chart-read/run | admin | Admin | Run an out-of-schedule BTC chart read, which calls the paid model. | |
| GET | /api/v1/admin/btc-chart-read/{id}/raw | admin | Admin | Request text and raw model response of one chart read. | |
| GET | /api/v1/admin/ops | admin | Admin | Dependency probes for the database and the sidecars. | |
| GET | /api/v1/admin/billing/ledger | admin | Admin | Payment ledger across providers. | |
| GET | /api/v1/admin/analytics/pages | admin | Admin | Page-view totals per route. | |
| GET | /api/v1/admin/audit | admin | Admin | Admin audit log. | |
| GET | /api/v1/admin/backups | admin | Admin | List database backups. | |
| POST | /api/v1/admin/backups | admin | Admin | Create a database backup. | |
| GET | /api/v1/admin/backups/{filename} | admin | Admin | Download one backup file. | |
| GET | /api/v1/admin/signals | admin | Admin | Signal book across all accounts. | |
| GET | /api/v1/admin/signals/intelligence | admin | Admin | Failure and veto breakdown over the whole book. | |
| GET | /api/v1/admin/signals/failures | admin | Admin | Failed signals grouped by cause. | |
| GET | /api/v1/admin/news | admin | Admin | News collector runs, per-source item counts and digest status, error and cost. | |
| GET | /api/v1/admin/advisor/usage | admin | Admin | AI Advisor questions, errors and cost per day and per user id, against the platform cap. | |
| GET | /api/v1/admin/bots | admin | Admin | Every bot with its market, status and delivery counters, by owner id. | |
| GET | /api/v1/admin/optagon | admin | Admin | Full Optagon state; registered only when Optagon is wired. | |
| GET | /api/v1/admin/optagon/intelligence | admin | Admin | Optagon regime intelligence. | |
| GET | /api/v1/admin/optagon/evidence | admin | Admin | Evidence rows behind the current Optagon state. | |
| GET | /api/v1/admin/optagon/learning-health | admin | Admin | Health of the Optagon learning loop. | |
| POST | /api/v1/admin/optagon/wake-up-neo | admin | Admin | Force an Optagon recomputation. | |
| POST | /api/v1/admin/optagon/advisory | admin | Admin | Turn Optagon advisory activation on or off. | |
| 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 tools/call | MCP | MCP remote (Streamable HTTP, JSON-RPC 2.0). initialize, ping and tools/list are open; tools/call needs 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, BTC chart read changes); it carries no auth middleware, but the handler requires an MCP API key. | |
| 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. |