Skip to main content
GET
/
v1
/
forex
/
eurusd
/
status
EUR/USD Forex Ghost Trader Status
curl --request GET \
  --url https://api.aioka.io/v1/forex/eurusd/status
{
  "ema_200": 1.17721,
  "eurusd_ask": 1.17841,
  "eurusd_bid": 1.17828,
  "eurusd_price": 1.17841,
  "gates": {
    "council": true,
    "ema_proximity": true,
    "gates_met": 9,
    "judiciary": true,
    "macro_event_clear": true,
    "momentum": true,
    "news_blackout": true,
    "quality": true,
    "regime": true,
    "session": true,
    "session_label": "OVERLAP",
    "spread": true,
    "spread_pips": 1.3
  },
  "generated_at": "2026-05-09T14:30:00+00:00",
  "latest_verdict": {
    "agent_votes": {},
    "confidence": 0.71,
    "created_at": "2026-05-09T14:00:00+00:00",
    "ruling": "ACCUMULATE"
  },
  "paper_mode": true,
  "paper_trades_validated": 0,
  "regime": "ACCUMULATION",
  "rsi_1h": 56.2,
  "session_label": "OVERLAP",
  "spread_pips": 1.3,
  "status": "WAITING"
}

Documentation Index

Fetch the complete documentation index at: https://docs.aioka.io/llms.txt

Use this file to discover all available pages before exploring further.

This endpoint is public — no API key required. Powers the EUR/USD panel on aioka.io/live. (Sprint 186 — first non-crypto, non-commodity asset.)
Tier: Public (no auth) Cache: None — always live Read-only: Never writes to any trading table.
EUR/USD council uses 6 specialist agents unique to Forex: MACRO_SAGE (VETO), TECH_ANALYST, SESSION_GUARDIAN (VETO), FLOW_WARDEN, MOMENTUM_HUNTER, RISK_WARDEN (VETO). Three veto agents — AVOID confidence > 0.7 forces a hard AVOID regardless of the chief judge ruling. EUR/USD is more macro-sensitive than any other AIOKA asset, hence the extra VETO compared to ETH/Gold.
⚠️ This is a paper-trading status snapshot, not financial advice. AIOKA EUR/USD Ghost Trader is a simulation in Sprint 186. Never make real financial decisions based solely on this signal.

Sprint 186 field-naming convention

This endpoint returns snake_case field names exclusively. No camelCase aliases. Other AIOKA endpoints (ETH / SOL / TAO / Gold) use camelCase aliases via Pydantic populate_by_name; EUR/USD does not. TypeScript clients should write interfaces matching exactly what the JSON contains.

Response Fields

EUR/USD evaluates 9 entry gates (Gate 0 news blackout through Gate 8 spread). Gates 0, 7, and 8 are unique to EUR/USD vs crypto:
  • Gate 0 (news blackout) blocks entry around FOMC, NFP, CPI, ECB, Fed Chair Speech, FOMC Minutes (TIER-1 = full-day block; TIER-2 = ±N min symmetric window).
  • Gate 7 (session) blocks entry outside London / NY / Overlap (Tokyo and Sydney sessions are intentionally blocked for EUR/USD due to thin liquidity).
  • Gate 8 (spread) blocks entry when live ZEURZUSD spread is >= 2 pips (microstructure stress signal).

Top-level

FieldTypeMeaning
statusstring"WAITING" (no open EUR/USD trade) or "IN_TRADE"
current_tradeobject | nullOpen EUR/USD trade details when status == "IN_TRADE"
latest_verdictobject | nullLatest EUR/USD council verdict with agent votes
regimestring | nullMarket regime (e.g. ACCUMULATION, BULL_TRENDING, RECOVERY)
rsi_1hnumber | nullEUR/USD 1H RSI
ema_200number | nullEUR/USD 1H EMA(200), 5 decimal places
eurusd_pricenumber | nullLatest EUR/USD spot price (last trade), 5 dp
eurusd_bidnumber | nullLive best bid (5 dp)
eurusd_asknumber | nullLive best ask (5 dp)
spread_pipsnumber | nullLive (ask - bid) in pips. Must be < 2.0 for Gate 8 to pass.
session_labelstring"LONDON" / "OVERLAP" / "NEW_YORK" / "WEEKEND" / "CLOSED". Entry only during London / Overlap / NY.
paper_trades_validatedintCount of closed validated EUR/USD paper trades (0 — 10 milestone before live capital).
paper_modebooltrue while EUR/USD is in paper mode. Becomes false after 10 validated paper closes AND post-validation approval.
generated_atstringResponse timestamp (ISO 8601 UTC)
gatesobjectPer-gate boolean evaluator (9 gates for EUR/USD)

current_trade fields (when status == "IN_TRADE")

