This document describes the public API of the Fitrockr platform.
Important
|
To use this API you need to have an API key from one of our platforms. Not all data sets may be available for your use case. Supported data sets are determined by platform configuration and Garmin device utilized. |
Important
|
Data is only refreshed when a user manually syncs their Garmin device. Please use data requests on a minute level. DO NOT GET DATA ON A MILLISECOND LEVEL. |
Summary
The Fitrockr API consists of 3 API Collections.
- User API
-
The User API contains all api requests focussing on user data. Beside searching for users and querying user details it also contains all APIs to retrieve user data for a specific period like Daily Summaries, Heart Rate, BBI,…
- Health Kpi
-
The Health Kpi contains all APIs dealing with the Health KPI Reporting. Fitrockr calculates certain KPIs based on the user data that can be bundled into Reports using the Fitrockr Admin Tool. The Health KPI API can be used to generate such Reports in raw or published form.
- Status
-
The Status API can be used for checking, if the basic connection to fitrockr works and if everything is up and running.
-
Connect to the Fitrockr API following the Communication & Authentication chapter
-
Search for specific users that are relevant for you using the User Search API
-
Use the id returned by the user search to query specific health values for the user.
Communication & Authentication
Fitrockr API uses an API key to secure the api. The API key is just valid for your instance and can be obtained from the Fitrockr Support & Sales team. Beside the API you have to provide the tenant identifier. This is used by the server to determine the right instance of the api request.
The base url of the fitrockr api is https://api.fitrockr.com
The api key that the Fitrockr team provided you, has to be sent with every request header. The header name is X-API-Key.
Your Fitrockr instance is identified by a tenant id. You have to send this identifier with every request in the X-Tenant header.
Imagine your tenant key is example-tenant and your api key is 00000000-0000-0000-0000-000000000000. Your request should look like the following example
GET /v1/status/greet HTTP/1.1 Content-Type: application/json X-Tenant: example-tenant X-API-Key: 00000000-0000-0000-0000-000000000000 Host: api.fitrockr.com
Status-API
The status api is used to check, if the Fitrockr server is up and running.
Greet
The greet method of the status api is just returning a http 200 response with a constant string "Rock on!". You can use this method to check, if the fitrockr server is available.
GET /v1/status/greet HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 10
"Rock on!"
Greet me
The greet me method is returning a constant greeting response containing the name of the registered application you are using. E.g., if the name of the application is "Ext App", this method would return "Rock on, Ext App!".
GET /v1/status/greetMe HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 24
"Rock on, External App!"
User-API
The User API gives you access to all user related data like profile, daily summaries, activites,…
User Search
User user search can be used to obtain users. The id of the user that is returned in the response can be used to obtain further data with other methods of the User API.
Parameter | Description |
---|---|
|
Query string for first name, last name and email |
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
GET /v1/users?query=Gus&page=0&size=10 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 156
[{"id":"6605756edf579919e90c7e66","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"}]
GET /v1/users?page=0&size=10 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 316
[{"id":"6605756edf579919e90c7e66","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"},{"id":"6605756edf579919e90c7e67","firstName":"Francisca","lastName":"Lowe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"}]
User Profile
The detailed profile of a certain user that speficied by the user id within the request path.
Parameter | Description |
---|---|
|
User Identifier |
Path | Type | Description |
---|---|---|
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
|
|
'm' for male or 'f' for female |
|
|
ISO Country code (e.g. DE) |
|
|
Optional City of the user |
|
|
Description of the location of a user beside city. E.g. Organization, Room Number,.. |
|
|
ISO Language code (e.g. de) |
|
|
Time Zone Identifier |
|
|
Email of the user |
|
|
Year of Birth (used for calc. of basal metabolism) |
|
|
true, if imperial units are being used. false for metric |
|
|
Height of the user in cm |
|
|
Height Unit (cm or in) |
|
|
Weight of the user in kg |
|
|
Weight Unit (kg or lbs) |
|
|
Basal Metabolism of the user. |
|
|
Last tracker synchronization |
|
|
Name of the tracker, the user is currently using |
|
|
True, if the user is connected. Otherwise false |
|
|
Usual sleep start time (e.g. 2200) |
|
|
Usual sleep end time (e.g. 0600) |
GET /v1/users/6605756fdf579919e90c7e8d/profile HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 526
{"id":"6605756fdf579919e90c7e8d","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678","basalMetabolism":1234,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"UTC+1","email":"test@fitrockr.com","yearOfBirth":1985,"height":180,"heightUOM":"cm","weight":80,"weightUOM":"kg","lastSync":"2020-03-04T00:00:00+0100","trackerName":"Garmin","active":true,"usualSleepStartTime":2200,"usualSleepEndTime":600,"imperialUnits":false,"location":null}
Create User Profile
Create a new user on the platform
Path | Type | Description |
---|---|---|
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
|
|
'm' for male or 'f' for female |
|
|
ISO Country code (e.g. DE) |
|
|
Optional City of the user |
|
|
Description of the location of a user beside city. E.g. Organization, Room Number,.. |
|
|
ISO Language code (e.g. de) |
|
|
Time Zone Identifier |
|
|
Email of the user |
|
|
Year of Birth (used for calc. of basal metabolism) |
|
|
true, if imperial units are being used. false for metric |
|
|
Height of the user in cm |
|
|
Height Unit (cm or in) |
|
|
Weight of the user in kg |
|
|
Weight Unit (kg or lbs) |
|
|
Basal Metabolism of the user. |
|
|
Last tracker synchronization |
|
|
Name of the tracker, the user is currently using |
|
|
True, if the user is connected. Otherwise false |
|
|
Usual sleep start time (e.g. 2200) |
|
|
Usual sleep end time (e.g. 0600) |
{"id":"6605756ddf579919e90c7e38","firstName":"John","lastName":"Doe","profilePicUrl":null,"basalMetabolism":1757,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"GMT+01:00","email":"john@doe.com","yearOfBirth":1975,"height":180,"heightUOM":"cm","weight":82,"weightUOM":"kg","lastSync":null,"trackerName":null,"active":true,"usualSleepStartTime":null,"usualSleepEndTime":null,"imperialUnits":false,"location":null}
POST /v1/users/ HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Content-Length: 440
Host: localhost:8080
{"id":null,"firstName":"John","lastName":"Doe","profilePicUrl":"https://images.fitrockr.com/1234","basalMetabolism":null,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"GMT+1","email":"john@doe.com","yearOfBirth":1975,"height":180,"heightUOM":null,"weight":82,"weightUOM":null,"lastSync":null,"trackerName":null,"active":null,"usualSleepStartTime":null,"usualSleepEndTime":null,"imperialUnits":false,"location":null}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 436
{"id":"6605756ddf579919e90c7e38","firstName":"John","lastName":"Doe","profilePicUrl":null,"basalMetabolism":1757,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"GMT+01:00","email":"john@doe.com","yearOfBirth":1975,"height":180,"heightUOM":"cm","weight":82,"weightUOM":"kg","lastSync":null,"trackerName":null,"active":true,"usualSleepStartTime":null,"usualSleepEndTime":null,"imperialUnits":false,"location":null}
Update User Profile
Update an existing user profile on the platform
Parameter | Description |
---|---|
|
User Identifier |
Path | Type | Description |
---|---|---|
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
|
|
'm' for male or 'f' for female |
|
|
ISO Country code (e.g. DE) |
|
|
Optional City of the user |
|
|
Description of the location of a user beside city. E.g. Organization, Room Number,.. |
|
|
ISO Language code (e.g. de) |
|
|
Time Zone Identifier |
|
|
Email of the user |
|
|
Year of Birth (used for calc. of basal metabolism) |
|
|
true, if imperial units are being used. false for metric |
|
|
Height of the user in cm |
|
|
Height Unit (cm or in) |
|
|
Weight of the user in kg |
|
|
Weight Unit (kg or lbs) |
|
|
Basal Metabolism of the user. |
|
|
Last tracker synchronization |
|
|
Name of the tracker, the user is currently using |
|
|
True, if the user is connected. Otherwise false |
|
|
Usual sleep start time (e.g. 2200) |
|
|
Usual sleep end time (e.g. 0600) |
{"id":"6605756edf579919e90c7e5d","firstName":"John","lastName":"Doe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678","basalMetabolism":1757,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"GMT+01:00","email":"john@doe.com","yearOfBirth":1975,"height":180,"heightUOM":"cm","weight":82,"weightUOM":"kg","lastSync":"2020-03-04T00:00:00+0100","trackerName":"Garmin","active":true,"usualSleepStartTime":2200,"usualSleepEndTime":600,"imperialUnits":false,"location":null}
PUT /v1/users/6605756edf579919e90c7e5d HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Content-Length: 440
Host: localhost:8080
{"id":null,"firstName":"John","lastName":"Doe","profilePicUrl":"https://images.fitrockr.com/1234","basalMetabolism":null,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"GMT+1","email":"john@doe.com","yearOfBirth":1975,"height":180,"heightUOM":null,"weight":82,"weightUOM":null,"lastSync":null,"trackerName":null,"active":null,"usualSleepStartTime":null,"usualSleepEndTime":null,"imperialUnits":false,"location":null}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 524
{"id":"6605756edf579919e90c7e5d","firstName":"John","lastName":"Doe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678","basalMetabolism":1757,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"GMT+01:00","email":"john@doe.com","yearOfBirth":1975,"height":180,"heightUOM":"cm","weight":82,"weightUOM":"kg","lastSync":"2020-03-04T00:00:00+0100","trackerName":"Garmin","active":true,"usualSleepStartTime":2200,"usualSleepEndTime":600,"imperialUnits":false,"location":null}
Delete User Profile
Delete a user on the platform
Parameter | Description |
---|---|
|
User Identifier |
DELETE /v1/users/6605756fdf579919e90c7e82 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Create user join code
Create a join code for a user and a data collection profile with a license key.
Parameter | Description |
---|---|
|
User Identifier |
|
8 digit license key of the Project / Data Collection Profile (Multi Sync Tablet QR Code) |
GET /v1/users/6605756ddf579919e90c7e3a/createJoinCode/ABCD1234 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
{"joinCode":"null-6481","userId":"6605756ddf579919e90c7e3a"}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 60
{"joinCode":"null-6481","userId":"6605756ddf579919e90c7e3a"}
Create Garmin Connect Link Url
Creates an url that can be used to link Garmin Connect to the user account specified by the Id
Parameter | Description |
---|---|
|
User Identifier |
GET /v1/users/6605756edf579919e90c7e52/createGarminConnectLinkUrl HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
{"userId":"6605756edf579919e90c7e52","url":"https://admin.fitrockr.com/connectGarmin/\u003ctenant-id\u003e/905d0192-9a1b-49c3-a44c-54b2774d2e51"}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 145
{"userId":"6605756edf579919e90c7e52","url":"https://admin.fitrockr.com/connectGarmin/\u003ctenant-id\u003e/905d0192-9a1b-49c3-a44c-54b2774d2e51"}
Daily Summary
A daily summary contains the daily activity data of a user like total calories, steps, distance and also points. This request can be used to get one or more daily summaries. The date range can be specified by request parameters.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Identifier of user to which this object belongs |
|
|
Day of Daily Summary |
|
|
Month of Daily Summary |
|
|
Year of Daily Summary |
|
|
Points of the user on that day |
|
|
Calories of the user on that day |
|
|
Steps of the user on that day |
|
|
Distance of the user on that day |
|
|
Activity Minutes of the user on that day |
GET /v1/users/66057570df579919e90c7e9d/dailySummaries?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 297
[{"userId":"66057570df579919e90c7e9d","date":{"year":2024,"month":3,"day":29},"points":14,"calories":12,"steps":11,"distance":13,"activityMinutes":15},{"userId":"66057570df579919e90c7e9d","date":{"year":2024,"month":3,"day":28},"points":9,"calories":7,"steps":6,"distance":8,"activityMinutes":10}]
Daily Details
Daily Details contains more information on daily base compared to the daily summary.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The start date |
|
The end date |
Path | Type | Description |
---|---|---|
|
|
Identifier of user to which this record belongs |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Day of the end of this record |
|
|
Month of the end of this record |
|
|
Year of the end of this record |
|
|
Hour of the end of this record |
|
|
Minute of the end of this record |
|
|
Second of the end of this record |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Duration in seconds |
|
|
Active calories within the timeframe of this record |
|
|
Distance covered |
|
|
Cumulative duration of activities of moderate intensity (MET 3-6) lasting at least 600s at a time. |
|
|
Cumulative duration of activities of vigorous intensity (MET >6) lasting at least 600s at a time |
|
|
Total number of floors climbed |
|
|
Average stress level of this period |
|
|
Maximum stress level in this period |
|
|
Total stress duration in seconds |
|
|
Number of seconds with rest stress |
|
|
Number of seconds the user was engaged in activity and stress duration was unreliable. |
|
|
Number of seconds with low stress |
|
|
Number of seconds with medium stress |
|
|
Number of seconds with high stress |
|
|
Qualitative stress label. Possible values: unknown, calm, balanced, stressful, very_stressful, calm_awake, balanced_awake, stressful_awake, very_stressful_awake, .. |
|
|
Step goal of the user |
|
|
calorie goal of the user |
|
|
goal for intensity seconds |
|
|
goal for floors climbed |
|
|
Minimum heart rate (bpm) |
|
|
Average heart rate (bpm) |
|
|
Maximum heart rate (bpm) |
|
|
Id of this record |
|
|
Type of activity of this record |
|
|
Calendar date |
|
|
Number of steps |
GET /v1/users/6605756fdf579919e90c7e72/dailyDetails?startDate=2024-03-25&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1041
[{"userId":"6605756fdf579919e90c7e72","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":49,"second":35}},"endTime":{"date":{"year":2024,"month":3,"day":27},"time":{"hour":14,"minute":49,"second":35}},"summaryId":"1b7105","calendarDate":"2021-01-01","startTimeInSeconds":1711464575,"startTimeOffsetInSeconds":0,"durationInSeconds":3600,"activityType":"WALKING","steps":1024,"activeKilocalories":2048.0,"distanceInMeters":512.0,"moderateIntensityDurationInSeconds":1200,"vigorousIntensityDurationInSeconds":600,"floorsClimbed":5,"minHeartRateInBeatsPerMinute":80,"avgHeartRateInBeatsPerMinute":100,"maxHeartRateInBeatsPerMinute":120,"averageStressLevel":89,"maxStressLevel":100,"stressDurationInSeconds":200,"restStressDurationInSeconds":100,"activityStressDurationInSeconds":10,"lowStressDurationInSeconds":20,"mediumStressDurationInSeconds":30,"highStressDurationInSeconds":40,"stressQualifier":"balanced","stepsGoal":5000,"netKilocaloriesGoal":3000,"intensityDurationGoalInSeconds":360,"floorsClimbedGoal":10}]
Heart Rate
The user heart rate values
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The start date |
|
The end date |
Path | Type | Description |
---|---|---|
|
|
Identifier of user to which this record belongs |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Calendar date |
|
|
The heart rate value. |
GET /v1/users/6605756edf579919e90c7e6a/heartRate?startDate=2024-03-25&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 941
[{"userId":"6605756edf579919e90c7e6a","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":49,"second":34}},"calendarDate":"2021-01-01","startTimeInSeconds":1711464574,"startTimeOffsetInSeconds":0,"value":83},{"userId":"6605756edf579919e90c7e6a","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":44,"second":34}},"calendarDate":"2021-01-01","startTimeInSeconds":1711464274,"startTimeOffsetInSeconds":0,"value":84},{"userId":"6605756edf579919e90c7e6a","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":39,"second":34}},"calendarDate":"2021-01-01","startTimeInSeconds":1711463974,"startTimeOffsetInSeconds":0,"value":85},{"userId":"6605756edf579919e90c7e6a","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":34,"second":34}},"calendarDate":"2021-01-01","startTimeInSeconds":1711463674,"startTimeOffsetInSeconds":0,"value":86}]
Activities
A daily summary contains the daily activity data of a user like total calories, steps, distance and also points. This request can be used to get one or more daily summaries. The date range can be specified by request parameters.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
External Id of this activity (optional) |
|
|
Source that recorded this activity |
|
|
Identifier of user to which this activity belongs |
|
|
Day of the start of this activity |
|
|
Month of the start of this activity |
|
|
Year of the start of this activity |
|
|
Hour of the start of this activity |
|
|
Minute of the start of this activity |
|
|
Second of the start of this activity |
|
|
Day of the end of this activity |
|
|
Month of the end of this activity |
|
|
Year of the end of this activity |
|
|
Hour of the end of this activity |
|
|
Minute of the end of this activity |
|
|
Second of the end of this activity |
|
|
Type of the activity (e.g., Running, Walking, Rowing,..) |
|
|
Raw Activity Type from the wearable |
|
|
Duration of activity in seconds |
|
|
Main value of the activity. (e.g. Distance for Walking, Strokes for rowing.) |
|
|
Unit for amount. |
|
|
Burned calories. |
|
|
Distance covered during activity |
|
|
Steps taken during activity |
GET /v1/users/6605756fdf579919e90c7e7c/activities?startDate=2024-03-27&endDate=2024-03-30 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 883
[{"id":"6605756fdf579919e90c7e80","externalId":"A1235","source":"Fitrockr Hub","userId":"6605756fdf579919e90c7e7c","startDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":19,"second":35}},"endDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":35}},"type":"Walking","rawActivityType":null,"duration":1800000,"amount":4000,"unit":"Meter","calories":200,"distance":4000.0,"steps":4000},{"id":"6605756fdf579919e90c7e7f","externalId":"A1234","source":"Fitrockr Hub","userId":"6605756fdf579919e90c7e7c","startDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":49,"second":35}},"endDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":35}},"type":"Running","rawActivityType":null,"duration":3600000,"amount":9000,"unit":"Meter","calories":400,"distance":9000.0,"steps":8000}]
Activity Details
Returns the details of a certain activity.
Parameter | Description |
---|---|
|
User Identifier |
|
Activity Identifier |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
Day of the start of this activity |
|
|
Month of the start of this activity |
|
|
Year of the start of this activity |
|
|
Hour of the start of this activity |
|
|
Minute of the start of this activity |
|
|
Second of the start of this activity |
|
|
Day of the end of this activity |
|
|
Month of the end of this activity |
|
|
Year of the end of this activity |
|
|
Hour of the end of this activity |
|
|
Minute of the end of this activity |
|
|
Second of the end of this activity |
|
|
Start time offset in sec |
|
|
Identifier of user to which this activity belongs |
|
|
Source that recorded this activity |
|
|
Tracker used to record the activity |
|
|
Type of the activity (e.g., Running, Walking, Rowing,..) |
|
|
|
|
|
Duration of activity in seconds |
|
|
Main value of the activity. (e.g. Distance for Walking, Strokes for rowing.) |
|
|
Unit for amount. |
|
|
Burned calories. |
|
|
Distance covered during activity |
|
|
Steps taken during activity |
|
|
Average HR in bpm during activity |
|
|
Max HR in bpm during activity |
|
|
Average running cadence during activity |
|
|
Maximum running cadence during activity |
|
|
Average speed during activity |
|
|
Max speed during activity |
|
|
Total Met Minutes of activity |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Red Zone share in Percent |
|
|
Red Zone Share in Seconds |
|
|
Anerobic Zone share in Percent |
|
|
Anerobic Zone Share in Seconds |
|
|
Aerobic Zone share in Percent |
|
|
Aerobic Zone Share in Seconds |
|
|
Fat Burn Zone share in Percent |
|
|
Fat Burn Zone Share in Seconds |
|
|
Health Zone share in Percent |
|
|
Health Zone Share in Seconds |
|
|
No Zone share in Percent |
|
|
Nno Zone Share in Seconds |
|
|
Moderate Zone share in Percent |
|
|
Moderate Zone Share in Seconds |
|
|
Vigorous Zone share in Percent |
|
|
Vigorous Zone Share in Seconds |
GET /v1/users/66057570df579919e90c7e98/activity/66057570df579919e90c7e9b HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1404
{"id":"66057570df579919e90c7e9b","startDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":49,"second":36}},"endDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":36}},"offset":null,"userId":"66057570df579919e90c7e98","source":"Fitrockr Hub","tracker":null,"type":"Running","rawActivityType":null,"duration":3600,"amount":9000,"unit":"Meter","calories":400,"distance":9000.0,"steps":8000,"averageHeartRate":null,"maxHeartRate":null,"averageRunningCadence":null,"maxRunningCadence":null,"averageSpeed":null,"maxSpeed":null,"totalMetMinutes":null,"activitySamples":[{"startTimeInSeconds":1,"latitudeInDegree":null,"longitudeInDegree":null,"elevationInMeters":null,"airTemperatureCelcius":null,"heartRate":null,"speedMetersPerSecond":null,"stepsPerMinute":null,"totalDistanceInMeters":null,"timerDurationInSeconds":null,"clockDurationInSeconds":null,"movingDurationInSeconds":null,"powerInWatts":null,"bikeCadenceInRPM":null,"swimCadenceInStrokesPerMinute":null,"metMinute":null}],"heartRateZoneDistribution":{"redZoneShare":0.0,"redZoneSeconds":0,"anerobicZoneShare":0.0,"anerobicZoneSeconds":0,"aerobicZoneShare":0.0,"aerobicZoneSeconds":0,"fatBurnZoneShare":0.0,"fatBurnZoneSeconds":0,"healthZoneShare":0.0,"healthZoneSeconds":0,"noZoneShare":0.0,"noZoneSeconds":0,"moderateShare":0.0,"moderateSeconds":10,"vigorousShare":0.0,"vigorousSeconds":0}}
Intraday
An intraday record contains the recorded data within a day for a certain timeframe. This request can be used to get one or more intraday records. The date range can be specified by request parameters.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this intraday record |
|
|
Identifier of user to which this record belongs |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Day of the end of this record |
|
|
Month of the end of this record |
|
|
Year of the end of this record |
|
|
Hour of the end of this record |
|
|
Minute of the end of this record |
|
|
Second of the end of this record |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Duration in seconds |
|
|
Active calories within the timeframe of this record |
|
|
Distance covered |
|
|
Active seconds during the timeframe of this record |
|
|
Metabolic equivalent of this record |
|
|
Motion intensity category |
|
|
Mean motion intensity |
|
|
Maximum motion intensity |
|
|
average stress level |
|
|
Maximum stress level |
|
|
Minimum heart rate (bpm) |
|
|
Average heart rate (bpm) |
|
|
Maximum heart rate (bpm) |
|
|
Id of this record |
|
|
Type of activity of this record |
|
|
Calendar date |
|
|
Number of steps |
GET /v1/users/6605756fdf579919e90c7e77/intraDays?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 732
[{"id":"6605756fdf579919e90c7e7a","userId":"6605756fdf579919e90c7e77","summaryId":"1b7105","activityType":"SEDENTARY","calendarDate":"2021-01-01","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":0}},"endTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":45,"second":0}},"startTimeInSeconds":1711633200,"startTimeOffsetInSeconds":1711633500,"durationInSeconds":300,"activeCalories":23,"distance":15,"steps":23,"activeSeconds":5,"metValue":1.2,"intensity":"SEDENTARY","meanMotionIntensity":0.73,"maxMotionIntensity":1.3,"averageStressLevel":20,"maxStressLevel":50,"minHeartRateInBeatsPerMinute":70,"avgHeartRateInBeatsPerMinute":90,"maxHeartRateInBeatsPerMinute":120}]
Motion Intensity
This records contains the intensity of the motion that the tracker recorded for a certain timeframe.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
User identifier |
|
|
Activity type detected at the time of the record |
|
|
Duration of this record in sec. |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Intensity of the motion |
GET /v1/users/66057570df579919e90c7eab/motionIntensity?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 309
[{"id":"66057570df579919e90c7eae","userId":"66057570df579919e90c7eab","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":0}},"startTimeInSeconds":1711633200,"startTimeOffsetInSeconds":1711633500,"durationInSeconds":300,"activityType":"GENERIC","motionIntensity":23.4}]
Sleep
Sleep Records for a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
Identifier of user to which this activity belongs |
|
|
Tagged, if day sleep, night sleep, nap or rem sleep |
|
|
The sleep was marked as outdated, because of new data received afterwards |
|
|
Day, the sleep is assigned to |
|
|
Month, the sleep is assigned to |
|
|
Year, the sleep is assigned to |
|
|
Internal summary id of this sleep |
|
|
Day, the sleep started |
|
|
Day of the processing time of this sleep |
|
|
Month of the processing time of this sleep |
|
|
Year of the processing time of this sleep |
|
|
Hour of the processing time of this sleep |
|
|
Minute of the processing time of this sleep |
|
|
Second of the processing time of this sleep |
|
|
Day of the start of this sleep |
|
|
Month of the start of this sleep |
|
|
Year of the start of this sleep |
|
|
Hour of the start of this sleep |
|
|
Minute of the start of this sleep |
|
|
Second of the start of this sleep |
|
|
Day of the end of this sleep |
|
|
Month of the end of this sleep |
|
|
Year of the end of this sleep |
|
|
Hour of the end of this sleep |
|
|
Minute of the end of this sleep |
|
|
Second of the end of this sleep |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Duration of this record in sec. |
|
|
Sum of deep sleep seconds. |
|
|
Sum of light sleep seconds |
|
|
Sum of seconds awake. |
|
|
Sum of rem sleep seconds. |
|
|
Sum of seconds not measurable. |
|
|
Sum of total seconds asleep. |
|
|
Ratio of total seconds asleep vs. awake. |
|
|
Source of this sleep record |
|
|
Start Time of this sleep phase in sec |
|
|
End Time of this sleep phase in sec |
|
|
Duration of this sleep phase in sec |
|
|
Value 0-100 scoring the sleep |
|
|
A human readable qualifier for the sleep score |
|
|
The |
|
|
|
|
|
|
|
|
|
|
|
Source of sleep validation |
GET /v1/users/6605756edf579919e90c7e61/sleep?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1055
[{"id":"6605756edf579919e90c7e64","userId":"6605756edf579919e90c7e61","tags":["REM"],"sleepDay":{"year":2024,"month":3,"day":28},"processingDateTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":34}},"startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":0}},"endTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":45,"second":0}},"summaryId":"abcdefg","calendarDate":"2021-01-01","startTimeInSeconds":1711633200,"startTimeOffsetInSeconds":1711633500,"durationInSeconds":3900,"deepSleepDurationInSeconds":600,"lightSleepDurationInSeconds":600,"awakeDurationInSeconds":600,"validation":"Complex","sleepLevelsMap":{"light":[{"startTimeInSeconds":1,"endTimeInSeconds":2,"duration":1}]},"remSleepSeconds":600,"unmeasurableSeconds":600,"sleepSeconds":3600,"sleepEfficiency":0.98,"source":"Hub","outdated":false,"sleepScoreValue":null,"sleepScoreQualifier":null,"sleepAssessments":null,"sleepScores":null,"timeOffsetSleepRespiration":null,"timeOffsetSleepSpo2":null}]
Stress
Stress values for a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this bbi record |
|
|
Month of the start of this bbi record |
|
|
Year of the start of this bbi record |
|
|
Hour of the start of this bbi record |
|
|
Minute of the start of this bbi record |
|
|
Second of the start of this bbi record |
|
|
Timestamp of this record in seconds |
|
|
Timezone offset in seconds |
|
|
Description of the origin of this record |
|
|
Stress score |
|
|
Average stress intensity. |
|
|
Energy level, value: 0 - 100 or 127 for invalid value. |
|
|
Status of the every level |
|
|
Calendar date of this record as string |
GET /v1/users/6605756fdf579919e90c7e86/stress?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1066
[{"id":"6605756fdf579919e90c7e89","userId":"6605756fdf579919e90c7e86","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"startTimeInSeconds":1711633201,"startTimeOffsetInSeconds":0,"calendarDate":"2021-01-01","source":"GARMIN","stressLevelValue":50,"averageIntensity":7,"bodyBattery":48,"bodyBatteryStatus":0},{"id":"6605756fdf579919e90c7e8a","userId":"6605756fdf579919e90c7e86","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"startTimeInSeconds":1711633202,"startTimeOffsetInSeconds":0,"calendarDate":"2021-01-01","source":"GARMIN","stressLevelValue":60,"averageIntensity":7,"bodyBattery":47,"bodyBatteryStatus":0},{"id":"6605756fdf579919e90c7e8b","userId":"6605756fdf579919e90c7e86","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"startTimeInSeconds":1711633203,"startTimeOffsetInSeconds":0,"calendarDate":"2021-01-01","source":"GARMIN","stressLevelValue":70,"averageIntensity":7,"bodyBattery":46,"bodyBatteryStatus":0}]
BBI
BBI for a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
User identifier |
|
|
Day of the start of this bbi record |
|
|
Month of the start of this bbi record |
|
|
Year of the start of this bbi record |
|
|
Hour of the start of this bbi record |
|
|
Minute of the start of this bbi record |
|
|
Second of the start of this bbi record |
|
|
Timestamp of this record |
|
|
BBI value in ms. |
GET /v1/users/6605756ddf579919e90c7e40/bbi?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 613
[{"id":"6605756ddf579919e90c7e43","userId":"6605756ddf579919e90c7e40","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestamp":1711633201000,"value":300},{"id":"6605756ddf579919e90c7e44","userId":"6605756ddf579919e90c7e40","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"timestamp":1711633202000,"value":400},{"id":"6605756ddf579919e90c7e45","userId":"6605756ddf579919e90c7e40","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"timestamp":1711633203000,"value":500}]
Step Log
Step Log for a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Timestamp of this record in milliseconds |
|
|
Timezone offset in seconds |
|
|
Step count within the last time period |
|
|
The total steps of this day. |
GET /v1/users/66057570df579919e90c7ea4/stepLog?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 724
[{"id":"66057570df579919e90c7ea7","userId":"66057570df579919e90c7ea4","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633201000,"stepCount":10,"totalCount":10,"offsetInSec":0},{"id":"66057570df579919e90c7ea8","userId":"66057570df579919e90c7ea4","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"timestampMs":1711633202000,"stepCount":20,"totalCount":30,"offsetInSec":0},{"id":"66057570df579919e90c7ea9","userId":"66057570df579919e90c7ea4","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"timestampMs":1711633203000,"stepCount":30,"totalCount":60,"offsetInSec":0}]
Respiration
Respiration for a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Timestamp of this record in milliseconds |
|
|
Timezone offset in seconds |
|
|
Description of the origin of this record |
|
|
The respiration rate |
GET /v1/users/6605756edf579919e90c7e56/respiration?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 718
[{"id":"6605756edf579919e90c7e59","userId":"6605756edf579919e90c7e56","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"source":"TEST","timestampMs":1711633201000,"value":50.0,"offsetInSec":0},{"id":"6605756edf579919e90c7e5a","userId":"6605756edf579919e90c7e56","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"source":"TEST","timestampMs":1711633202000,"value":60.0,"offsetInSec":0},{"id":"6605756edf579919e90c7e5b","userId":"6605756edf579919e90c7e56","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"source":"TEST","timestampMs":1711633203000,"value":70.0,"offsetInSec":0}]
VO2 Max
VO2 Max of a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Timestamp of the start of this record |
|
|
Timezone offset in seconds |
|
|
the VO2 Max value |
|
|
The fitness age of the user |
GET /v1/users/6605756fdf579919e90c7e91/vo2max?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 418
[{"id":"6605756fdf579919e90c7e94","userId":"6605756fdf579919e90c7e91","timestamp":1711633201,"offsetInSec":0,"vo2Max":41.0,"fitnessAge":21},{"id":"6605756fdf579919e90c7e95","userId":"6605756fdf579919e90c7e91","timestamp":1711633202,"offsetInSec":0,"vo2Max":42.0,"fitnessAge":22},{"id":"6605756fdf579919e90c7e96","userId":"6605756fdf579919e90c7e91","timestamp":1711633203,"offsetInSec":0,"vo2Max":43.0,"fitnessAge":23}]
Pulse Ox
Pulse Ox of a user
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Timestamp of this record in milliseconds |
|
|
Timezone offset in seconds |
|
|
The pulse ox value on percent |
GET /v1/users/6605756ddf579919e90c7e47/pulseOx?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 664
[{"id":"6605756ddf579919e90c7e4a","userId":"6605756ddf579919e90c7e47","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633201000,"value":95,"offsetInSec":0},{"id":"6605756ddf579919e90c7e4b","userId":"6605756ddf579919e90c7e47","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633202000,"value":96,"offsetInSec":0},{"id":"6605756ddf579919e90c7e4c","userId":"6605756ddf579919e90c7e47","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633203000,"value":97,"offsetInSec":0}]
Research Group-API (Project API)
The Research Group API or Project API gives you access to all data related to research groups. A group contains several users and the methods contained in this section can be used to query fitness and health data of all users belonging to a certain research group
A Research group is also known as a project.
Research Group Search (Project Search)
Research Group search can be used to obtain research groups. The id of the research group that is returned in the response can be used to obtain further data with other methods of the Research Group API.
Parameter | Description |
---|---|
|
Query string for the group name |
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Identifier of the research group |
|
|
Name of research group |
|
|
List of users |
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
|
|
Join Code of the group |
GET /v1/researchGroups?query=Group&page=0&size=10 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 396
[{"id":"66057571df579919e90c7ef2","name":"Group","users":[{"id":"66057571df579919e90c7eef","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"},{"id":"66057571df579919e90c7ef0","firstName":"Francisca","lastName":"Lowe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"}],"joinCode":"abcdefg"}]
GET /v1/researchGroups?page=0&size=10 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 396
[{"id":"66057571df579919e90c7ef2","name":"Group","users":[{"id":"66057571df579919e90c7ef0","firstName":"Francisca","lastName":"Lowe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"},{"id":"66057571df579919e90c7eef","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"}],"joinCode":"abcdefg"}]
Research Group Users (Project Users)
The detailed user information of a certain research group that speficied by the user id within the request path.
Parameter | Description |
---|---|
|
Research Group Identifier |
Path | Type | Description |
---|---|---|
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
|
|
'm' for male or 'f' for female |
|
|
ISO Country code (e.g. DE) |
|
|
Optional City of the user |
|
|
Description of the location of a user beside city. E.g. Organization, Room Number,.. |
|
|
ISO Language code (e.g. de) |
|
|
Time Zone Identifier |
|
|
Email of the user |
|
|
Year of Birth (used for calc. of basal metabolism) |
|
|
true, if imperial units are being used. false for metric |
|
|
Height of the user in cm |
|
|
Height Unit (cm or in) |
|
|
Weight of the user in kg |
|
|
Weight Unit (kg or lbs) |
|
|
Basal Metabolism of the user. |
|
|
Last tracker synchronization |
|
|
Name of the tracker, the user is currently using |
|
|
True, if the user is connected. Otherwise false |
|
|
Usual sleep start time (e.g. 2200) |
|
|
Usual sleep end time (e.g. 0600) |
GET /v1/researchGroups/66057570df579919e90c7ebb/users HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1061
[{"id":"66057570df579919e90c7eb9","firstName":"Francisca","lastName":"Lowe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678","basalMetabolism":1234,"gender":"f","country":"DE","city":"Berlin","language":"de","timeZone":"UTC+1","email":"admin@fitrockr.com","yearOfBirth":1985,"height":180,"heightUOM":"cm","weight":80,"weightUOM":"kg","lastSync":"2020-03-04T00:00:00+0100","trackerName":"Garmin","active":true,"usualSleepStartTime":2200,"usualSleepEndTime":600,"imperialUnits":false,"location":null},{"id":"66057570df579919e90c7eb8","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678","basalMetabolism":1234,"gender":"m","country":"DE","city":"Berlin","language":"de","timeZone":"UTC+1","email":"test@fitrockr.com","yearOfBirth":1985,"height":180,"heightUOM":"cm","weight":80,"weightUOM":"kg","lastSync":"2020-03-04T00:00:00+0100","trackerName":"Garmin","active":true,"usualSleepStartTime":2200,"usualSleepEndTime":600,"imperialUnits":false,"location":null}]
Research Group Profile (Project Details)
The detailed profile of a certain research group that specified by the user id within the request path.
Parameter | Description |
---|---|
|
User Identifier |
Path | Type | Description |
---|---|---|
|
|
Identifier of the research group |
|
|
Name of research group |
|
|
List of users |
|
|
Identifier of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Url to retrieve the user profile picture |
|
|
Join Code of the group |
GET /v1/researchGroups/66057572df579919e90c7eff/profile HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 394
{"id":"66057572df579919e90c7eff","name":"Group","users":[{"id":"66057572df579919e90c7efc","firstName":"Gus","lastName":"Ferry","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"},{"id":"66057572df579919e90c7efd","firstName":"Francisca","lastName":"Lowe","profilePicUrl":"https://api.fitrockr.com/api/images/userProfile/download/12345678"}],"joinCode":"abcdefg"}
Daily Summary
A daily summary contains the daily activity data of a user like total calories, steps, distance and also points. This request can be used to get one or more daily summaries. The date range can be specified by request parameters.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Identifier of user to which this object belongs |
|
|
Day of Daily Summary |
|
|
Month of Daily Summary |
|
|
Year of Daily Summary |
|
|
Points of the user on that day |
|
|
Calories of the user on that day |
|
|
Steps of the user on that day |
|
|
Distance of the user on that day |
|
|
Activity Minutes of the user on that day |
GET /v1/researchGroups/66057572df579919e90c7f0c/dailySummaries?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 297
[{"userId":"66057572df579919e90c7f0a","date":{"year":2024,"month":3,"day":29},"points":14,"calories":12,"steps":11,"distance":13,"activityMinutes":15},{"userId":"66057572df579919e90c7f09","date":{"year":2024,"month":3,"day":28},"points":9,"calories":7,"steps":6,"distance":8,"activityMinutes":10}]
Daily Details
Daily Details contains more information on daily base compared to the daily summary.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Identifier of the identifier |
Parameter | Description |
---|---|
|
The start date |
|
The end date |
Path | Type | Description |
---|---|---|
|
|
Identifier of user to which this record belongs |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Day of the end of this record |
|
|
Month of the end of this record |
|
|
Year of the end of this record |
|
|
Hour of the end of this record |
|
|
Minute of the end of this record |
|
|
Second of the end of this record |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Duration in seconds |
|
|
Active calories within the timeframe of this record |
|
|
Distance covered |
|
|
Cumulative duration of activities of moderate intensity (MET 3-6) lasting at least 600s at a time. |
|
|
Cumulative duration of activities of vigorous intensity (MET >6) lasting at least 600s at a time |
|
|
Total number of floors climbed |
|
|
Average stress level of this period |
|
|
Maximum stress level in this period |
|
|
Total stress duration in seconds |
|
|
Number of seconds with rest stress |
|
|
Number of seconds the user was engaged in activity and stress duration was unreliable. |
|
|
Number of seconds with low stress |
|
|
Number of seconds with medium stress |
|
|
Number of seconds with high stress |
|
|
Qualitative stress label. Possible values: unknown, calm, balanced, stressful, very_stressful, calm_awake, balanced_awake, stressful_awake, very_stressful_awake, .. |
|
|
Step goal of the user |
|
|
calorie goal of the user |
|
|
goal for intensity seconds |
|
|
goal for floors climbed |
|
|
Minimum heart rate (bpm) |
|
|
Average heart rate (bpm) |
|
|
Maximum heart rate (bpm) |
|
|
Id of this record |
|
|
Type of activity of this record |
|
|
Calendar date |
|
|
Number of steps |
GET /v1/researchGroups/66057571df579919e90c7edf/dailyDetails?startDate=2024-03-25&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1041
[{"userId":"66057571df579919e90c7edc","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":49,"second":37}},"endTime":{"date":{"year":2024,"month":3,"day":27},"time":{"hour":14,"minute":49,"second":37}},"summaryId":"1b7105","calendarDate":"2021-01-01","startTimeInSeconds":1711464577,"startTimeOffsetInSeconds":0,"durationInSeconds":3600,"activityType":"WALKING","steps":1024,"activeKilocalories":2048.0,"distanceInMeters":512.0,"moderateIntensityDurationInSeconds":1200,"vigorousIntensityDurationInSeconds":600,"floorsClimbed":5,"minHeartRateInBeatsPerMinute":80,"avgHeartRateInBeatsPerMinute":100,"maxHeartRateInBeatsPerMinute":120,"averageStressLevel":89,"maxStressLevel":100,"stressDurationInSeconds":200,"restStressDurationInSeconds":100,"activityStressDurationInSeconds":10,"lowStressDurationInSeconds":20,"mediumStressDurationInSeconds":30,"highStressDurationInSeconds":40,"stressQualifier":"balanced","stepsGoal":5000,"netKilocaloriesGoal":3000,"intensityDurationGoalInSeconds":360,"floorsClimbedGoal":10}]
Heart Rate
The heart rate values of all users belonging to a given research group
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The start date |
|
The end date |
Path | Type | Description |
---|---|---|
|
|
Identifier of user to which this record belongs |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Calendar date |
|
|
The heart rate value. |
GET /v1/researchGroups/66057571df579919e90c7ed6/heartRate?startDate=2024-03-25&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 941
[{"userId":"66057571df579919e90c7ed3","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":49,"second":37}},"calendarDate":"2021-01-01","startTimeInSeconds":1711464577,"startTimeOffsetInSeconds":0,"value":83},{"userId":"66057571df579919e90c7ed3","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":44,"second":37}},"calendarDate":"2021-01-01","startTimeInSeconds":1711464277,"startTimeOffsetInSeconds":0,"value":84},{"userId":"66057571df579919e90c7ed4","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":39,"second":37}},"calendarDate":"2021-01-01","startTimeInSeconds":1711463977,"startTimeOffsetInSeconds":0,"value":85},{"userId":"66057571df579919e90c7ed4","startTime":{"date":{"year":2024,"month":3,"day":26},"time":{"hour":14,"minute":34,"second":37}},"calendarDate":"2021-01-01","startTimeInSeconds":1711463677,"startTimeOffsetInSeconds":0,"value":86}]
Activities
Activites of all users belonging to a certain research group.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
External Id of this activity (optional) |
|
|
Source that recorded this activity |
|
|
Identifier of user to which this activity belongs |
|
|
Day of the start of this activity |
|
|
Month of the start of this activity |
|
|
Year of the start of this activity |
|
|
Hour of the start of this activity |
|
|
Minute of the start of this activity |
|
|
Second of the start of this activity |
|
|
Day of the end of this activity |
|
|
Month of the end of this activity |
|
|
Year of the end of this activity |
|
|
Hour of the end of this activity |
|
|
Minute of the end of this activity |
|
|
Second of the end of this activity |
|
|
Type of the activity (e.g., Running, Walking, Rowing,..) |
|
|
Raw Activity Type from the wearable |
|
|
Duration of activity in seconds |
|
|
Main value of the activity. (e.g. Distance for Walking, Strokes for rowing.) |
|
|
Unit for amount. |
|
|
Burned calories. |
|
|
Distance covered during activity |
|
|
Steps taken during activity |
GET /v1/researchGroups/66057571df579919e90c7eeb/activities?startDate=2024-03-27&endDate=2024-03-30 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 883
[{"id":"66057571df579919e90c7eed","externalId":"A1235","source":"Fitrockr Hub","userId":"66057571df579919e90c7ee9","startDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":19,"second":37}},"endDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":37}},"type":"Walking","rawActivityType":null,"duration":1800000,"amount":4000,"unit":"Meter","calories":200,"distance":4000.0,"steps":4000},{"id":"66057571df579919e90c7eec","externalId":"A1234","source":"Fitrockr Hub","userId":"66057571df579919e90c7ee8","startDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":49,"second":37}},"endDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":37}},"type":"Running","rawActivityType":null,"duration":3600000,"amount":9000,"unit":"Meter","calories":400,"distance":9000.0,"steps":8000}]
Intraday
An intraday record contains the recorded data within a day for a certain timeframe. This request can be used to get one or more intraday records. The date range can be specified by request parameters.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The page to retrieve |
|
Entries per page |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this intraday record |
|
|
Identifier of user to which this record belongs |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Day of the end of this record |
|
|
Month of the end of this record |
|
|
Year of the end of this record |
|
|
Hour of the end of this record |
|
|
Minute of the end of this record |
|
|
Second of the end of this record |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Duration in seconds |
|
|
Active calories within the timeframe of this record |
|
|
Distance covered |
|
|
Active seconds during the timeframe of this record |
|
|
Metabolic equivalent of this record |
|
|
Motion intensity category |
|
|
Mean motion intensity |
|
|
Maximum motion intensity |
|
|
average stress level |
|
|
Maximum stress level |
|
|
Minimum heart rate (bpm) |
|
|
Average heart rate (bpm) |
|
|
Maximum heart rate (bpm) |
|
|
Id of this record |
|
|
Type of activity of this record |
|
|
Calendar date |
|
|
Number of steps |
GET /v1/researchGroups/66057571df579919e90c7ee5/intraDays?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 732
[{"id":"66057571df579919e90c7ee6","userId":"66057571df579919e90c7ee2","summaryId":"1b7105","activityType":"SEDENTARY","calendarDate":"2021-01-01","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":0}},"endTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":45,"second":0}},"startTimeInSeconds":1711633200,"startTimeOffsetInSeconds":1711633500,"durationInSeconds":300,"activeCalories":23,"distance":15,"steps":23,"activeSeconds":5,"metValue":1.2,"intensity":"SEDENTARY","meanMotionIntensity":0.73,"maxMotionIntensity":1.3,"averageStressLevel":20,"maxStressLevel":50,"minHeartRateInBeatsPerMinute":70,"avgHeartRateInBeatsPerMinute":90,"maxHeartRateInBeatsPerMinute":120}]
Motion Intensity
This records contains the intensity of the motion that the tracker recorded for a certain timeframe.
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
User identifier |
|
|
Activity type detected at the time of the record |
|
|
Duration of this record in sec. |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Intensity of the motion |
GET /v1/researchGroups/66057572df579919e90c7f1c/motionIntensity?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 309
[{"id":"66057572df579919e90c7f1d","userId":"66057572df579919e90c7f19","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":0}},"startTimeInSeconds":1711633200,"startTimeOffsetInSeconds":1711633500,"durationInSeconds":300,"activityType":"GENERIC","motionIntensity":23.4}]
Step Log
Step Log for a all users of a research group
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
User Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Timestamp of this record in milliseconds |
|
|
Timezone offset in seconds |
|
|
Step count within the last time period |
|
|
The total steps of this day. |
GET /v1/researchGroups/66057572df579919e90c7f14/stepLog?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 724
[{"id":"66057572df579919e90c7f15","userId":"66057572df579919e90c7f11","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633201000,"stepCount":10,"totalCount":10,"offsetInSec":0},{"id":"66057572df579919e90c7f16","userId":"66057572df579919e90c7f11","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"timestampMs":1711633202000,"stepCount":20,"totalCount":30,"offsetInSec":0},{"id":"66057572df579919e90c7f17","userId":"66057572df579919e90c7f12","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"timestampMs":1711633203000,"stepCount":30,"totalCount":60,"offsetInSec":0}]
Sleep
Sleep Records for all users for a research group
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
Identifier of user to which this activity belongs |
|
|
Tagged, if day sleep, night sleep, nap or rem sleep |
|
|
The sleep was marked as outdated, because of new data received afterwards |
|
|
Day, the sleep is assigned to |
|
|
Month, the sleep is assigned to |
|
|
Year, the sleep is assigned to |
|
|
Internal summary id of this sleep |
|
|
Day, the sleep started |
|
|
Day of the processing time of this sleep |
|
|
Month of the processing time of this sleep |
|
|
Year of the processing time of this sleep |
|
|
Hour of the processing time of this sleep |
|
|
Minute of the processing time of this sleep |
|
|
Second of the processing time of this sleep |
|
|
Day of the start of this sleep |
|
|
Month of the start of this sleep |
|
|
Year of the start of this sleep |
|
|
Hour of the start of this sleep |
|
|
Minute of the start of this sleep |
|
|
Second of the start of this sleep |
|
|
Day of the end of this sleep |
|
|
Month of the end of this sleep |
|
|
Year of the end of this sleep |
|
|
Hour of the end of this sleep |
|
|
Minute of the end of this sleep |
|
|
Second of the end of this sleep |
|
|
Start time in seconds since begin of epoc |
|
|
Time zone offset in sec. at beginning of record |
|
|
Duration of this record in sec. |
|
|
Sum of deep sleep seconds. |
|
|
Sum of light sleep seconds |
|
|
Sum of seconds awake. |
|
|
Sum of rem sleep seconds. |
|
|
Sum of seconds not measurable. |
|
|
Sum of total seconds asleep. |
|
|
Ratio of total seconds asleep vs. awake. |
|
|
Source of this sleep record |
|
|
Start Time of this sleep phase in sec |
|
|
End Time of this sleep phase in sec |
|
|
Duration of this sleep phase in sec |
|
|
Value 0-100 scoring the sleep |
|
|
A human readable qualifier for the sleep score |
|
|
The |
|
|
|
|
|
|
|
|
|
|
|
Source of sleep validation |
GET /v1/researchGroups/66057571df579919e90c7ed0/sleep?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1055
[{"id":"66057571df579919e90c7ed1","userId":"66057571df579919e90c7ecd","tags":["REM"],"sleepDay":{"year":2024,"month":3,"day":28},"processingDateTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":37}},"startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":0}},"endTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":45,"second":0}},"summaryId":"abcdefg","calendarDate":"2021-01-01","startTimeInSeconds":1711633200,"startTimeOffsetInSeconds":1711633500,"durationInSeconds":3900,"deepSleepDurationInSeconds":600,"lightSleepDurationInSeconds":600,"awakeDurationInSeconds":600,"validation":"Complex","sleepLevelsMap":{"light":[{"startTimeInSeconds":1,"endTimeInSeconds":2,"duration":1}]},"remSleepSeconds":600,"unmeasurableSeconds":600,"sleepSeconds":3600,"sleepEfficiency":0.98,"source":"Hub","outdated":false,"sleepScoreValue":null,"sleepScoreQualifier":null,"sleepAssessments":null,"sleepScores":null,"timeOffsetSleepRespiration":null,"timeOffsetSleepSpo2":null}]
Stress
Stress values for all users belonging to a research group
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this bbi record |
|
|
Month of the start of this bbi record |
|
|
Year of the start of this bbi record |
|
|
Hour of the start of this bbi record |
|
|
Minute of the start of this bbi record |
|
|
Second of the start of this bbi record |
|
|
Timestamp of this record in seconds |
|
|
Timezone offset in seconds |
|
|
Description of the origin of this record |
|
|
Stress score |
|
|
Average stress intensity. |
|
|
Energy level, value: 0 - 100 or 127 for invalid value. |
|
|
Status of the every level |
|
|
Calendar date of this record as string |
GET /v1/researchGroups/66057572df579919e90c7ef7/stress?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1066
[{"id":"66057572df579919e90c7ef8","userId":"66057572df579919e90c7ef4","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"startTimeInSeconds":1711633201,"startTimeOffsetInSeconds":0,"calendarDate":"2021-01-01","source":"GARMIN","stressLevelValue":50,"averageIntensity":7,"bodyBattery":48,"bodyBatteryStatus":0},{"id":"66057572df579919e90c7ef9","userId":"66057572df579919e90c7ef4","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"startTimeInSeconds":1711633202,"startTimeOffsetInSeconds":0,"calendarDate":"2021-01-01","source":"GARMIN","stressLevelValue":60,"averageIntensity":7,"bodyBattery":47,"bodyBatteryStatus":0},{"id":"66057572df579919e90c7efa","userId":"66057572df579919e90c7ef5","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"startTimeInSeconds":1711633203,"startTimeOffsetInSeconds":0,"calendarDate":"2021-01-01","source":"GARMIN","stressLevelValue":70,"averageIntensity":7,"bodyBattery":46,"bodyBatteryStatus":0}]
BBI
BBI for all users of a certain research group
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this activity |
|
|
User identifier |
|
|
Day of the start of this bbi record |
|
|
Month of the start of this bbi record |
|
|
Year of the start of this bbi record |
|
|
Hour of the start of this bbi record |
|
|
Minute of the start of this bbi record |
|
|
Second of the start of this bbi record |
|
|
Timestamp of this record |
|
|
BBI value in ms. |
GET /v1/researchGroups/66057570df579919e90c7eb3/bbi?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 613
[{"id":"66057570df579919e90c7eb4","userId":"66057570df579919e90c7eb0","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestamp":1711633201000,"value":300},{"id":"66057570df579919e90c7eb5","userId":"66057570df579919e90c7eb0","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"timestamp":1711633202000,"value":400},{"id":"66057570df579919e90c7eb6","userId":"66057570df579919e90c7eb1","startTime":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"timestamp":1711633203000,"value":500}]
Respiration
Respiration for all users contained in research groups
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Timestamp of this record in milliseconds |
|
|
Timezone offset in seconds |
|
|
Description of the origin of this record |
|
|
The respiration rate |
GET /v1/researchGroups/66057571df579919e90c7ec8/respiration?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 718
[{"id":"66057571df579919e90c7ec9","userId":"66057571df579919e90c7ec5","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"source":"TEST","timestampMs":1711633201000,"value":50.0,"offsetInSec":0},{"id":"66057571df579919e90c7eca","userId":"66057571df579919e90c7ec5","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":2}},"source":"TEST","timestampMs":1711633202000,"value":60.0,"offsetInSec":0},{"id":"66057571df579919e90c7ecb","userId":"66057571df579919e90c7ec6","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":3}},"source":"TEST","timestampMs":1711633203000,"value":70.0,"offsetInSec":0}]
VO2 Max
VO2 Max of all users of research groups
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Timestamp of the start of this record |
|
|
Timezone offset in seconds |
|
|
the VO2 Max value |
|
|
The fitness age of the user |
GET /v1/researchGroups/66057572df579919e90c7f04/vo2max?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 418
[{"id":"66057572df579919e90c7f05","userId":"66057572df579919e90c7f01","timestamp":1711633201,"offsetInSec":0,"vo2Max":41.0,"fitnessAge":21},{"id":"66057572df579919e90c7f06","userId":"66057572df579919e90c7f01","timestamp":1711633202,"offsetInSec":0,"vo2Max":42.0,"fitnessAge":22},{"id":"66057572df579919e90c7f07","userId":"66057572df579919e90c7f01","timestamp":1711633203,"offsetInSec":0,"vo2Max":43.0,"fitnessAge":23}]
Pulse Ox
Pulse Ox of all users of research groups
Note
|
The result has always a descending sort order. |
Parameter | Description |
---|---|
|
Research Group Identifier |
Parameter | Description |
---|---|
|
The Start Date |
|
The End Date |
Path | Type | Description |
---|---|---|
|
|
Unique Identifier of this record |
|
|
User identifier |
|
|
Day of the start of this record |
|
|
Month of the start of this record |
|
|
Year of the start of this record |
|
|
Hour of the start of this record |
|
|
Minute of the start of this record |
|
|
Second of the start of this record |
|
|
Timestamp of this record in milliseconds |
|
|
Timezone offset in seconds |
|
|
The pulse ox value on percent |
GET /v1/researchGroups/66057570df579919e90c7ec0/pulseOx?startDate=2024-03-28&endDate=2024-03-29 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 664
[{"id":"66057570df579919e90c7ec1","userId":"66057570df579919e90c7ebd","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633201000,"value":95,"offsetInSec":0},{"id":"66057570df579919e90c7ec2","userId":"66057570df579919e90c7ebd","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633202000,"value":96,"offsetInSec":0},{"id":"66057570df579919e90c7ec3","userId":"66057570df579919e90c7ebe","timestamp":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":40,"second":1}},"timestampMs":1711633203000,"value":97,"offsetInSec":0}]
Health-Report-API
This api is used to generate health kpi reports for a user and a certain timeframe
All Reports
Get all available health reports
Path | Type | Description |
---|---|---|
|
|
Identifier of the report |
|
|
true, if this is the default report shown in the ui |
|
|
Name of the report |
GET /v1/healthReports HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 110
[{"id":"123","defaultReport":true,"name":"Report 123"},{"id":"234","defaultReport":false,"name":"Report 234"}]
Health Kpi Report
Generate a health kpi report for a certain user and timeframe.
Parameter | Description |
---|---|
|
The Id of the report templated. |
|
The Id of the user that should be reported. |
|
ISO Formatted Start Day of Reporting Period. |
|
ISO Formatted End Day of Reporting Period. |
Path | Type | Description |
---|---|---|
|
|
Identifier of the kpi group |
|
|
Name of the kpi group |
|
|
List of generated kpis |
|
|
Identifier for a kpi |
|
|
Human readable name |
|
|
Optional description of the kpi |
|
|
Raw numeric value of the kpi |
|
|
Formatted value including unit |
|
|
Unit of kpi, if applicable |
|
|
Raw numeric value of the comparison period |
|
|
Formatted value inclusing unit of the comparison period |
|
|
Comparison difference in percentage |
GET /v1/healthReports/123/66057576df579919e90c7f4f/2024-03-25/2024-03-27 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1211
[{"key":null,"name":"Base","kpis":[{"key":"avgCalories","name":"avgCalories","description":"avgCalories","numericValue":3000.0,"formattedValue":"3000","unit":null,"comparisonNumericValue":null,"comparisonFormattedValue":null,"comparisonDifferencePercentage":null},{"key":"avgSteps","name":"avgSteps","description":"avgSteps","numericValue":10000.0,"formattedValue":"10000","unit":null,"comparisonNumericValue":null,"comparisonFormattedValue":null,"comparisonDifferencePercentage":null}]},{"key":null,"name":"Body","kpis":[{"key":"avgBMI","name":"avgBMI","description":"avgBMI","numericValue":15.0,"formattedValue":"15.0","unit":null,"comparisonNumericValue":null,"comparisonFormattedValue":null,"comparisonDifferencePercentage":null},{"key":"avgWeight","name":"avgWeight","description":"avgWeight","numericValue":60.0,"formattedValue":"60.0","unit":null,"comparisonNumericValue":null,"comparisonFormattedValue":null,"comparisonDifferencePercentage":null},{"key":"avgBodyFatPercentage","name":"avgBodyFatPercentage","description":"avgBodyFatPercentage","numericValue":30.0,"formattedValue":"30.0","unit":null,"comparisonNumericValue":null,"comparisonFormattedValue":null,"comparisonDifferencePercentage":null}]}]
Health Kpi Report (PDF)
Generate a health kpi report for a certain user and timeframe and return it as application/pdf
GET /v1/healthReports/123/612b571f5b5a2c50bf1daa1c/2021-08-26/2021-08-28/pdf HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
Rendered PDF report.
Health Kpi Comparison Report
Generate a health kpi report for a certain user and timeframe with a comparison period.
Parameter | Description |
---|---|
|
The Id of the report templated. |
|
The Id of the user that should be reported. |
|
ISO Formatted Start Day of first Reporting Period. |
|
ISO Formatted End Day of first Reporting Period. |
|
ISO Formatted Start Day of second Reporting Period. |
|
ISO Formatted End Day of second Reporting Period. |
Path | Type | Description |
---|---|---|
|
|
Identifier of the kpi group |
|
|
Name of the kpi group |
|
|
List of generated kpis |
|
|
Identifier for a kpi |
|
|
Human readable name |
|
|
Optional description of the kpi |
|
|
Raw numeric value of the kpi |
|
|
Formatted value including unit |
|
|
Unit of kpi, if applicable |
|
|
Raw numeric value of the comparison period |
|
|
Formatted value inclusing unit of the comparison period |
|
|
Comparison difference in percentage |
GET /v1/healthReports/123/66057576df579919e90c7f31/2024-03-25/2024-03-25/2024-03-27/2024-03-27 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1230
[{"key":null,"name":"Base","kpis":[{"key":"avgCalories","name":"avgCalories","description":"avgCalories","numericValue":2000.0,"formattedValue":"2000","unit":null,"comparisonNumericValue":4000.0,"comparisonFormattedValue":"4000","comparisonDifferencePercentage":50.0},{"key":"avgSteps","name":"avgSteps","description":"avgSteps","numericValue":10000.0,"formattedValue":"10000","unit":null,"comparisonNumericValue":10000.0,"comparisonFormattedValue":"10000","comparisonDifferencePercentage":0.0}]},{"key":null,"name":"Body","kpis":[{"key":"avgBMI","name":"avgBMI","description":"avgBMI","numericValue":20.0,"formattedValue":"20.0","unit":null,"comparisonNumericValue":10.0,"comparisonFormattedValue":"10.0","comparisonDifferencePercentage":-100.0},{"key":"avgWeight","name":"avgWeight","description":"avgWeight","numericValue":40.0,"formattedValue":"40.0","unit":null,"comparisonNumericValue":80.0,"comparisonFormattedValue":"80.0","comparisonDifferencePercentage":50.0},{"key":"avgBodyFatPercentage","name":"avgBodyFatPercentage","description":"avgBodyFatPercentage","numericValue":40.0,"formattedValue":"40.0","unit":null,"comparisonNumericValue":20.0,"comparisonFormattedValue":"20.0","comparisonDifferencePercentage":-100.0}]}]
Health Kpi Comparison Report (PDF)
Generate a health kpi comparison report for a certain user and timeframe and return it as application/pdf
GET /v1/healthReports/123/612b9b32f6ff0d62493fecc4/2021-08-26/2021-08-26/2021-08-28/2021-08-28/pdf HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
Rendered PDF report.
HRV Export API
Endpoint to generate and download hrv exports
Generate HRV Report
Triggers the creation of an hrv report.
Path | Type | Description |
---|---|---|
|
|
List of user identifiers for generating the report |
|
|
Start date of the report |
|
|
Day of the start date of this export |
|
|
Month of the start date of this export |
|
|
Year of the start date of this export |
|
|
Day of the end date of this export |
|
|
Month of the end date of this export |
|
|
Year of the end date of this export |
|
|
Time zone of the measurements (e.g. UTC) |
|
|
Hour of the start of the measurement period |
|
|
Minute of the start of the measurement period |
|
|
Second of the start of the measurement period |
|
|
Hour of the end of the measurement period |
|
|
Minute of the end of the measurement period |
|
|
Second of the end of the measurement period |
Path | Type | Description |
---|---|---|
|
|
timezone offset in seconds that is used in the report |
|
|
Name of this export |
|
|
The hrv report |
|
|
id of this user of this report item |
|
|
Name of this user of this report item |
|
|
Day of this measurement |
|
|
Month of this measurement |
|
|
Year of this measurement |
|
|
Day |
|
|
Start Time as sec of day |
|
|
End Time as sec of day |
|
|
Timeframe as String |
|
|
Minimum BBI Value |
|
|
Average BBI Value |
|
|
Maximum BBI Value |
|
|
SDNN: Standard deviation of the IBI of normal sinus beats (SDNN) |
|
|
RMSSD: Root mean square of successive RR interval differences |
|
|
SD1/SD2: Ratio of SD1 to SD2 |
|
|
PNN50: percentage of successive RR intervals that differ by more than 50 ms |
|
|
LF/HF: Ratio of LF to HF power |
|
|
VLF: Power in the very low-frequency range (0.0033 – 0.04 Hz) |
|
|
LF: Power in the low-frequency range (0.04 – 0.15 Hz) |
|
|
HF: Power in the high-frequency range (0.15 – 0.4 Hz) |
|
|
TP: Total Power |
POST /v1/hrvReport HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Content-Length: 249
Host: localhost:8080
{"startTime":{"year":2020,"month":1,"day":1},"endTime":{"year":2020,"month":1,"day":1},"timeZone":"UTC","userIds":["66057576df579919e90c7f3e"],"measurementTimes":[{"start":{"hour":0,"minute":0,"second":0},"end":{"hour":23,"minute":59,"second":59}}]}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 64
{"timeZoneOffset":0,"timeframes":["00:00 - 23:00"],"hrvData":[]}
Event API
Endpoint to get data from events
Get all events
Returns the list of all active and inactive events
Path | Type | Description |
---|---|---|
|
|
Identifier of this event |
|
|
Title describing the event |
|
|
Description of the event |
|
|
Day when the event will be visible to the participants for registration |
|
|
Month when the event will be visible to the participants for registration |
|
|
Year when the event will be visible to the participants for registration |
|
|
Day until when the event will be visible to the participants |
|
|
Month until when the event will be visible to the participants |
|
|
Year until when the event will be visible to the participants |
|
|
Day when the data collection will be started |
|
|
Month when the data collection will be started |
|
|
Year when the data collection will be started |
|
|
Day when the data collection will end |
|
|
Month when the data collection will end |
|
|
Year when the data collection will end |
|
|
Number of persons participating in the event |
GET /v1/events HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 519
[{"id":"123","title":"Event 123","description":null,"visibleFrom":{"year":2024,"month":3,"day":28},"visibleTo":{"year":2024,"month":3,"day":28},"activeFrom":{"year":2024,"month":3,"day":28},"activeTo":{"year":2024,"month":3,"day":28},"numberOfParticipants":1},{"id":"234","title":"Event 234","description":null,"visibleFrom":{"year":2024,"month":3,"day":28},"visibleTo":{"year":2024,"month":3,"day":28},"activeFrom":{"year":2024,"month":3,"day":28},"activeTo":{"year":2024,"month":3,"day":28},"numberOfParticipants":1}]
Get event by id
Returns an event by id.
Parameter | Description |
---|---|
|
The id the event |
Path | Type | Description |
---|---|---|
|
|
Identifier of this event |
|
|
Title describing the event |
|
|
Description of the event |
|
|
Day when the event will be visible to the participants for registration |
|
|
Month when the event will be visible to the participants for registration |
|
|
Year when the event will be visible to the participants for registration |
|
|
Day until when the event will be visible to the participants |
|
|
Month until when the event will be visible to the participants |
|
|
Year until when the event will be visible to the participants |
|
|
Day when the data collection will be started |
|
|
Month when the data collection will be started |
|
|
Year when the data collection will be started |
|
|
Day when the data collection will end |
|
|
Month when the data collection will end |
|
|
Year when the data collection will end |
|
|
Number of persons participating in the event |
GET /v1/events/123 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 258
{"id":"123","title":"Event 123","description":null,"visibleFrom":{"year":2024,"month":3,"day":28},"visibleTo":{"year":2024,"month":3,"day":28},"activeFrom":{"year":2024,"month":3,"day":28},"activeTo":{"year":2024,"month":3,"day":28},"numberOfParticipants":1}
Get event users
Returns the users of a given event
Parameter | Description |
---|---|
|
The id the event |
Path | Type | Description |
---|---|---|
|
|
Identifier of this user |
|
|
City of the participant |
|
|
Gender of the participant |
|
|
State of the participant |
|
|
Country of the participant |
|
|
Age of the participant |
GET /v1/events/123/users HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 102
[{"id":"66057578df579919e90c7f66","city":"Berlin","gender":null,"state":null,"country":"DE","age":39}]
Get health data for event
Returns the health data for given users of an event
Parameter | Description |
---|---|
|
The id the event |
Parameter | Description |
---|---|
|
The id the event |
Path | Type | Description |
---|---|---|
|
|
Contains user-information |
|
|
The health log records |
|
|
Contains the user id, if a single user was queried. |
|
|
Start time of this period in sec. since 1970 |
|
|
Duration of this time period |
|
|
Offset if the time period |
|
|
Information about the base fitness of the users |
|
|
Total gamification points |
|
|
Total calories |
|
|
Total steps |
|
|
Total distance |
|
|
The average motion intensity |
|
|
The maximum motion intensity |
|
|
The average number of seconds with moderate motion intensity |
|
|
The average number of seconds with vigorous motion intensity |
|
|
The average number of seconds that were active |
|
|
The MVPA minutes |
|
|
The MET minutes |
|
|
The minimum MET (metabolic equivalent of task) |
|
|
The average MET (metabolic equivalent of task) |
|
|
The maximum MET (metabolic equivalent of task) |
|
|
Information about the stress of the users |
|
|
Minimum stress |
|
|
Average stress |
|
|
Maximum stress |
|
|
Human readable stress qualifier of the average stress |
|
|
Sum of rest stress seconds |
|
|
Sum of low stress seconds |
|
|
Sum of medium stress seconds |
|
|
Sum of high stress seconds |
|
|
Information about the body battery of the users |
|
|
Minimum value of the body battery |
|
|
Average body battery |
|
|
Maximum body battery value |
|
|
Information about the sleep in this timeframe |
|
|
Total duration of the awake times |
|
|
Total duration of the light sleep phases |
|
|
Total duration of the deep sleep phases |
|
|
Total duration of the rem sleep phases |
|
|
Dominant sleep phase |
|
|
Information about the bbi in this timeframe |
|
|
Minimum bbi value |
|
|
Average bbi value |
|
|
Maximum bbi value |
|
|
SDNN |
|
|
RMSSD |
|
|
SD1/SD2 |
|
|
Deviation > 50ms |
|
|
LH/HF |
|
|
Information about the heart rate within this timeframe |
|
|
Minimum heart rate |
|
|
Maximum heart rate |
|
|
Average heart rate |
|
|
Seconds with resting heart rate |
|
|
Seconds with high heart rate |
|
|
Seconds with medium heart rate |
|
|
Seconds with low heart rate |
|
|
Information about the activities in this timeframe |
|
|
Dominant activity type |
|
|
Total duration of all activities |
|
|
Total distance of all activities |
|
|
Total steps of all activities |
|
|
Information about the overall pulse ox |
|
|
Miniumum pulse ox saturation |
|
|
Average pulse ox saturation |
|
|
Maximum pulse ox saturation |
|
|
Information about the respiration |
|
|
Minimum respiration |
|
|
Maximum respiration |
|
|
Average Respiration |
|
|
instance 1 actigraphy information |
|
|
Total number of zero crossings |
|
|
Maximum number of zero crossings |
|
|
Average number of zero crossings |
|
|
Minimum number of zero crossings |
|
|
Total enery |
|
|
Total time above threshold |
|
|
instance 2 actigraphy information (Details see actigraphy 1) |
|
|
instance 3 actigraphy information (Details see actigraphy 1) |
POST /v1/events/123/data HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Content-Length: 466
Host: localhost:8080
{"userIds":["66057578df579919e90c7f5d"],"startDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":10,"minute":0,"second":0}},"endDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":15,"minute":0,"second":0}},"timeZoneCode":null,"resolutionInMinutes":60,"processIntraday":true,"processStress":true,"processSleep":false,"processHrv":false,"processHr":true,"processActivity":true,"processPulseOx":false,"respiration":false,"processActigraphy":false}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1789
{"baseData":null,"records":[{"userId":null,"timePeriod":{"startTimeInSeconds":1711620000,"durationInSeconds":3599,"offsetInSeconds":0},"baseFitness":null,"stressData":null,"bodyBatteryData":null,"sleepData":null,"bbiData":null,"heartRateData":null,"activityData":null,"pulseOxData":null,"respirationData":null,"actigraphyData1":null,"actigraphyData2":null,"actigraphyData3":null},{"userId":null,"timePeriod":{"startTimeInSeconds":1711623600,"durationInSeconds":3599,"offsetInSeconds":0},"baseFitness":null,"stressData":null,"bodyBatteryData":null,"sleepData":null,"bbiData":null,"heartRateData":null,"activityData":null,"pulseOxData":null,"respirationData":null,"actigraphyData1":null,"actigraphyData2":null,"actigraphyData3":null},{"userId":null,"timePeriod":{"startTimeInSeconds":1711627200,"durationInSeconds":3599,"offsetInSeconds":0},"baseFitness":null,"stressData":null,"bodyBatteryData":null,"sleepData":null,"bbiData":null,"heartRateData":null,"activityData":null,"pulseOxData":null,"respirationData":null,"actigraphyData1":null,"actigraphyData2":null,"actigraphyData3":null},{"userId":null,"timePeriod":{"startTimeInSeconds":1711630800,"durationInSeconds":3599,"offsetInSeconds":0},"baseFitness":null,"stressData":null,"bodyBatteryData":null,"sleepData":null,"bbiData":null,"heartRateData":null,"activityData":null,"pulseOxData":null,"respirationData":null,"actigraphyData1":null,"actigraphyData2":null,"actigraphyData3":null},{"userId":null,"timePeriod":{"startTimeInSeconds":1711634400,"durationInSeconds":3599,"offsetInSeconds":0},"baseFitness":null,"stressData":null,"bodyBatteryData":null,"sleepData":null,"bbiData":null,"heartRateData":null,"activityData":null,"pulseOxData":null,"respirationData":null,"actigraphyData1":null,"actigraphyData2":null,"actigraphyData3":null}]}
Data Export API
Endpoint to generate and download data exports
All User Report
Triggers the creation of an all user report.
Parameter | Description |
---|---|
|
The Id of user triggered this report |
Path | Type | Description |
---|---|---|
|
|
Identifier of the report |
|
|
Name of this export |
|
|
id of this user that created this export |
|
|
name of the user that created this export |
|
|
Day of the creation of this export |
|
|
Month of the creation of this export |
|
|
Year of the creation of this export |
|
|
Hour of the creation of this export |
|
|
Minute of the creation of this export |
|
|
Second of the creation of this export |
|
|
Current export status as textual message |
|
|
Number of current data items already exported |
|
|
Number of total data items to be exported |
|
|
True, if the user data should be exported. |
|
|
True, if the analytics data should be exported. |
|
|
True, if the daily data should be exported. |
|
|
True, if the activity data should be exported. |
|
|
True, if the motion intensity data should be exported. |
|
|
True, if the bbi data should be exported. |
|
|
True, if the spo2 logging data should be exported. |
|
|
True, if the respiration data should be exported. |
|
|
True, if the step logging data should be exported. |
|
|
True, if the zero crossing data should be exported. |
|
|
True, if the body composition data should be exported. |
|
|
True, if the stress data should be exported. |
|
|
True, if the heart rate data should be exported. |
|
|
True, if the daily steps by date data should be exported. |
|
|
True, if the epoc data should be exported. |
|
|
True, if the sleep data should be exported. |
|
|
True, if the vo2 max data should be exported. |
|
|
True, if the spo2 data should be exported. |
|
|
True, if the raw accelerometer data should be exported (JSON only). |
|
|
True, if the raw gyroscope data should be exported (JSON only). |
|
|
Export format (json, xslx, csv.zip,..) |
|
|
Start date (dd.MM.yyyy) of the exported timeframe |
|
|
End date (dd.MM.yyyy) of the exported timeframe |
|
|
Processing status of the export. Ready, if data is available for downloading. Values could be:<br><ul><li>New - Just created</li><li>Queued - Queued for processing</li><li>Processing - Processing the export</li><li>Error - Failed to generate</li><li>Ready - Ready to download</li><ul> |
GET /v1/standardReports/allUserExport/66057576df579919e90c7f45 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 873
{"id":"66057576df579919e90c7f48","exportName":"All Users Export","exportUserId":"66057576df579919e90c7f45","exportUserName":"Gus Ferry","exportCreationDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":49,"second":42}},"progressMessage":null,"progress":0,"total":0,"lastUpdate":null,"allUsers":false,"users":[],"exportUser":false,"exportAnalytics":false,"exportDaily":false,"exportActivity":false,"exportMotionIntensity":false,"exportBbi":false,"exportSpo2Logging":false,"exportRespiration":false,"exportStepLog":false,"exportZeroCrossing":false,"exportBodyComposition":false,"exportStress":false,"exportHeartRate":false,"exportDailyStepsByDate":false,"exportEpoc":false,"exportSleep":false,"exportVo2Max":false,"exportSpo2":false,"exportRawAccelerometer":false,"exportRawGyroscope":false,"format":null,"startDate":null,"endDate":null,"status":"New"}
All Data Export
Return a list of all available data exports
Path | Type | Description |
---|---|---|
|
|
Identifier of the report |
|
|
Name of this export |
|
|
id of this user that created this export |
|
|
name of the user that created this export |
|
|
Day of the creation of this export |
|
|
Month of the creation of this export |
|
|
Year of the creation of this export |
|
|
Hour of the creation of this export |
|
|
Minute of the creation of this export |
|
|
Second of the creation of this export |
|
|
Day of the last progress update of this export |
|
|
Current export status as textual message |
|
|
Number of current data items already exported |
|
|
Number of total data items to be exported |
|
|
Id of the item included in the export |
|
|
Type of the item (user, group, research group, team,…) included in the export |
|
|
Name of the item included in the export |
|
|
True, if the user data should be exported. |
|
|
True, if the analytics data should be exported. |
|
|
True, if the daily data should be exported. |
|
|
True, if the activity data should be exported. |
|
|
True, if the motion intensity data should be exported. |
|
|
True, if the bbi data should be exported. |
|
|
True, if the spo2 logging data should be exported. |
|
|
True, if the respiration data should be exported. |
|
|
True, if the step logging data should be exported. |
|
|
True, if the zero crossing data should be exported. |
|
|
True, if the body composition data should be exported. |
|
|
True, if the stress data should be exported. |
|
|
True, if the heart rate data should be exported. |
|
|
True, if the daily steps by date data should be exported. |
|
|
True, if the epoc data should be exported. |
|
|
True, if the sleep data should be exported. |
|
|
True, if the vo2 max data should be exported. |
|
|
True, if the spo2 data should be exported. |
|
|
True, if the raw accelerometer data should be exported (JSON only). |
|
|
True, if the raw gyroscope data should be exported (JSON only). |
|
|
Export format (json, xslx, csv.zip,..) |
|
|
Start date (dd.MM.yyyy) of the exported timeframe |
|
|
End date (dd.MM.yyyy) of the exported timeframe |
|
|
Processing status of the export. Ready, if data is available for downloading. Values could be:<br><ul><li>New - Just created</li><li>Queued - Queued for processing</li><li>Processing - Processing the export</li><li>Error - Failed to generate</li><li>Ready - Ready to download</li><ul> |
GET /v1/dataExports HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1841
[{"id":"124","exportName":"Report 124","exportUserId":"66057576df579919e90c7f3a","exportUserName":"Gus","exportCreationDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":42}},"progressMessage":null,"progress":0,"total":0,"lastUpdate":null,"allUsers":false,"users":[{"id":"66057576df579919e90c7f3a","type":"user","name":"Gus"}],"exportUser":false,"exportAnalytics":false,"exportDaily":false,"exportActivity":false,"exportMotionIntensity":false,"exportBbi":true,"exportSpo2Logging":false,"exportRespiration":false,"exportStepLog":false,"exportZeroCrossing":false,"exportBodyComposition":false,"exportStress":false,"exportHeartRate":false,"exportDailyStepsByDate":false,"exportEpoc":false,"exportSleep":false,"exportVo2Max":false,"exportSpo2":false,"exportRawAccelerometer":false,"exportRawGyroscope":false,"format":"json","startDate":"01.01.2021","endDate":"05.01.2021","status":"Ready"},{"id":"123","exportName":"Report 123","exportUserId":"66057576df579919e90c7f3a","exportUserName":"Gus","exportCreationDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":42}},"progressMessage":null,"progress":0,"total":0,"lastUpdate":null,"allUsers":false,"users":[{"id":"66057576df579919e90c7f3a","type":"user","name":"Gus"}],"exportUser":false,"exportAnalytics":false,"exportDaily":false,"exportActivity":false,"exportMotionIntensity":false,"exportBbi":true,"exportSpo2Logging":false,"exportRespiration":false,"exportStepLog":false,"exportZeroCrossing":false,"exportBodyComposition":false,"exportStress":false,"exportHeartRate":false,"exportDailyStepsByDate":false,"exportEpoc":false,"exportSleep":false,"exportVo2Max":false,"exportSpo2":false,"exportRawAccelerometer":false,"exportRawGyroscope":false,"format":"json","startDate":"01.01.2021","endDate":"05.01.2021","status":"Ready"}]
Create Data Export
Method to create a new data export. The report will be generated in background.
Path | Type | Description |
---|---|---|
|
|
Start date of the data export (format: dd.MM.yyyy) |
|
|
End date of the data export (format: dd.MM.yyyy) |
|
|
Export format: xlsx, json or json.zip |
|
|
Boolean parameter. If set to true, all users will be exported and the users array will be ignored. |
|
|
Id of the item included in the export |
|
|
Type of the item (user, group, research group, team,…) included in the export |
|
|
Name of the item included in the export |
|
|
Current export status as textual message |
|
|
Number of current data items already exported |
|
|
Number of total data items to be exported |
|
|
id of this user who created this export |
|
|
True, if the user data should be exported. |
|
|
True, if the analytics data should be exported. |
|
|
True, if the daily data should be exported. |
|
|
True, if the activity data should be exported. |
|
|
True, if the motion intensity data should be exported. |
|
|
True, if the bbi data should be exported. |
|
|
True, if the spo2 logging data should be exported. |
|
|
True, if the respiration data should be exported. |
|
|
True, if the step logging data should be exported. |
|
|
True, if the zero crossing data should be exported. |
|
|
True, if the body composition data should be exported. |
|
|
True, if the stress data should be exported. |
|
|
True, if the heart rate data should be exported. |
|
|
True, if the daily steps by date data should be exported. |
|
|
True, if the epoc data should be exported. |
|
|
True, if the sleep data should be exported. |
|
|
True, if the vo2 max data should be exported. |
|
|
True, if the spo2 data should be exported. |
|
|
True, if the raw accelerometer data should be exported (JSON only). |
|
|
True, if the raw gyroscope data should be exported (JSON only). |
Path | Type | Description |
---|---|---|
|
|
Identifier of the report |
|
|
Name of this export |
|
|
id of this user that created this export |
|
|
name of the user that created this export |
|
|
Day of the creation of this export |
|
|
Month of the creation of this export |
|
|
Year of the creation of this export |
|
|
Hour of the creation of this export |
|
|
Minute of the creation of this export |
|
|
Second of the creation of this export |
|
|
Id of the item included in the export |
|
|
Type of the item (user, group, research group, team,…) included in the export |
|
|
Name of the item included in the export |
|
|
Current export status as textual message |
|
|
Number of current data items already exported |
|
|
Number of total data items to be exported |
|
|
True, if the user data should be exported. |
|
|
True, if the analytics data should be exported. |
|
|
True, if the daily data should be exported. |
|
|
True, if the activity data should be exported. |
|
|
True, if the motion intensity data should be exported. |
|
|
True, if the bbi data should be exported. |
|
|
True, if the spo2 logging data should be exported. |
|
|
True, if the respiration data should be exported. |
|
|
True, if the step logging data should be exported. |
|
|
True, if the zero crossing data should be exported. |
|
|
True, if the body composition data should be exported. |
|
|
True, if the stress data should be exported. |
|
|
True, if the heart rate data should be exported. |
|
|
True, if the daily steps by date data should be exported. |
|
|
True, if the epoc data should be exported. |
|
|
True, if the sleep data should be exported. |
|
|
True, if the vo2 max data should be exported. |
|
|
True, if the spo2 data should be exported. |
|
|
True, if the raw accelerometer data should be exported (JSON only). |
|
|
True, if the raw gyroscope data should be exported (JSON only). |
|
|
Export format (json, xslx,..) |
|
|
Start date (dd.MM.yyyy) of the exported timeframe |
|
|
End date (dd.MM.yyyy) of the exported timeframe |
|
|
Processing status of the export. Ready, if data is available for downloading. Values could be:<br><ul><li>New - Just created</li><li>Queued - Queued for processing</li><li>Processing - Processing the export</li><li>Error - Failed to generate</li><li>Ready - Ready to download</li><ul> |
POST /v1/dataExports HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Content-Length: 826
Host: localhost:8080
{"id":null,"exportName":null,"exportUserId":"66057576df579919e90c7f4a","exportUserName":null,"exportCreationDate":null,"progressMessage":null,"progress":0,"total":0,"lastUpdate":null,"allUsers":false,"users":[{"id":"66057576df579919e90c7f4a","type":"user","name":"Gus"}],"exportUser":false,"exportAnalytics":true,"exportDaily":false,"exportActivity":false,"exportMotionIntensity":false,"exportBbi":false,"exportSpo2Logging":false,"exportRespiration":false,"exportStepLog":false,"exportZeroCrossing":false,"exportBodyComposition":false,"exportStress":false,"exportHeartRate":false,"exportDailyStepsByDate":false,"exportEpoc":false,"exportSleep":false,"exportVo2Max":false,"exportSpo2":false,"exportRawAccelerometer":false,"exportRawGyroscope":false,"format":"xlsx","startDate":"01.01.2020","endDate":"31.01.2020","status":null}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 917
{"id":"66057576df579919e90c7f4d","exportName":null,"exportUserId":"66057576df579919e90c7f4a","exportUserName":"Gus Ferry","exportCreationDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":13,"minute":49,"second":42}},"progressMessage":null,"progress":0,"total":0,"lastUpdate":null,"allUsers":false,"users":[{"id":"66057576df579919e90c7f4a","type":"user","name":"Gus"}],"exportUser":true,"exportAnalytics":true,"exportDaily":true,"exportActivity":true,"exportMotionIntensity":true,"exportBbi":true,"exportSpo2Logging":true,"exportRespiration":true,"exportStepLog":true,"exportZeroCrossing":true,"exportBodyComposition":true,"exportStress":true,"exportHeartRate":true,"exportDailyStepsByDate":true,"exportEpoc":true,"exportSleep":true,"exportVo2Max":true,"exportSpo2":true,"exportRawAccelerometer":true,"exportRawGyroscope":true,"format":"xlsx","startDate":"01.01.2020","endDate":"31.01.2020","status":"New"}
Find Data Export
Find a certain data export by id.
Parameter | Description |
---|---|
|
The Id of the export configuration |
Path | Type | Description |
---|---|---|
|
|
Identifier of the report |
|
|
Name of this export |
|
|
id of this user that created this export |
|
|
name of the user that created this export |
|
|
Day of the creation of this export |
|
|
Month of the creation of this export |
|
|
Year of the creation of this export |
|
|
Hour of the creation of this export |
|
|
Minute of the creation of this export |
|
|
Second of the creation of this export |
|
|
Id of the item included in the export |
|
|
Type of the item (user, group, research group, team,…) included in the export |
|
|
Name of the item included in the export |
|
|
Current export status as textual message |
|
|
Number of current data items already exported |
|
|
Number of total data items to be exported |
|
|
True, if the user data should be exported. |
|
|
True, if the analytics data should be exported. |
|
|
True, if the daily data should be exported. |
|
|
True, if the activity data should be exported. |
|
|
True, if the motion intensity data should be exported. |
|
|
True, if the bbi data should be exported. |
|
|
True, if the spo2 logging data should be exported. |
|
|
True, if the respiration data should be exported. |
|
|
True, if the step logging data should be exported. |
|
|
True, if the zero crossing data should be exported. |
|
|
True, if the body composition data should be exported. |
|
|
True, if the stress data should be exported. |
|
|
True, if the heart rate data should be exported. |
|
|
True, if the daily steps by date data should be exported. |
|
|
True, if the epoc data should be exported. |
|
|
True, if the sleep data should be exported. |
|
|
True, if the vo2 max data should be exported. |
|
|
True, if the spo2 data should be exported. |
|
|
True, if the raw accelerometer data should be exported (JSON only). |
|
|
True, if the raw gyroscope data should be exported (JSON only). |
|
|
Export format (json, xslx, csv.zip..) |
|
|
Start date (dd.MM.yyyy) of the exported timeframe |
|
|
End date (dd.MM.yyyy) of the exported timeframe |
|
|
Processing status of the export. Ready, if data is available for downloading. Values could be:<br><ul><li>New - Just created</li><li>Queued - Queued for processing</li><li>Processing - Processing the export</li><li>Error - Failed to generate</li><li>Ready - Ready to download</li><ul> |
GET /v1/dataExports/123 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 919
{"id":"123","exportName":"Report 123","exportUserId":"66057576df579919e90c7f2d","exportUserName":"Gus","exportCreationDate":{"date":{"year":2024,"month":3,"day":28},"time":{"hour":14,"minute":49,"second":42}},"progressMessage":null,"progress":0,"total":0,"lastUpdate":null,"allUsers":false,"users":[{"id":"66057576df579919e90c7f2d","type":"user","name":"Gus"}],"exportUser":false,"exportAnalytics":false,"exportDaily":false,"exportActivity":false,"exportMotionIntensity":false,"exportBbi":true,"exportSpo2Logging":false,"exportRespiration":false,"exportStepLog":false,"exportZeroCrossing":false,"exportBodyComposition":false,"exportStress":false,"exportHeartRate":false,"exportDailyStepsByDate":false,"exportEpoc":false,"exportSleep":false,"exportVo2Max":false,"exportSpo2":false,"exportRawAccelerometer":false,"exportRawGyroscope":false,"format":"json","startDate":"01.01.2021","endDate":"05.01.2021","status":"Ready"}
Delete Data Export
Delete a certain data export by id.
Parameter | Description |
---|---|
|
The Id of the export configuration |
DELETE /v1/dataExports/123 HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Download the data export
Important
|
The export needs to be finished before you can request a download. |
Downloads the exported data
see Find Data Export
GET /v1/data/export/123/download HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
Rendered PDF report.
Live Data API
Live Control API
The Live control API is used to send commands to the fitrockr cloud. The commands will be forwarded to one or more devices. Basically you can use this api to start or stop the event flow or request information about devices.
Request Device Information (Ping)
Requests a ping from all active devices currently connected to the live queue of this tenant. The result will be delivered via the event stream. The devices will issue a ping event containing the device information
GET /v1/live/control/ping HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Start Stream
Starts the event stream on all devices
GET /v1/live/control/start HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Stop Stream
Stops the event stream on all devices
GET /v1/live/control/stop HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Start Device
Start the event stream on a single device. The device is identified by the mac address.
Parameter | Description |
---|---|
|
The mac address of the tracker that should be started. |
GET /v1/live/control/start/AA:BB:CC:DD:EE:FF HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Stop Device
Stop the event stream on a single device. The device is identified by the mac address.
Parameter | Description |
---|---|
|
The mac address of the tracker that should be stopped. |
GET /v1/live/control/stop/AA:BB:CC:DD:EE:FF HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Kill Device
Kill the event stream on a single device. This means that the device disconnects from the live stream. This command is irrevocable. The user has to manually enable the device stream again. The device is identified by the mac address.
Parameter | Description |
---|---|
|
The mac address of the tracker that should be killed. |
GET /v1/live/control/kill/AA:BB:CC:DD:EE:FF HTTP/1.1
Content-Type: application/json
X-Tenant: <tenant-id>
X-API-Key: <api-key>
Host: localhost:8080
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Live Event Stream
Introduction
The live data API is based on Websockets using STOMP (https://stomp.github.io/) as a protocol. Using this API, you can receive Data from the wearable in real time and realize usecases like live monitoring of Athletes or Patients. The protocol is event based. You listen to a specific topic and whenever data is published to that topic, your endpoint will be informed immediately.
Client libraries for STOMP can be found here: https://stomp.github.io/implementations.html
Authentication
The same credentials as for the regular Rest API can be used. During the connection process, you have to provide your API Key and the Tenant identifier as header parameters (X-API-Key and X-Tenant) to the server.
Using typescript you would use the following connection code providing the credentials:
this.stompClient.connect({'X-API-Key':'<api-key>', 'X-Tenant': '<tenantId>'}, () => {...}});
Available Topics
At the moment, the only available event topic is '/topic/live'. Subscribing to this topic, you would receive live updates of tracker data connected to the backend.
Live Message Data Structure
The body of a message received from the live topic is a live message object consisting of following attributes.
class LiveMessage {
version: number; // Version of the data that is sent
tenant: string; // Tenant identifier of that message
command: string; // An optional command to be executed by the client
liveData: LiveDataEvent; // Contains the event data
liveDevice: LiveDevice; // Contains information about the device sending the events (optional)
}
class LiveDataEvent {
identifier: string; // Unique identifier of this stream (each device sending gets its own unique id)
tenant: string; // Tenant identifier of this device
dataType: string; // Identifier for the type of data (see below)
macAddress: string; // MacAddress of the device posted this data event
value: number; // Data value
timestamp: number; // Timestamp in msec
}
// Just issued, if new device is connected or ping was requested
class LiveDevice {
deviceId: string; // Device identifier (same as the identifier of the live data event
deviceName: string; // Name of the device (phone or tablet) that is connected to this tracker
trackerAddress: string; // MacAddress of the tracker
trackerName: string; // Name of the tracker (e.g. vivosmart4)
userId: string; //Internal user id assigned to the tracker
userName: string; //Name of the user assigned to the tracker
trackerFirmware: string; //Firmware of the tracker
trackerBattery: string; //Remaining Battery (Percentage)
active: boolean; //Indicator, if the device is actively sending data
}
Receiving commands
-
Data - A tracker has sent some data. The Live Data Attribute is filled with the data received from the tracker
-
DeviceAdded - A new device was added or a device issued a ping. Live Data attribute is filled with some device information
Data Types
-
STEPS
-
HEART_RATE_VARIABILITY
-
CALORIES
-
ASCENT
-
INTENSITY_MINUTES
-
HEART_RATE
-
STRESS
-
ACCELEROMETER
-
SPO2
-
BODY_BATTERY
-
RESPIRATION
-
ACTIVE_TIME
-
TRAINING_READINESS
-
SDNN - HRV based SDNN Kpi
-
RMSSD - HRV based RMSSD Kpi
-
DEVIATION_LARGER_50_MS - HRV based percentage of deviation larger 50ms between two heart beats
-
SD1_SD2 - HRV based SD1/SD2 Kpi
-
LF_HF_RATIO - HRV based LF/HF Ratio
Sample Application
A typescript sample app is available at: https://gitlab.com/fitrockr/fitrockr-live-api-example. Please reach out to the fitrockr support with your gitlab username to request access to the application.
Live Control API
To be done..