Retry-After
response's header indicating how long to wait before making a new request.Version 1.22 (latest)
Version 1.21
Version 1.20
Version 1.19
search
and ordering
capabilities on resource listing endpoints for athletes, devices, JSON schemas, activities and timeframesis_managed
filter in athlete's list & retrieve endpointswith_device
, with_athlete
and with_activity
parameters to include representation of related resource in timeframe's list & retrieve endpointsVersion 1.18
nationality
& profile_picture
in athlete profileVersion 1.17
immediate_sending
parameter for device bluetooth config updateVersion 1.16
custom_name
field and filter, see /api/v1/devices/{device}/set-custom-name/type
and parent
fields and filters, see /api/v1/json-schemas/Version 1.15
MANAGER
, ATHLETE
or MANUFACTURER
can_create_managed_athletes
is an extra permissionVersion 1.14
Version 1.13
Version 1.12
Version 1.11
Version 1.10
/matlab-jobs/
to /jobs/
, the old one is still supported but will be deprecated in the futureVersion 1.9
v1
(note that /api/
has been removed from websockets URLs):wss://api.asi.swiss/ws/v1/preprocessed-data/{device}/
wss://api.asi.swiss/ws/v1/computed-data/{activity}/
wss://api.asi.swiss/ws/v1/computed-data/{activity}/{timeframe}/
wss://api.asi.swiss/api/ws/preprocessed-data/{device}/
wss://api.asi.swiss/api/ws/computed-data/{activity}/
wss://api.asi.swiss/api/ws/computed-data/{activity}/{timeframe}/
/api/v1/athletes/{athlete}/delete-managed/
Version 1.8
Version 1.7
Version 1.6
Version 1.5
/oauth2/token/
endpointVersion 1.4.4
preprocessed
and preprocessed-ranges
endpointsVersion 1.4.0
Version 1.3.2
Version 1.3
Version 1.2.2
Version 1.2.1
Version 1.2.0
Version 1.1.2
Version 1.1.1
Version 1.1.0
Version 1.0.2
Version 1.0.1
Version 1.0.0
/api/v1/
is the only one supported/take-ownership/
endpoint, /own/
is removedid
must be specified as path parameter (previously device_name
)Version 0.1.20
Version 0.1.19
Version 0.1.18
Version 0.1.17
Version 0.1.16
Version 0.1.15
Version 0.1.14
uuid
of this objects are now internal fields so they will soon be removed from API resource representationVersion 0.1.13
Version 0.1.12
/activate/
and /deactivate/
, replaced by /own/
and /release-ownership/
This operation is restricted to authenticated users.
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "id": 12,
- "first_name": "Jon",
- "last_name": "Doe"
}, - "role": "MANAGER",
- "extra_permissions": [
- "can_create_managed_athletes"
]
}
Manager users are users that can interact with athletes and teams. They mainly assign performance data to athletes and invite into teams.
This operation create a manager account and an email is sent to the user's email address, with the account credentials.
This operation is not restricted. Anyone can use this endpoint to register as a manager.
username required | string User's name used to authenticate himself/herself |
external_id | string User's external ID used from another organisation |
email required | string <email> User's contact email address |
object (ManagerProfile) |
{- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "first_name": "Jon",
- "last_name": "Doe"
}
}
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "id": 12,
- "first_name": "Jon",
- "last_name": "Doe"
}
}
This operation is restricted to the manager himself.
external-id required | string External ID |
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "id": 12,
- "first_name": "Jon",
- "last_name": "Doe"
}
}
This operation is restricted to the manager himself.
manager required | integer Manager ID |
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "id": 12,
- "first_name": "Jon",
- "last_name": "Doe"
}
}
This operation is restricted to the manager himself.
manager required | integer Manager ID |
username required | string User's name used to authenticate himself/herself |
external_id | string User's external ID used from another organisation |
email required | string <email> User's contact email address |
object (ManagerProfile) |
{- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "first_name": "Jon",
- "last_name": "Doe"
}
}
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "manager_profile": {
- "id": 12,
- "first_name": "Jon",
- "last_name": "Doe"
}
}
This operation is restricted to the manager himself.
manager required | integer Manager ID |
password | string <password> User's plain password |
{- "password": "SuperPassword$$123"
}
{- "detail": "Not found"
}
Athletes are users whose performances are:
This operation is restricted to manager users. It lists athletes on whom they currently have READ permission.
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
ordering | string Enum: "username" "email" "external_id" "first_name" "last_name" "gender" "birthdate" "managed_by" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
string Filter on email (insensitive contains) | |
username | string Filter on username (insensitive contains) |
external_id | string Filter on external_id (insensitive contains) |
first_name | string Filter on first_name (insensitive contains) |
last_name | string Filter on last_name (insensitive contains) |
gender | string Filter on gender ( |
managed_by | number Filter by managed_by (id of manager) |
is_managed | boolean Filter managed or non managed athletes (valid options are |
birthdate_from | string <date> Example: birthdate_from=1996-01-01 Filter on birthdate (greater than or equal) |
birthdate_to | string <date> Example: birthdate_to=1998-12-31 Filter on birthdate (lesser than or equal) |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
}
This operation create an athlete account and an email is sent to the user's email address, with the account credentials.
This operation is not restricted. Anyone can use this endpoint to register as an athlete.
username required | string User's name used to authenticate himself/herself |
external_id | string User's external ID used from another organisation |
email required | string <email> User's contact email address |
object (AthleteProfile) |
{- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "athlete_profile": {
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
This operation create an athlete account managed by a manager.
Username will be a random UUID prefixed by MANAGED-
and email will be empty.
This operation target to simplify athlete account creation and permission request processes. Athletes do not need to create their own accounts and accept permissions request. Athlete account created like this are not meant to be logged in to.
This operation is restricted to manager users. The manager must have a specific permission to manage managed athletes, which is given by the ASI support team if requested.
external_id | string User's external ID used from another organisation |
managed_by required | integer Reference the manager who manage this athlete account. Only managers can create athlete with this field, and the must put their own id. A set of read, write and share permissions are created for this manager at athlete creation, from 1970-01-01 to 2199-12-31 |
object (AthleteProfile) |
{- "external_id": "0123456789",
- "managed_by": 1,
- "athlete_profile": {
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
This operation is restricted to manager users who currently have READ permission on this athlete and the athlete himself.
external-id required | string External ID |
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
This operation is restricted to manager users who currently have READ permission on this athlete and the athlete himself.
athlete required | integer Athlete ID |
ordering | string Enum: "username" "email" "external_id" "first_name" "last_name" "gender" "birthdate" "managed_by" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
string Filter on email (insensitive contains) | |
username | string Filter on username (insensitive contains) |
external_id | string Filter on external_id (insensitive contains) |
first_name | string Filter on first_name (insensitive contains) |
last_name | string Filter on last_name (insensitive contains) |
gender | string Filter on gender ( |
managed_by | number Filter by managed_by (id of manager) |
is_managed | boolean Filter managed or non managed athletes (valid options are |
birthdate_from | string <date> Example: birthdate_from=1996-01-01 Filter on birthdate (greater than or equal) |
birthdate_to | string <date> Example: birthdate_to=1998-12-31 Filter on birthdate (lesser than or equal) |
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
ordering | string Enum: "username" "email" "external_id" "first_name" "last_name" "gender" "birthdate" "managed_by" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
string Filter on email (insensitive contains) | |
username | string Filter on username (insensitive contains) |
external_id | string Filter on external_id (insensitive contains) |
first_name | string Filter on first_name (insensitive contains) |
last_name | string Filter on last_name (insensitive contains) |
gender | string Filter on gender ( |
managed_by | number Filter by managed_by (id of manager) |
is_managed | boolean Filter managed or non managed athletes (valid options are |
birthdate_from | string <date> Example: birthdate_from=1996-01-01 Filter on birthdate (greater than or equal) |
birthdate_to | string <date> Example: birthdate_to=1998-12-31 Filter on birthdate (lesser than or equal) |
username required | string User's name used to authenticate himself/herself |
external_id | string User's external ID used from another organisation |
email required | string <email> User's contact email address |
object (AthleteProfile) |
{- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "athlete_profile": {
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
ordering | string Enum: "username" "email" "external_id" "first_name" "last_name" "gender" "birthdate" "managed_by" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
string Filter on email (insensitive contains) | |
username | string Filter on username (insensitive contains) |
external_id | string Filter on external_id (insensitive contains) |
first_name | string Filter on first_name (insensitive contains) |
last_name | string Filter on last_name (insensitive contains) |
gender | string Filter on gender ( |
managed_by | number Filter by managed_by (id of manager) |
is_managed | boolean Filter managed or non managed athletes (valid options are |
birthdate_from | string <date> Example: birthdate_from=1996-01-01 Filter on birthdate (greater than or equal) |
birthdate_to | string <date> Example: birthdate_to=1998-12-31 Filter on birthdate (lesser than or equal) |
{- "detail": "You do not have permission to perform this action."
}
This operation is restricted to the manager user who manage this athlete.
The manager must have a specific permission to manage managed athletes, which is given by the ASI support team if requested.
athlete required | integer Athlete ID |
external_id | string User's external ID used from another organisation |
managed_by required | integer Reference the manager who manage this athlete account. Only managers can create athlete with this field, and the must put their own id. A set of read, write and share permissions are created for this manager at athlete creation, from 1970-01-01 to 2199-12-31 |
object (AthleteProfile) |
{- "external_id": "0123456789",
- "managed_by": 1,
- "athlete_profile": {
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
{- "id": 12,
- "username": "jon.doe@example.com",
- "external_id": "0123456789",
- "email": "jon.doe@example.com",
- "managed_by": 1,
- "athlete_profile": {
- "id": 12,
- "external_id": "e6195b18-2515-410d-a48e-1009d12f2320",
- "first_name": "Usain",
- "last_name": "Bolt",
- "gender": "M",
- "weight": 94,
- "height": 1.95,
- "birth_date": "1986-08-21",
- "nationality": "Switzerland",
- "profile_picture": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
password | string <password> User's plain password |
{- "password": "SuperPassword$$123"
}
{- "detail": "Not found"
}
As an athlete, it is possible to give read, write or share permissions to manager users.
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "manager": 1,
- "athlete": 2,
- "start_time": "2020-02-20T13:18:29+0100",
- "expiration_time": "2022-02-20T13:18:29+0100",
- "permission": "READ",
- "is_active": true
}
]
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
manager required | integer Manager ID |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "manager": 1,
- "athlete": 2,
- "start_time": "2020-02-20T13:18:29+0100",
- "expiration_time": "2022-02-20T13:18:29+0100",
- "permission": "READ",
- "is_active": true
}
]
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
manager required | integer Manager ID |
start_time | string <date-time> |
expiration_time | string <date-time> |
permission | string Enum: "READ" "WRITE" "SHARE" |
{- "start_time": "2020-02-20T13:18:29+0100",
- "expiration_time": "2022-02-20T13:18:29+0100",
- "permission": "READ"
}
{- "id": 12,
- "manager": 1,
- "athlete": 2,
- "start_time": "2020-02-20T13:18:29+0100",
- "expiration_time": "2022-02-20T13:18:29+0100",
- "permission": "READ",
- "is_active": true
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
manager required | integer Manager ID |
{- "detail": "You do not have permission to perform this action."
}
This operation is restricted to the athlete himself.
athlete required | integer Athlete ID |
manager required | integer Manager ID |
permission required | integer Permission ID |
{- "detail": "You do not have permission to perform this action."
}
This operation is restricted to manager users. It lists all devices they ever owned.
If current
is true
, it lists only devices they currently own.
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
ordering | string Enum: "device_name" "custom_name" "serial_number" "device_type" "activation_time" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
current | boolean If |
device_name | string Filter on device_name (insensitive contains) |
serial_number | string Filter on serial_number (insensitive contains) |
device_type | string Filter on device_type (exact match) |
activation_time_from | string <date-time> Example: activation_time_from=2020-02-20T13:00:00+0100 Filter on activation_time (greater than or equal) |
activation_time_to | string <date-time> Example: activation_time_to=2020-02-20T18:00:00+0100 Filter on activation_time (lesser than or equal) |
custom_name | string Filter on custom_name (insensitive contains) |
activity | number Filter by activity (id), device will show up if linked to a timeframe, itself linked to this activity |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "device_name": "864475041000000",
- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_type": "Model X 2000 Series",
- "firmware_version": "1.2.3",
- "custom_name": "My device 123"
}
]
}
Give ownership to authenticated manager user and activate a device if it is not yet activated. Ownership start at request time and end at "2999-12-31T23:59:59.000Z".
This operation is restricted to the manager who currently owns the device or all manager users if device currently has no owner.
serial_number | string Serial number |
device_name | string Device name (identifier) |
{- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_name": "abcdefghij12345"
}
{- "id": 12,
- "device_name": "864475041000000",
- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_type": "Model X 2000 Series",
- "firmware_version": "1.2.3",
- "custom_name": "My device 123"
}
This operation is restricted to the manager user who currently owns this device.
device required | integer Device ID |
ordering | string Enum: "device_name" "custom_name" "serial_number" "device_type" "activation_time" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
current | boolean If |
device_name | string Filter on device_name (insensitive contains) |
serial_number | string Filter on serial_number (insensitive contains) |
device_type | string Filter on device_type (exact match) |
activation_time_from | string <date-time> Example: activation_time_from=2020-02-20T13:00:00+0100 Filter on activation_time (greater than or equal) |
activation_time_to | string <date-time> Example: activation_time_to=2020-02-20T18:00:00+0100 Filter on activation_time (lesser than or equal) |
custom_name | string Filter on custom_name (insensitive contains) |
{- "id": 12,
- "device_name": "864475041000000",
- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_type": "Model X 2000 Series",
- "firmware_version": "1.2.3",
- "custom_name": "My device 123"
}
This operation is restricted to the manager user who currently owns this device.
device required | integer Device ID |
custom_name | string <= 60 characters A string matching the regex |
{- "custom_name": "My device 123"
}
{- "id": 12,
- "device_name": "864475041000000",
- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_type": "Model X 2000 Series",
- "firmware_version": "1.2.3",
- "custom_name": "My device 123"
}
End authenticated manager user's current ownership on the device.
This operation is restricted to the manager who currently owns the device.
device required | integer Device ID |
{- "message": "Device has never been activated."
}
The .asi
file must be encoded in base64, then included in request body.
This operation is restricted to the manager who currently owns the device.
device required | integer Device ID |
asi_b64 required | string Base64 encoded |
{- "asi_b64": "QVNJAAAAEAQEBkFTSSBWMgAAAQUACAcIBwgHCAcIAhoAEAAQAA......"
}
{- "id": 12,
- "job_id": "job-e429beeb-af8b-47ff-8e17-46e656fd5fa2",
- "state": "SUCCESS",
- "details": { }
}
For details about current
and target
configurations, see explanations for PATCH
.
This operation is restricted to the manager who currently owns the device.
device required | integer Device ID |
{- "status": "success",
- "data": {
- "current": {
- "pairing_1": {
- "mac_address": "02:32:f8:26:fa:ae",
- "name": "My heart rate bluetooth device"
}
}, - "target": {
- "pairing_1": {
- "mac_address": "02:32:f8:26:fa:ae",
- "name": "My heart rate bluetooth device"
}
}
}
}
Use a mac address to set a new value for pairing_n
, assign null
to pairing_n
to remove the current value, omit pairing_n
to leave it unchanged.
Only pairing_1
is supported at the moment and limited to heart rate sensors (GATT Service 0x180D
Heart Rate).
There are two different configurations to consider:
current
is the current configuration executed by the device as far as the server is aware. It will always be read only.target
is the configuration to be set on the device whenever it is ready to accept requests. This is the configuration that you can update. It will replace current
only when the device starts and has successfully received the new configuration.This means that a successful PATCH request is not guaranteed to result in a successful update to current
. You should make sure to properly handle any difference between current
and target
before making any further update to target
in order to avoid unwanted behavior.
This operation is restricted to the manager who currently owns the device.
device required | integer Device ID |
immediate_sending | boolean If true, the configuration is immediately sent to device. Otherwise, it takes effect on device startup. |
object |
{- "pairing_1": {
- "mac_address": "02:32:f8:26:fa:ae",
- "name": "My heart rate bluetooth device"
}
}
{- "status": "success",
- "data": {
- "current": {
- "pairing_1": {
- "mac_address": "02:32:f8:26:fa:ae",
- "name": "My heart rate bluetooth device"
}
}, - "target": {
- "pairing_1": {
- "mac_address": "02:32:f8:26:fa:ae",
- "name": "My heart rate bluetooth device"
}
}
}
}
This operation is restricted to manager users.
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
device | string Filter on device ID |
device_name | string Filter on device's device name (exact match) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T18:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2022-02-20T18:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2022-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
{- "id": 12,
- "start_time": "2019-11-21T19:57:45.000Z",
- "end_time": "2999-12-31T23:59:59.000Z",
- "device": 1,
- "manager": 1,
- "device_details": {
- "id": 12,
- "device_name": "864475041000000",
- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_type": "Model X 2000 Series",
- "firmware_version": "1.2.3",
- "custom_name": "My device 123"
}
}
This operation is restricted to manager users.
device_ownership required | integer Device ownership ID |
device | string Filter on device ID |
device_name | string Filter on device's device name (exact match) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T18:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2022-02-20T18:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2022-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
{- "id": 12,
- "start_time": "2019-11-21T19:57:45.000Z",
- "end_time": "2999-12-31T23:59:59.000Z",
- "device": 1,
- "manager": 1,
- "device_details": {
- "id": 12,
- "device_name": "864475041000000",
- "serial_number": "a8e035ee-66be-4c90-a82a-437ada22a8dd",
- "device_type": "Model X 2000 Series",
- "firmware_version": "1.2.3",
- "custom_name": "My device 123"
}
}
A JsonSchema is used to validate activities metadata (https://json-schema.org/). JsonSchema objects have a schema
property, an example can be found here.
This operation is restricted to manager users.
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
ordering | string Enum: "name" "type" "parent" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
type | integer Filter on type (exact match) |
parent | integer Filter on parent schema id (exact match) |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "name": "timeframe_soccer",
- "type": "TIMEFRAME",
- "parent": 1,
- "schema": { }
}
]
}
This operation is restricted to manager users.
json_schema required | integer JSON schema ID |
ordering | string Enum: "name" "type" "parent" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
type | integer Filter on type (exact match) |
parent | integer Filter on parent schema id (exact match) |
{- "id": 12,
- "name": "timeframe_soccer",
- "type": "TIMEFRAME",
- "parent": 1,
- "schema": { }
}
A activity can be a football game, a tennis game, bobsleigh session, etc. Activities objects have a json
property, an example can be found here.
This operation is restricted to manager users. It lists activities he created.
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
ordering | string Value: "name" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
name | string Filter on name (insensitive contains) |
owner | number Filter by owner (id of manager) |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "name": "Soccer of 21 nov 2020 at la maladière",
- "json": { },
- "json_schema": 1,
- "owner": 1
}
]
}
This operation is restricted to manager users.
name required | string |
json | object |
json_schema | integer |
owner | integer |
{- "name": "Soccer of 21 nov 2020 at la maladière",
- "json": { },
- "json_schema": 1,
- "owner": 1
}
{- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "name": "Soccer of 21 nov 2020 at la maladière",
- "json": { },
- "json_schema": 1,
- "owner": 1
}
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
ordering | string Value: "name" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
name | string Filter on name (insensitive contains) |
owner | number Filter by owner (id of manager) |
{- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "name": "Soccer of 21 nov 2020 at la maladière",
- "json": { },
- "json_schema": 1,
- "owner": 1
}
Update an activity and trigger a new computation of all its time frame's computed data, asynchronously.
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
ordering | string Value: "name" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
name | string Filter on name (insensitive contains) |
owner | number Filter by owner (id of manager) |
name required | string |
json | object |
json_schema | integer |
owner | integer |
{- "name": "Soccer of 21 nov 2020 at la maladière",
- "json": { },
- "json_schema": 1,
- "owner": 1
}
{- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "name": "Soccer of 21 nov 2020 at la maladière",
- "json": { },
- "json_schema": 1,
- "owner": 1
}
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
ordering | string Value: "name" Order the results by specified field, ascendant. Prefix the field with |
search | string Multiple fields text search (case-insensitive partial matches).
|
name | string Filter on name (insensitive contains) |
owner | number Filter by owner (id of manager) |
{- "detail": "You do not have permission to perform this action."
}
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "secret_token": "123456789",
- "activity_events": true,
- "timeframes_events": true
}
]
}
Register a new webhook.
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
webhook_url required | string <url> <= 200 characters The callback URL |
secret_token required | string <= 100 characters The value to be added in the When listing or retrieving webhooks from the API, this value is partially hidden (for example |
activity_events required | boolean Whether to call this webhook on activity events for this activity: |
timeframes_events required | boolean Whether to call this webhook on timeframes events for timeframes related to this activity: |
{- "secret_token": "123456789",
- "activity_events": true,
- "timeframes_events": true
}
{- "id": 12,
- "secret_token": "123456789",
- "activity_events": true,
- "timeframes_events": true
}
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
webhook required | integer Activity's webhook ID |
{- "id": 12,
- "secret_token": "123456789",
- "activity_events": true,
- "timeframes_events": true
}
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
webhook required | integer Activity's webhook ID |
webhook_url required | string <url> <= 200 characters The callback URL |
secret_token required | string <= 100 characters The value to be added in the When listing or retrieving webhooks from the API, this value is partially hidden (for example |
activity_events required | boolean Whether to call this webhook on activity events for this activity: |
timeframes_events required | boolean Whether to call this webhook on timeframes events for timeframes related to this activity: |
{- "secret_token": "123456789",
- "activity_events": true,
- "timeframes_events": true
}
{- "id": 12,
- "secret_token": "123456789",
- "activity_events": true,
- "timeframes_events": true
}
This operation is restricted to the manager user who own this activity.
activity required | integer Activity ID |
webhook required | integer Activity's webhook ID |
{- "detail": "You do not have permission to perform this action."
}
Time frames made the link between an athlete, a device and an activity during a time interval. Time frames are managed by manager users. TimeFrame objects have a params
property, an example can be found here.
This operation is restricted to the manager users. It lists time frames he created. Optionally filtered by activity to which it's related.
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
ordering | string Enum: "start_time" "end_time" "device" "athlete" "activity" Order the results by specified field, ascendant. Prefix the field with |
device | number Filter by device (id) |
athlete | number Filter by athlete (id) |
owner | number Filter by owner (id of manager) |
activity | number Filter by activity (id) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T13:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2020-02-20T13:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2020-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
with_device | boolean If |
with_activity | boolean If |
with_athlete | boolean If |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "start_time": "2022-02-20T13:18:29+0100",
- "end_time": "2022-02-20T14:18:29+0100",
- "params": { },
- "device": 1,
- "activity": 1,
- "athlete": 2,
- "owner": 1,
- "json_schema": 1
}
]
}
This operation is restricted to manager users.
start_time | string <date-time> |
end_time | string <date-time> |
params | object |
device | integer |
activity | integer |
athlete | integer |
owner | integer |
json_schema | integer |
{- "start_time": "2022-02-20T13:18:29+0100",
- "end_time": "2022-02-20T14:18:29+0100",
- "params": { },
- "device": 1,
- "activity": 1,
- "athlete": 2,
- "owner": 1,
- "json_schema": 1
}
{- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "start_time": "2022-02-20T13:18:29+0100",
- "end_time": "2022-02-20T14:18:29+0100",
- "params": { },
- "device": 1,
- "activity": 1,
- "athlete": 2,
- "owner": 1,
- "json_schema": 1
}
This operation is restricted to the manager user who own this time frame.
timeFrame required | integer Time frame ID |
ordering | string Enum: "start_time" "end_time" "device" "athlete" "activity" Order the results by specified field, ascendant. Prefix the field with |
device | number Filter by device (id) |
athlete | number Filter by athlete (id) |
owner | number Filter by owner (id of manager) |
activity | number Filter by activity (id) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T13:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2020-02-20T13:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2020-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
with_device | boolean If |
with_activity | boolean If |
with_athlete | boolean If |
{- "detail": "You do not have permission to perform this action."
}
Update a time frame and trigger a new computation of its computed data, asynchronously. This operation is restricted to the manager user who own this time frame.
timeFrame required | integer Time frame ID |
ordering | string Enum: "start_time" "end_time" "device" "athlete" "activity" Order the results by specified field, ascendant. Prefix the field with |
device | number Filter by device (id) |
athlete | number Filter by athlete (id) |
owner | number Filter by owner (id of manager) |
activity | number Filter by activity (id) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T13:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2020-02-20T13:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2020-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
with_device | boolean If |
with_activity | boolean If |
with_athlete | boolean If |
start_time | string <date-time> |
end_time | string <date-time> |
params | object |
device | integer |
activity | integer |
athlete | integer |
owner | integer |
json_schema | integer |
{- "start_time": "2022-02-20T13:18:29+0100",
- "end_time": "2022-02-20T14:18:29+0100",
- "params": { },
- "device": 1,
- "activity": 1,
- "athlete": 2,
- "owner": 1,
- "json_schema": 1
}
{- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "start_time": "2022-02-20T13:18:29+0100",
- "end_time": "2022-02-20T14:18:29+0100",
- "params": { },
- "device": 1,
- "activity": 1,
- "athlete": 2,
- "owner": 1,
- "json_schema": 1
}
Works the same as PUT
, but support partial payload, specifying only the fields to update.
timeFrame required | integer Time frame ID |
ordering | string Enum: "start_time" "end_time" "device" "athlete" "activity" Order the results by specified field, ascendant. Prefix the field with |
device | number Filter by device (id) |
athlete | number Filter by athlete (id) |
owner | number Filter by owner (id of manager) |
activity | number Filter by activity (id) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T13:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2020-02-20T13:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2020-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
with_device | boolean If |
with_activity | boolean If |
with_athlete | boolean If |
{- "id": 12,
- "uuid": "92d831c226ab47b0a548a357dd01d704",
- "start_time": "2022-02-20T13:18:29+0100",
- "end_time": "2022-02-20T14:18:29+0100",
- "params": { },
- "device": 1,
- "activity": 1,
- "athlete": 2,
- "owner": 1,
- "json_schema": 1
}
This operation is restricted to the manager user who own this time frame.
timeFrame required | integer Time frame ID |
ordering | string Enum: "start_time" "end_time" "device" "athlete" "activity" Order the results by specified field, ascendant. Prefix the field with |
device | number Filter by device (id) |
athlete | number Filter by athlete (id) |
owner | number Filter by owner (id of manager) |
activity | number Filter by activity (id) |
start_time_from | string <date-time> Example: start_time_from=2020-02-20T13:00:00+0100 Filter on start_time (greater than or equal) |
start_time_to | string <date-time> Example: start_time_to=2020-02-20T18:00:00+0100 Filter on start_time (lesser than or equal) |
end_time_from | string <date-time> Example: end_time_from=2020-02-20T13:00:00+0100 Filter on end_time (greater than or equal) |
end_time_to | string <date-time> Example: end_time_to=2020-02-20T18:00:00+0100 Filter on end_time (lesser than or equal) |
with_device | boolean If |
with_activity | boolean If |
with_athlete | boolean If |
{- "detail": "You do not have permission to perform this action."
}
Computed data from a device worn by an athlete during an activity. Typically min/max values or average of some data.
The result is a list of all computed data of this activity's time frames.
This operation is restricted to manager users who have READ permission on the referenced athlete between start_time and end_time of this time frame.
activity required | integer Activity ID |
[- {
- "timeframe": 12,
- "data": {
- "average_speed": 0,
- "max_hr": 0,
- "max_speed": 0,
- "total_distance": 0
}
}
]
This operation is restricted to manager users who have READ permission on the referenced athlete between start_time and end_time of this time frame.
timeFrame required | integer Time frame ID |
{- "average_speed": 0,
- "max_hr": 0,
- "max_speed": 0,
- "total_distance": 0
}
Preprocessed data from a device worn by an athlete during an activity. Typically raw data with enhancement, like position in GPS cooridnates and relative to the field.
This operation is restricted to the manager who currently owns the device
device required | integer Device ID |
{- "timestamp": 1636800211900,
- "datetime": "2021-11-13T10:43:31.900000+00:00"
}
The response is unpaginated, and the items are ordered by timestamp in reverse order.
This operation is restricted to the manager who currently owns the device
device required | integer Device ID |
size | integer Number of data to retrieve (max is 300) |
[- {
- "gnss.altitude": 0,
- "gnss.latitude": 0,
- "gnss.longitude": 0,
- "gnss.speed": 0,
- "gnss.timestamp": 0,
- "gnss.xEast": 0,
- "gnss.yNorth": 0,
- "gnss.zUp": 0,
- "ecg.hr": 0
}
]
A range is determined by a group of data close to another of 5 minutes or less between the previous and the next.
Interval between start
and stop
cannot exceed 14 days.
This operation is restricted to the manager who owned the device between start and stop.
device required | integer Device ID |
required | integer or string Example: start=1622246400000 or 2021-05-29T00:00:00+0000 Sample start time in timestamp format in [ms] or in iso datetime format |
required | integer or string Example: stop=1622419200000 or 2021-05-31T00:00:00+0000 Sample stop time in timestamp format in [ms] or in iso datetime format |
start_iso required | string <date-time> Deprecated Example: start_iso=2021-05-29T00:00:00+0000 Query start datetime in iso format |
stop_iso required | string <date-time> Deprecated Example: stop_iso=2021-05-31T00:00:00+0000 Query stop datetime in iso format |
page | integer Page number |
limit | integer Number of results per page (max is 3000) |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "start": "2021-05-29T16:12:00Z",
- "stop": "2021-05-29T17:31:11.900000Z",
- "size": 43830
}
]
}
Results of this query is cached for performance reasons. Cache is invalidated after 120 seconds.
Interval between start
and stop
cannot exceed 2 days.
This operation is restricted to the manager who owned the device between start and stop.
device required | integer Device ID |
required | integer or string Example: start=1622246400000 or 2021-05-29T00:00:00+0000 Sample start time in timestamp format in [ms] or in iso datetime format |
required | integer or string Example: stop=1622419200000 or 2021-05-31T00:00:00+0000 Sample stop time in timestamp format in [ms] or in iso datetime format |
start_iso required | string <date-time> Deprecated Example: start_iso=2021-05-29T00:00:00+0000 Query start datetime in iso format |
stop_iso required | string <date-time> Deprecated Example: stop_iso=2021-05-31T00:00:00+0000 Query stop datetime in iso format |
page | integer Page number |
limit | integer Number of results per page (default is 10000, max is 25000) |
{- "count": 150,
- "page": 2,
- "next": 3,
- "previous": 1,
- "results": [
- {
- "gnss.altitude": 0,
- "gnss.latitude": 0,
- "gnss.longitude": 0,
- "gnss.speed": 0,
- "gnss.timestamp": 0,
- "gnss.xEast": 0,
- "gnss.yNorth": 0,
- "gnss.zUp": 0,
- "ecg.hr": 0
}
]
}
Replace /api/v1/matlab-jobs/{job}/info/
.
job required | string Example: job-e429beeb-af8b-47ff-8e17-46e656fd5fa2 Job identifier |
{- "id": 12,
- "job_id": "job-e429beeb-af8b-47ff-8e17-46e656fd5fa2",
- "state": "SUCCESS",
- "details": { }
}