FieldTypeMeaning
entry_pricenumberEUR/USD entry price (5 dp)
size_unitsnumberPosition size in base-currency units (EUR)
pnl_usdnumberLive P&L in USD
pnl_pipsnumberLive P&L in pips (Forex-native unit)
tp1_hitboolWhether TP1 partial close has fired
stop_lossnumberStop loss price (5 dp). Hard stop = entry × 0.995 (0.50% / ~50 pips floor)
tp1_pricenumberTP1 target price = entry × 1.003 (+0.30% / ~30 pips)
tp2_pricenumberTP2 target price = entry × 1.007 (+0.70% / ~70 pips)
hwmnumber | nullHigh-water mark for TSL ratchet
sessionstring | nullSession label at entry (LONDON/OVERLAP/NEW_YORK)
spread_at_entrynumber | nullLive spread in pips at entry fill (Gate 8 audit)

latest_verdict fields

FieldTypeMeaning
rulingstringSTRONG_BUY / BUY / ACCUMULATE / HOLD / REDUCE / AVOID
confidencenumber0.0 — 1.0. Entry requires confidence ≥ 0.65.
agent_votesobjectPer-agent verdict from all 6 specialist agents
agent_votes.<AGENT>objectEach agent entry has ruling and confidence
created_atstringISO 8601 timestamp of verdict

gates fields

FieldTypeMeaning
news_blackoutboolGate 0 — no high-impact macro event within window
judiciaryboolGate 1 — Judiciary Agent bullish
councilboolGate 2 — EUR/USD council ≥ 65% confidence and bullish
ema_proximityboolGate 3 — price +0.05% to +0.30% above EMA 200
regimeboolGate 4 — regime is ACCUMULATION / BULL_TRENDING / RECOVERY
qualityboolGate 5 — composite quality score ≥ 65
momentumboolGate 6 — 1H momentum not FALLING
sessionboolGate 7 — inside London / NY / Overlap; weekend hard block
spreadboolGate 8 — live ZEURZUSD spread < 2 pips
session_labelstringCurrent session label (see top-level fields)
spread_pipsnumber | nullLive spread (Gate 8 input)
macro_event_clearboolGate 0 outcome (TRUE = no event in window)
gates_metintCount of passing gates (0 — 9)
triggerstring | nullDescription of the first failing gate, or null when all 9 pass

Specialist Agents (6)

AgentWeightVetoDomain
MACRO_SAGE0.25Fed-ECB rate diff, DXY, US-EU surprise, macro event proximity
TECH_ANALYST0.20RSI multi-timeframe, MACD, Bollinger Bands, EMA 200 distance
SESSION_GUARDIAN0.20Session detection, spread, weekend block, vol ratio
FLOW_WARDEN0.15CFTC COT institutional positioning, DXY momentum
MOMENTUM_HUNTER0.101H momentum, MTF alignment, tick activity heuristic
RISK_WARDEN0.10Hard stop math, TSL monotonicity, BE Shield, weekend gap, drawdown
Three VETO agents (vs ETH’s two and Gold’s two): AVOID with confidence
0.7 from any of MACRO_SAGE, SESSION_GUARDIAN, or RISK_WARDEN forces a council ruling of AVOID regardless of the chief judge synthesis.

EUR/USD-specific risk flags

The council surfaces these risk flags on the verdict object (visible in the internal /eurusd_council Telegram command output; not persisted on the public verdict row):
  • MACRO_HEADWIND — DXY rising or rate differential bearish
  • SESSION_BLOCKED — outside London / NY / Overlap or weekend approaching
  • SPREAD_RISK — live spread >= 1.5 pips (approaching 2-pip Gate 8)
  • MACRO_EVENT_IMMINENT — high-impact event within 30 min
  • WEEKEND_GAP_RISK — Friday afternoon, insufficient exit runway
  • USD_STRENGTH — DXY 7d change > +1%

Response

Live EUR/USD Ghost Trader status

status
string
required

"WAITING" (no open EUR/USD trade) or "IN_TRADE".

generated_at
string<date-time>
required
current_trade
EURUSDStatusCurrentTrade · object
latest_verdict
EURUSDStatusVerdict · object
regime
string | null
rsi_1h
number | null
ema_200
number | null
eurusd_price
number | null
eurusd_bid
number | null
eurusd_ask
number | null
spread_pips
number | null

Live spread in pips (must be < 2.0 for Gate 8).

session_label
string
default:UNKNOWN

Current EUR/USD session. LONDON / OVERLAP / NEW_YORK = entry allowed; WEEKEND / CLOSED = blocked.

paper_trades_validated
integer
default:0

Closed validated EUR/USD paper trades (0-10 milestone).

paper_mode
boolean
default:true

EURUSD_PAPER_MODE flag; live unlocked after 10 validated paper closes AND post-validation approval.

gates
EURUSDGates · object

Per-gate boolean status for the EUR/USD 9-gate entry framework.

Spec enumerates Gate 0 (news blackout) through Gate 8 (spread) inclusive = 9 distinct checks. The header in the spec doc says "8 gates" colloquially but every evaluation row shipped here is required for entry.