Power Oracle
API Reference
Public endpoints, request shape, response structure, and live schema access for Power Oracle.
Live Endpoints
- Live API base: https://api.workcapacity.io
- OpenAPI schema: https://api.workcapacity.io/openapi.json
Agents and software systems should use the OpenAPI schema directly.
Browsable Swagger and ReDoc interfaces are intentionally not part of this public docs portal.
Current Public Endpoints
GET /healthGET /movementsPOST /compute-power
Request Model
POST /compute-power accepts a split-aware request body.
Required top-level fields:
athlete_uuidevaluation_contextduration_secondsusersplits
Context rules:
completedrequiresperformed_dateplannedrequiresplanned_for_dateplannedandhypotheticalmay includescenario_labelhypotheticalmust not includeperformed_dateorplanned_for_date
The user object includes:
heightbody_mass- optional
age_years - optional
sex
Each split includes:
- optional
label - active
duration_seconds - optional
rest_seconds_after work.movements[]
Example Request
{
"athlete_uuid": "11111111-1111-1111-1111-111111111111",
"evaluation_context": "completed",
"performed_date": "2026-03-20",
"duration_seconds": 133,
"user": {
"height": { "value": 70, "unit": "in" },
"body_mass": { "value": 180, "unit": "lb" },
"age_years": 35,
"sex": "male"
},
"splits": [
{
"label": "21 thrusters",
"duration_seconds": 33,
"work": {
"movements": [
{
"movement": "thruster",
"reps": 21,
"inputs": {
"external_load": { "value": 95, "unit": "lb" }
},
"spec_overrides": {}
}
]
}
},
{
"label": "21 pull-ups",
"duration_seconds": 27,
"work": {
"movements": [
{
"movement": "pull_up",
"reps": 21,
"spec_overrides": {}
}
]
}
}
]
}
Response Shape
POST /compute-power returns:
results.sessionresults.splits[]results.summaryresults.movement_rollups[]notes
Important semantics:
results.sessionreports session totals and elapsed/session-active powerresults.splits[]reports per-split work and active-duration powerresults.summarycaptures peak, minimum, mean split power, dropoff, and consistencyresults.movement_rollups[]preserves movement totals without inventing per-movement timing inside grouped splitsnotesexplains denominator and modeling assumptions
Additional Details
X-PowerOracle-Agentis an optional request header and is stored with successful compute events.api_versionandcompute_model_versionare server-managed and should not be sent by clients.- Successful compute requests are persisted for later historical analysis.