{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/fitbit/main/json-schema/fitbit-sleep-log-schema.json",
"title": "Fitbit Sleep Log",
"type": "object",
"properties": {
"sleep": {
"type": "array",
"items": { "$ref": "#/$defs/SleepEntry" }
},
"summary": {
"type": "object",
"properties": {
"stages": {
"type": "object",
"properties": {
"deep": { "type": "integer" },
"light": { "type": "integer" },
"rem": { "type": "integer" },
"wake": { "type": "integer" }
}
},
"totalMinutesAsleep": { "type": "integer" },
"totalSleepRecords": { "type": "integer" },
"totalTimeInBed": { "type": "integer" }
}
}
},
"$defs": {
"SleepEntry": {
"type": "object",
"properties": {
"dateOfSleep": { "type": "string", "format": "date" },
"duration": { "type": "integer" },
"efficiency": { "type": "integer" },
"endTime": { "type": "string" },
"infoCode": { "type": "integer" },
"isMainSleep": { "type": "boolean" },
"levels": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dateTime": { "type": "string" },
"level": { "type": "string", "enum": ["wake", "light", "deep", "rem", "restless", "asleep", "awake"] },
"seconds": { "type": "integer" }
}
}
},
"summary": { "type": "object" }
}
},
"logId": { "type": "integer" },
"minutesAfterWakeup": { "type": "integer" },
"minutesAsleep": { "type": "integer" },
"minutesAwake": { "type": "integer" },
"minutesToFallAsleep": { "type": "integer" },
"startTime": { "type": "string" },
"timeInBed": { "type": "integer" },
"type": { "type": "string", "enum": ["stages", "classic"] }
}
}
}
}