Sessions
Sessions
Manage training session templates via the Cloud API. All session commands require a VOLTRA API key. No device connection required.
Cortex only supports managing session templates — it does not execute session training. To follow a template's exercise sequence for actual training, use the Beyond+ App (iOS only).
Session Management
| Command | Options | Notes |
|---|---|---|
voltra session list | [--api-key <key>] [--json] | List all session templates for the account. |
voltra session detail <id> | [--api-key <key>] [--json] | Show full details of a single session template by numeric ID. |
voltra session validate | --from <path> [--json] | Validate an Agent v1 create payload locally without an API key or upload. |
voltra session create | --from <path> [--api-key <key>] [--json] | Create through the Agent v1 endpoint. Fields: title, accountRole, label, sessionConfig, blockList, connectionMode; optional originSessionId. Do not include response-only IDs or groupIdList. |
voltra session update <id> | --from <path> [--api-key <key>] [--json] | Update a session from a JSON file (SessionUpdateRequest). Only four fields: title, sessionConfig, blockList, connectionMode. Other fields (accountRole, label, originSessionId, blockId, itemId, groupIdList) are rejected. |
voltra session delete <id> | [--delete-records] --yes [--api-key <key>] [--json] | Delete a session. Requires --yes. --delete-records also removes related training records. |
voltra session list --json
voltra session detail 12 --json
voltra session validate --from ./plan.json
voltra session create --from ./plan.json
voltra session update 12 --from ./plan.json
voltra session delete 12 --yes
voltra session delete 12 --yes --delete-recordsUpdate is a replace-style rebuild: the backend deletes the old record and creates a new one, returning a new ID. When returned ID ≠ input ID, Cortex outputs
Replaced session <oldId> → new id <newId>.
Agent v1 create contract:
blockTypeis1Normal or2Circuit;workoutModeis limited to1..4.- Blocks, Items, Sets,
sessionConfig,actionModeConfig, andmodeConfigare required. - Item and Set positions are consecutive, unique, and 1-based.
- Weight is
5..230lb, Resistance Band15..230lb, Damper1..10, and Isokinetic10..200lb. - Reps are
1..99; rest is0..290seconds in 10-second steps. chainsValueandinverseChainsValuecan never both be positive. At Set level, all-null inherits Item defaults while0 / nullexplicitly disables the atomic override group.- Direction must match Hand Mode. Drop Set, Twin, and Isokinetic configurations must satisfy their cross-field rules.
- The backend remains the final validator. Validation errors may include machine-readable
path,rule, anddetailfields.
session validate reports all semantic failures with path, rule, and detail; session create runs the same validator before upload. The strict create-only mode subset must not be blindly imposed on the existing update endpoint.
Utilities
| Command | Options | Notes |
|---|---|---|
voltra session rename <id> <title> | [--api-key <key>] [--json] | Rename a session template. |
voltra session touch <id> | [--time <unix_seconds>] [--api-key <key>] [--json] | Update active timestamp. Default: current time. --time accepts Unix seconds (milliseconds rejected). |
voltra session rename 12 "Push Day A"
voltra session touch 12
voltra session touch 12 --time 1719900000