GET Scheduled Jobs

abstract

Returns all registered APScheduler jobs with human-readable trigger descriptions, next/last run times, and error status — used by the Schedule page to display live countdowns.

🔒 Authentication

PropertyValue
MechanismNone
RequiredNo

🛠️ Technical Specification

Request

ParameterLocationTypeRequiredDescription
No parameters

Logic Flow

📦 Request Body

None.

📤 Responses

StatusWhenBody
200 OKSuccessScheduledJob[]
500 Internal Server ErrorScheduler unavailable{ "detail": "..." }

200 OK example:

[
  {
    "id": "h1_candle_analysis",
    "name": "H1 Candle Analysis — EURUSD",
    "next_run_time": "2026-05-16T19:00:00+00:00",
    "trigger_type": "cron",
    "trigger_desc": "Every 1h on the hour (H1 candle)",
    "category": "strategy",
    "enabled": true,
    "last_run_time": "2026-05-16T18:00:00+00:00",
    "error_message": null
  },
  {
    "id": "maintenance_task",
    "name": "Position Maintenance",
    "next_run_time": "2026-05-16T18:15:00+00:00",
    "trigger_type": "interval",
    "trigger_desc": "Every 15 min",
    "category": "system",
    "enabled": true,
    "last_run_time": "2026-05-16T18:00:00+00:00",
    "error_message": null
  }
]

Field descriptions:

  • trigger_type: "cron" or "interval"
  • trigger_desc: Human-readable (from _describe_trigger())
    • "Every 1h on the hour (H1 candle)"
    • "Every 15 min (M15 candle)"
    • "Daily at 15:30"
    • "Weekly on MON at 08:00 UTC"
  • category: "strategy" (from account binding) or "system" (maintenance, research)
  • next_run_time: ISO 8601 UTC; null if job will never fire again
  • enabled: false if job is paused in scheduler
RolePath
Routerbackend/api/routes/scheduler.py
Servicebackend/services/scheduler.py :: get_scheduler()
Position Maintenancebackend/services/position_maintenance.py
RoleLink
Related EndpointAPI-POST-v1-Scheduler-Trigger
Frontend PagePage - Schedule
DB SchemaDB - strategies
DB SchemaDB - account_strategy