Result details get validated against the following JSON schemas.
AmrapResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AMRAP Workout Schema",
"type": "object",
"required": ["rounds", "partial_index", "partial_amount"],
"additionalProperties": false,
"properties": {
"rounds": {
"type": "integer",
"minimum": 0
},
"partial_index": {
"type": "integer",
"minimum": 0
},
"partial_amount": {
"type": "integer",
"minimum": 0
},
"max_reps": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": ["object", "null"],
"required": ["reps"],
"additionalProperties": false,
"properties": {
"reps": {
"type": "integer"
}
}
},
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"dynamic_attributes": {
"$ref": "results/common.json#/dynamic"
}
}
}
CardioIntervalsResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Cardio Intervals Result Schema",
"type": "object",
"required": ["sets", "rest"],
"additionalProperties": false,
"properties": {
"rest": { "type": "object" },
"sets": {
"type": "array",
"items": { "$ref": "results/common.json#/trackable" },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
}
}
}
CardioResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Cardio Result Schema",
"type": "object",
"required": [ "sets" ],
"additionalProperties": false,
"properties": {
"rest": { "type": "object" },
"sets": {
"type": "array",
"items": { "$ref": "results/common.json#/trackable" },
"minItems": 1,
"maxItems": 1,
"additionalItems": false
}
}
}
DeathByResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "DeathBy Workout Schema",
"type": "object",
"required": [ "rounds", "partial_index", "partial_amount" ],
"additionalProperties": false,
"properties": {
"rounds": { "type": "integer", "minimum": 0 },
"partial_index": { "type": "integer", "minimum": 0 },
"partial_amount": { "type": "integer", "minimum": 0 },
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
EmomResult
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "EMOM Result Schema",
"type": "object",
"additionalProperties": false,
"properties": {
"version": {
"type": "integer"
},
"rounds": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "array",
"maxItems": 100,
"items": {
"type": "array",
"maxItems": 100,
"items": { "$ref": "results/common.json#/emom_set" }
}
}
},
"missed_blocks": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"completed_blocks": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
},
"if": {
"properties": { "version": { "const": 2 } },
"required": ["version"]
},
"then": {
"required": ["rounds"]
},
"else": {
"anyOf": [
{ "required": ["missed_blocks"] },
{ "required": ["completed_blocks"] }
]
}
}
FgbResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "FGB Result Schema",
"type": "object",
"additionalProperties": false,
"anyOf": [
{ "required": ["reps"] },
{ "required": ["totals"] }
],
"properties": {
"reps": {
"type": "array",
"items": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1,
"maxItems": 40,
"additionalItems": false
},
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"totals": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
ForTimeResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ForTime Result Schema",
"type": "object",
"additionalProperties": false,
"anyOf": [
{ "required": ["total"] },
{ "required": ["time_cap", "partition_any_way"] },
{ "required": ["time_cap", "rounds", "partial_index", "partial_amount"] }
],
"properties": {
"total": { "type": "number", "minimum": 1 },
"time_cap": { "type": "integer", "minimum": 1 },
"rounds": { "type": "integer", "minimum": 0 },
"partial_index": { "type": "integer", "minimum": 0 },
"partial_amount": { "type": "integer", "minimum": 0 },
"partition_any_way": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"additionalItems": false,
"items": {
"title": "Partition Any Way Result Set",
"type": "object",
"required": ["id"],
"additionalProperties": false,
"properties": {
"id": { "type": "integer" },
"reps": { "$ref": "results/common.json#/logged_reps" },
"load": { "type": ["number", "null"], "minimum": 0 },
"load_unit": { "enum": ["lbs", "kg", "pood"] },
"height": { "type": ["number", "null"], "minimum": 0 },
"height_unit": { "enum": ["inches", "cm", "feet"] },
"duration": { "type": ["number", "null"], "minimum": 0 },
"duration_unit": { "enum": ["seconds", "minutes"] },
"distance": { "type": ["number", "null"], "minimum": 0 },
"distance_unit": {
"enum": ["feet", "yards", "miles", "meters", "km"]
},
"calories": { "type": ["number", "null"], "minimum": 0 },
"average_power": { "type": ["number", "null"], "minimum": 0 },
"average_power_unit": { "enum": ["watts", "kcal/h"] },
"peak_power": { "type": ["number", "null"], "minimum": 0 },
"peak_power_unit": { "enum": ["watts", "kcal/h"] },
"tempo": { "type": ["string", "null"], "pattern": "^[0-9XA]{1,4}$" }
}
}
},
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
FranStyleResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "FranStyle Result Schema",
"type": "object",
"additionalProperties": false,
"anyOf": [
{ "required": ["total"] },
{ "required": ["time_cap", "time_cap_rounds", "partial_index", "partial_amount"] }
],
"properties": {
"total": { "type": "number", "minimum": 1 },
"rounds": {
"type": "array",
"items": { "type": "number", "minimum": 1 },
"minItems": 2,
"maxItems": 100,
"additionalItems": false
},
"time_cap": { "type": "integer", "minimum": 1 },
"time_cap_rounds": { "type": "integer", "minimum": 0 },
"partial_index": { "type": "integer", "minimum": 0 },
"partial_amount": { "type": "integer", "minimum": 0 },
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
GenericResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Generic Result Schema",
"type": "object",
"additionalProperties": false,
"properties": {
"reps": { "type": "integer", "minimum": 0 },
"total": { "type": "number", "minimum": 1 },
"rounds": { "type": "integer", "minimum": 0 },
"partial_reps": { "type": "integer", "minimum": 0 },
"distance": { "type": "number", "minimum": 0 },
"distance_unit": { "enum": ["feet", "yards", "miles", "meters", "km"] },
"weight": { "type": "number", "minimum": 0 },
"weight_unit": { "enum": ["kg", "lbs", "pood"] },
"peak_power": { "type": "number", "minimum": 0 },
"peak_power_unit": { "enum": ["watts", "kcal/h"] },
"max_speed": { "type": "number", "minimum": 0 },
"max_speed_unit": { "enum": ["mph", "km/h"] },
"points": { "type": "number" },
"time_cap": { "type": "integer", "minimum": 1 },
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
MaxRepsResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "MaxReps Result Schema",
"type": "object",
"required": ["reps"],
"additionalProperties": false,
"properties": {
"reps": { "type": "integer", "minimum": 1 },
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
RoundsForTimeResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RoundsForTime Result Schema",
"type": "object",
"additionalProperties": false,
"anyOf": [
{ "required": ["total"] },
{ "required": ["time_cap", "rounds", "partial_index", "partial_amount"] }
],
"properties": {
"total": { "type": "number", "minimum": 1 },
"rounds": {
"type": ["array", "integer"],
"minimum": 0,
"items": { "type": "number", "minimum": 1 },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"time_cap": { "type": "integer", "minimum": 1 },
"partial_index": { "type": "integer", "minimum": 0 },
"partial_amount": { "type": "integer", "minimum": 0 },
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
StrengthResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Strength Result Schema",
"type": "object",
"required": ["sets", "rest"],
"additionalProperties": false,
"properties": {
"rest": { "type": "object" },
"sets": {
"type": "array",
"items": { "$ref": "results/common.json#/trackable" },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
}
}
}
TabataResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Tabata Result Schema",
"type": "object",
"required": ["reps"],
"additionalProperties": false,
"properties": {
"reps": {
"type": "array",
"items": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"minItems": 1,
"maxItems": 100,
"additionalItems": false
},
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
TwelveDaysResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TwelveDays Result Schema",
"type": "object",
"additionalProperties": false,
"anyOf": [
{ "required": ["total"] },
{ "required": ["time_cap", "rounds", "partial_index", "partial_amount"] }
],
"properties": {
"total": { "type": "number", "minimum": 1 },
"time_cap": { "type": "integer", "minimum": 1 },
"rounds": { "type": "integer", "minimum": 0 },
"partial_index": { "type": "integer", "minimum": 0 },
"partial_amount": { "type": "integer", "minimum": 0 },
"dynamic_attributes": { "$ref": "results/common.json#/dynamic" }
}
}
WarmUpResult
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "WarmUp Result Schema",
"type": "object",
"required": ["completed"],
"additionalProperties": false,
"properties": {
"completed": { "type": "boolean" }
}
}
Common
common.json
{
"logged_reps": {
"type": ["integer", "string", "null"],
"minimum": 0,
"pattern": "^[0-9]+(\\.[0-9]+)*$"
},
"trackable": {
"title": "Trackable Result Set",
"type": "object",
"required": ["movement_id"],
"additionalProperties": false,
"properties": {
"movement_id": { "type": "integer" },
"set": { "type": "integer" },
"pr": { "type": "boolean" },
"pr_amount": { "type": ["number", "null"] },
"prs": { "type": ["object", "null"] },
"reps": { "$ref": "results/common.json#/logged_reps" },
"load": { "type": ["number", "null"], "minimum": 0 },
"load_unit": { "enum": ["lbs", "kg", "pood"] },
"height": { "type": ["number", "null"], "minimum": 0 },
"height_unit": { "enum": ["inches", "cm", "feet"] },
"duration": { "type": ["number", "null"], "minimum": 0 },
"duration_unit": { "enum": ["seconds", "minutes"] },
"distance": { "type": ["number", "null"], "minimum": 0 },
"distance_unit": { "enum": ["feet", "yards", "miles", "meters", "km"] },
"calories": { "type": ["number", "null"], "minimum": 0 },
"average_power": { "type": ["number", "null"], "minimum": 0 },
"average_power_unit": { "enum": ["watts", "kcal/h"] },
"peak_power": { "type": ["number", "null"], "minimum": 0 },
"peak_power_unit": { "enum": ["watts", "kcal/h"] },
"tempo": {
"type": ["string", "null"],
"pattern": "^[0-9XA]{1,4}$"
},
"fixed": { "enum": ["distance", "duration"] },
"failure": { "type": "boolean" }
}
},
"emom_set": {
"type": "object",
"required": ["id"],
"properties": {
"id": { "type": "integer" },
"reps": { "$ref": "results/common.json#/logged_reps" },
"reps_female": { "$ref": "results/common.json#/logged_reps" }
}
},
"dynamic": {
"type": "array",
"items": {
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
"load": { "type": ["string", "null"] },
"load_unit": { "enum": ["lbs", "kg", "pood"] },
"height": { "type": ["string", "null"] },
"height_unit": { "enum": ["inches", "cm", "feet"] }
}
},
"minItems": 1,
"maxItems": 100,
"additionalItems": false
}
}