NeuroTrader - The Construct™Docs
Open App

API Reference

AI & Decisions

Start and stop AI trading sessions, read live session status, and query the decision audit trail.

Session control

POST/api/ai-trading/start

Start an AI trading session for the authenticated user. The session runs with a snapshot of your current settings (what the Pre-Flight Review shows).

POST/api/ai-trading/pause

Pause new entries. Open positions remain actively managed.

POST/api/ai-trading/resume

Resume a paused session.

POST/api/ai-trading/stop

End the session. Protective exits on open positions keep running.

Status

GET/api/ai-trading/status

Combined view of your session and the global AI service.

response · 200 (abridged)
{
  "is_running": true,
  "service_online": true,
  "cycle_count": 48213,
  "uptime_formatted": "3d 2h",
  "active_symbols": ["BTC/USD", "ETH/USD", "SOL/USD"],
  "user_signals_received": 1240,
  "user_signals_acted": 18,
  "user_trades_executed": 18,
  "user_session_uptime_formatted": "6h 12m",
  "config_summary": {
    "min_ensemble_agreement": 3,
    "confidence_threshold": 0.75
  }
}

cycle_count and active_symbols describe the shared AI service (it runs 24/7 for everyone); the user_* fields are specific to your session.

GET/api/ai-trading/signals

Recent AI signals relevant to your session.

Decisions

The same audit trail as the Decisions page. Platform decisions are global telemetry; your personal outcomes are layered on top.

GET/api/v1/decisions

List recent AI decisions, most recent first, with filters.

ParameterTypeRequiredDescription
symbolstringoptionalFilter by asset symbol
actionstringoptionalBUY, SELL, or HOLD
outcomestringoptionalemitted, blocked, skipped, or errored
sincedatetimeoptionalInclusive lower bound (ISO-8601)
untildatetimeoptionalExclusive upper bound (ISO-8601)
limitintoptional1–200, default 50
offsetintoptionalSkip N results, default 0
GET/api/v1/decisions/{decision_id}

Full detail for one decision: action, confidence, price context, and engine votes.

GET/api/v1/decisions/{decision_id}/explain

The plain-language explanation of a decision — the same text shown in the app's decision drawer.

Counts are filter-aware

The list response includes a total computed against the same filters, so "showing 50 of 1,283" style UIs can be built directly from one call.