API Documentation
user
- POST /user/assets
- Update asset information - Update asset information - Status Codes:
- 501 Not Implemented – Unable to update asset information from here 
 
 
- DELETE /user/assets
- Delete asset information - Delete asset information - Status Codes:
- 501 Not Implemented – Unable to delete asset information from here 
 
 
- GET /user/assets
- Get asset information - Get asset information. Only one of the ID parameter is supported at once - Query Parameters:
- id_asset (integer) – Specific ID of asset to query information. 
- asset_uuid (string) – Specific UUID of asset to query information. 
- id_device (integer) – ID of the device from which to request all accessible assets 
- id_session (integer) – ID of session from which to request all assets 
- id_participant (integer) – ID of participant from which to request all accessible assets 
- id_user (integer) – ID of the user from which to request all accessible assets. 
- service_uuid (string) – Query all assets associated with that service uuid 
- id_creator_service (integer) – ID of the service from which to request all created assets. 
- id_creator_user (integer) – ID of the user from which to request all created assets. 
- id_creator_participant (integer) – ID of the participant from which to request all created assets. 
- id_creator_device (integer) – ID of the device from which to request all created assets. 
- with_urls (boolean) – Also include assets infos and download-upload url 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
- full (boolean) – Also include names of sessions, users, services, … in the reply 
 
- Status Codes:
- 200 OK – Success - returns list of assets 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
 
 
- GET /user/assets/archive
- Get asset archive - Get asset archive. Only one of the ID parameter is supported at once. - Query Parameters:
- id_participant (integer) – ID of the participant from which to request all associated assets 
- id_project (integer) – ID of the project from which to request all associated assets 
- id_session (integer) – ID of the session from which to request all associated assets 
 
- Status Codes:
- 200 OK – Success - returns list of assets 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
 
 
- POST /user/devices
- Create / update devices - Create / update devices. id_device must be set to “0” to create a new device. Only superadmins can create new devices, site admin can update and project admin can modify config and notes. - Request JSON Object:
- device.device_certificate (string) 
- device.device_config (string) 
- device.device_enabled (boolean) 
- device.device_infos (string) 
- device.device_lastonline (string) 
- device.device_name (string) 
- device.device_notes (string) 
- device.device_onlineable (boolean) 
- device.device_token (string) 
- device.device_uuid (string) 
- device.id_device (integer) – (required) 
- device.id_device_subtype (integer) 
- device.id_device_type (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_device) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified device 
- 500 Internal Server Error – Internal error occurred when saving device 
 
 
- DELETE /user/devices
- Delete a specific device - Delete a specific device - Query Parameters:
- id (integer) – Device ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Wrong ID/ No ID 
- 403 Forbidden – Logged user can’t delete device (can delete if superadmin) 
- 500 Internal Server Error – Device not found or database error. 
 
 
- GET /user/devices
- Get device information - Get devices information. Only one of the ID parameter is supported at once. If no ID is specified, returns all accessible devices for the logged user. - Query Parameters:
- id (integer) – ID of the device to query 
- id_device (integer) – ID of the device to query 
- device_uuid (string) – Device uuid of the device to query 
- uuid (string) – Alias for “device_uuid” 
- id_site (integer) – ID of the site from which to get all associated devices 
- id_project (integer) – ID of the project from which to get all associated devices 
- id_device_type (integer) – ID of device type from which to get all devices. Can be combined with id_site or id_project. 
- id_device_subtype (integer) – Device subtype id to get all devices of that subtype. 
- name (string) – Name of the device to query 
- projects (boolean) – Flag that indicates if associated project(s) information should be included in the returned device list 
- enabled (boolean) – Flag that limits the returned data to the enabled devices. 
- list (boolean) – Flag that limits the returned data to minimal information 
- with_participants (boolean) – Flag that indicates if associated participant(s) information should be included in the returned device list 
- with_sites (boolean) – Flag that indicates if associated site(s) information should be included in the returned device list 
- with_status (boolean) – Include status information - offline, online, busy for each device 
 
- Status Codes:
- 200 OK – Success - returns list of devices 
- 400 Bad Request – User Error : Too Many IDs 
- 403 Forbidden – Forbidden access 
- 500 Internal Server Error – Database error 
 
 
- GET /user/devices/online
- Get online devices - Get online devices uuids. - Status Codes:
- 200 OK – Success 
 
 
- POST /user/devices/participants
- Assign / remove devices from a participant - Create/update devices associated with a participant. - Request JSON Object:
- device_participant.id_device (integer) 
- device_participant.id_device_participant (integer) – (required) 
- device_participant.id_participant (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_participant or id_device) in the JSON body 
- 403 Forbidden – Logged user can’t modify device association 
- 500 Internal Server Error – Internal error occured when saving device association 
 
 
- DELETE /user/devices/participants
- Remove a specific device - participant association - Delete a specific device-participant association. - Query Parameters:
- id (integer) – Specific device-participant association ID to delete. Be careful: this is not the device or the participant ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete device association 
- 500 Internal Server Error – Device-participant association not found or database error. 
 
 
- GET /user/devices/participants
- Get devices assigned to a participant - Get devices that are related to a participant. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_device (integer) – ID of the device from which to request all associated participants 
- id_participant (integer) – ID of the participant from which to request all associated devices 
- id_site (integer) – ID of the site from which to get all devices and associated participants 
- id_device_type (integer) – ID of device type from which to get all devices and associated participants 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
 
- Status Codes:
- 200 OK – Success - returns list of devices - participants association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occurred when loading devices for participant 
 
 
- POST /user/devices/projects
- Create/update devices associated with a project - Create/update devices associated with a project. - Request JSON Object:
- device_project.id_device (integer) 
- device_project.id_device_project (integer) – (required) 
- device_project.id_project (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_project or id_device) in the JSON body 
- 403 Forbidden – Logged user can’t modify device association - the user isn’t admin of the project or current user can’t access the device. 
- 500 Internal Server Error – Internal error occured when saving device association 
 
 
- DELETE /user/devices/projects
- Delete a specific device-project association - Delete a specific device-project association. - Query Parameters:
- id (integer) – Specific device-project association ID to delete. Be careful: this is not the device or the project ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete device association (no admin access to project or one of the device’s site) 
- 500 Internal Server Error – Device-project association not found or database error. 
 
 
- GET /user/devices/projects
- Get devices associated with a project - Get devices that are associated with a project. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_device (integer) – ID of the device from which to request all associated projects 
- id_project (integer) – ID of the project from which to get all associated devices 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
- with_projects (boolean) – Used with id_device. Also return projects that don’t have any association with that device 
- with_devices (boolean) – Used with id_project. Also return devices that don’t have any association with that project 
- with_sites (boolean) – Used with id_device. Also return site information of the returned projects. 
 
- Status Codes:
- 200 OK – Success - returns list of devices - project association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occurred when loading devices for projects 
 
 
- POST /user/devices/sites
- Create/update devices association with a site - Create/update devices associated with a site. - Request JSON Object:
- device_site.id_device (integer) 
- device_site.id_device_site (integer) – (required) 
- device_site.id_site (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_site or id_device) in the JSON body 
- 403 Forbidden – Logged user can’t modify device association 
- 500 Internal Server Error – Internal error occured when saving device association 
 
 
- DELETE /user/devices/sites
- Delete a specific device-site association - Delete a specific device-site association. - Query Parameters:
- id (integer) – Specific device-site association ID to delete. Be careful: this is not the device or the site ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete device association (no admin access to site) 
- 500 Internal Server Error – Device-site association not found or database error. 
 
 
- GET /user/devices/sites
- Get devices associated to a site - Get devices that are related to a site. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_device (integer) – ID of the device from which to request all associated sites 
- id_site (integer) – ID of the site from which to get all associated devices 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
- with_devices (boolean) – Used with id_project. Also return devices that don’t have any association with that project 
- with_sites (boolean) – Used with id_service. Also return site information of the returned projects. 
 
- Status Codes:
- 200 OK – Success - returns list of devices - sites association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occurred when loading devices for sites 
 
 
- POST /user/devicesubtypes
- Create / update devices subtypes - Create / update devices subtypes. id_device_subtype must be set to “0” to create a new subtype. Only site admins can create new devices subtypes. - Request JSON Object:
- device_subtype.device_subtype_name (string) 
- device_subtype.id_device_subtype (integer) – (required) 
- device_subtype.id_device_type (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_device_subtype or id_device_type) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified device subtype 
- 500 Internal Server Error – Internal error occured when saving device subtype 
 
 
- DELETE /user/devicesubtypes
- Delete a specific device subtype - Delete a specific device subtype - Query Parameters:
- id (integer) – Device subtype ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete device subtype (can delete if site admin) 
- 500 Internal Server Error – Device subtype not found or database error. 
 
 
- GET /user/devicesubtypes
- Get devices subtypes - Get devices subtypes. Only one of the ID parameter is supported at once. - Query Parameters:
- id_device_subtype (integer) – ID of the device subtype to query 
- id_device_type (integer) – ID of the device type from which to get all subtypes 
- list (boolean) – Return minimal information 
 
- Status Codes:
- 200 OK – Success - returns list of devices subtypes 
- 400 Bad Request – No parameters specified at least one id must be used 
- 403 Forbidden – Forbidden access to the device type specified. Please check that the user has access to a session type containing that device type. 
- 500 Internal Server Error – Database error 
 
 
- POST /user/devicetypes
- Create / update devices types - Create / update devices types. id_device_type must be set to “0” to create a new type. Only site admins can create new devices types. - Request JSON Object:
- device_type.device_type_key (string) 
- device_type.device_type_name (string) 
- device_type.id_device_type (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_device_name or id_device_type) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified device type 
- 500 Internal Server Error – Internal error occured when saving device type 
 
 
- DELETE /user/devicetypes
- Delete a specific device type - Delete a specific device type - Query Parameters:
- id (integer) – Device type ID to delete 
- device_type_key (string) – Unique device key to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete device type (can delete if site admin) 
- 500 Internal Server Error – Device type not found or database error. 
- 501 Not Implemented – Tried to delete with 2 parameters 
 
 
- GET /user/devicetypes
- Get devices types - Get devices types. Only one of the ID parameter is supported at once. The ID is dominant on the device_type_key - Query Parameters:
- id_device_type (integer) – ID of the device type 
- device_type_key (string) – Key of the device type 
- list (boolean) – List of all device types 
 
- Status Codes:
- 200 OK – Success - returns list of devices types 
- 400 Bad Request – No parameters specified at least one id must be used 
- 403 Forbidden – Forbidden access to the device type specified. Please check that the user has access to a session type containing that device type. 
- 500 Internal Server Error – Database error 
 
 
- GET /user/disconnect
- Force disconnect a specific user / participant / device from server - Disconnect user/participant/device from server. Use Logout for current user instead. - Query Parameters:
- id_user (integer) – ID of the user to query 
- user_uuid (string) – User uuid of the device to query 
- id_participant (integer) – ID of the participant to query 
- participant_uuid (string) – Participant uuid of the device to query 
- id_device (integer) – ID of the device to query 
- device_uuid (string) – Device uuid of the device to query 
 
- Status Codes:
- 200 OK – Success - user/participant/device will be disconnected. 
- 400 Bad Request – No parameters specified, at least one id / uuid must be used 
- 403 Forbidden – Forbidden access. Please check that the user has access to the requested id/uuid. 
- 500 Internal Server Error – Database error 
 
 
- GET /user/forms
- Get json description of form to display to edit a specific data type - Get json description of standard input form for the specified data type. - Query Parameters:
- type (string) – Data type of the required form. Currently, the following data types are supported: device device_type device_subtype group participant project service service_config session session_type session_type_config site test_type user user_group versions 
- id (integer) – Specific id of subitem to query. Used to provide context to the returned form. 
- id_project (integer) – Specific id_project used to limit arrays list in some forms 
- id_site (integer) – Specific id_site used to limit arrays list in some forms 
- key (string) – Specific key of subitem to query. Used with service_config. 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Missing required parameter 
- 500 Internal Server Error – Unknown or unsupported data type 
 
 
- POST /user/groups
- Create / update participant groups - Create / update participant groups. id_participant_group must be set to “0” to create a new group. A group can be created/modified if the user has admin rights to the project. - Request JSON Object:
- participant_group.id_participant_group (integer) – (required) 
- participant_group.id_project (integer) 
- participant_group.participant_group_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_participant_group or id_project) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified device 
- 500 Internal Server Error – Internal error occurred when saving device 
 
 
- DELETE /user/groups
- Delete a participant group - Delete a specific participant group - Query Parameters:
- id (integer) – Participant Group ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete participant group (only project admin can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/groups
- Get participant groups - Get participant groups information. Only one of the ID parameter is supported at once. If no ID is specified, returns all accessible groups for the logged user - Query Parameters:
- id_group (integer) – ID of the participant group to query 
- id_project (integer) – ID of the project from which to get all participant groups 
- id (integer) – Alias for “id_group” 
- list (boolean) – Flag that limits the returned data to minimal information 
 
- Status Codes:
- 200 OK – Success - returns list of participant groups 
- 500 Internal Server Error – Database error 
 
 
- GET /user/login
- Login to the server using HTTP Basic Authentication - Login to the server using HTTP Basic Authentication (HTTPAuth) - Query Parameters:
- with_websocket (boolean) – If set, requires that a websocket url is returned.If not possible to do so, return a 403 error. 
 
- Status Codes:
- 200 OK – Success 
 
 
- POST /user/login/2fa
- Login to the server using Session Authentication and 2FA - Login to the server using Session Authentication and 2FA - Query Parameters:
- otp_code (string) – 2FA otp code 
- with_websocket (boolean) – If set, requires that a websocket url is returned.If not possible to do so, return a 403 error. 
 
- Status Codes:
- 200 OK – Success 
 
 
- GET /user/login/2fa
- Login to the server using Session Authentication and 2FA - Login to the server using Session Authentication and 2FA - Query Parameters:
- otp_code (string) – 2FA otp code 
- with_websocket (boolean) – If set, requires that a websocket url is returned.If not possible to do so, return a 403 error. 
 
- Status Codes:
- 200 OK – Success 
 
 
- POST /user/login/change_password
- Change password for a user on login (forced change) - Change password for the user. This API will only work if forced change is required on login. Otherwise, use the standard ‘api/user’ endpoint. - Query Parameters:
- new_password (string) – New password for the user 
- confirm_password (string) – Password confirmation for the user 
 
- Status Codes:
- 200 OK – Success 
 
 
- POST /user/login/setup_2fa
- Enable 2FA for the user - Enable 2FA for the user Will use the OTP secret generated in the GET method. - Query Parameters:
- otp_secret (string) – OTP Secret for the user. 
- with_email_enabled (boolean) – Enable email notifications for 2FA 
- otp_code (string) – OTP code for validation on setup 
 
- Status Codes:
- 200 OK – Success 
 
 
- GET /user/login/setup_2fa
- Generate a new 2FA secret for the user - Generate a new 2FA secret and QR Code for the user Will be enabled on post. - Status Codes:
- 200 OK – Success 
 
 
- POST /user/participants
- Create / update participant - Create / update participants. id_participant must be set to “0” to create a new participant. A participant can be created/modified if the user has admin rights to the project. - Request JSON Object:
- participant.id_participant (integer) – (required) 
- participant.id_participant_group (integer) 
- participant.id_project (integer) 
- participant.participant_email (string) 
- participant.participant_enabled (boolean) 
- participant.participant_lastonline (string) 
- participant.participant_login_enabled (boolean) 
- participant.participant_name (string) 
- participant.participant_password (string) 
- participant.participant_token (string) 
- participant.participant_token_enabled (boolean) 
- participant.participant_username (string) 
- participant.participant_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_participant or id_project/id_group [only one of them]) in the JSON body, or mismatch between id_project and participant group project 
- 403 Forbidden – Logged user can’t create/update the specified participant 
- 500 Internal Server Error – Internal error when saving participant 
 
 
- DELETE /user/participants
- Delete a participant - Delete a specific participant - Query Parameters:
- id (integer) – Participant ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete participant (only project admin can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/participants
- Get participants - Get participants information. Only one of the ID parameter is supported and required at once - Query Parameters:
- id_participant (integer) – ID of the participant to query 
- id (integer) – Alias for “id_participant” 
- username (string) – Username of the participant to query 
- participant_uuid (string) – Participant uuid of the participant to query 
- uuid (string) – Alias for “participant_uuid” 
- id_site (integer) – ID of the site from which to get all participants 
- id_project (integer) – ID of the project from which to get all participants 
- id_group (integer) – ID of the participant groups from which to get all participants 
- id_session (integer) – ID of the session from which to get all participants 
- id_device (integer) – ID of the device from which to get all participants associated 
- name (string) – Name of the participant to query 
- enabled (boolean) – Flag that limits the returned data to the enabled participants 
- list (boolean) – Flag that limits the returned data to minimal information 
- full (boolean) – Flag that expands the returned data to include all information 
- orderby_recents (boolean) – Returns participants ordered by most recently updated 
- limit (integer) – Returns at most “limit” participants 
- no_group (boolean) – Flag that limits the returned data with only participants without a group 
 
- Status Codes:
- 200 OK – Success - returns list of participants 
- 400 Bad Request – No parameters specified at least one id must be used 
- 500 Internal Server Error – Database error 
 
 
- GET /user/participants/online
- Get online participants - Get online participants uuids. - Query Parameters:
- with_sites (boolean) – Include site informations for each participant. 
- with_projects (boolean) – Include project informations for each participant. 
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
 
 
- POST /user/projectaccess
- Create / update project roles for users / usergroups - Create/update project access for an user / usergroup. - Request JSON Object:
- project_access (any) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_user_group or id_project) in the JSON body 
- 403 Forbidden – Logged user can’t modify this project or user access (project admin access required) 
- 500 Internal Server Error – Database error 
 
 
- DELETE /user/projectaccess
- Delete specific user / usergroup role in a project - Delete a specific project access - Query Parameters:
- id (integer) – Project Access ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete project access(only user who is admin in that project can remove it) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/projectaccess
- Get roles for users / user groupes in a project - Get user roles for projects. Only one ID parameter required and supported at once. - Query Parameters:
- id_user (integer) – ID of the user from which to request all projects roles 
- id_user_group (integer) – ID of the user group from which to request all projects roles 
- id_project (integer) – ID of the project from which to request all users groups roles 
- admins (boolean) – Flag to limit to projects from which the user is an admin or users in project that have the admin role 
- with_sites (boolean) – Include sites information for each project. 
- by_users (boolean) – If specified, returns roles by users instead of by usergroups 
- with_empty (boolean) – Used with id_user_group. Also return projects that don’t have any access with that user group. Used with id_project. also return user groups that don’t have any access to the project 
 
- Status Codes:
- 200 OK – Success - returns list of users roles in projects 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occured when loading project roles 
 
 
- POST /user/projects
- Create / update project - Create / update projects. id_project must be set to “0” to create a new project. A project can be created/modified if the user has admin rights to the related site. - Request JSON Object:
- project.id_project (integer) – (required) 
- project.id_site (integer) 
- project.project_description (string) 
- project.project_enabled (boolean) 
- project.project_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_site or id_project) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified project 
- 500 Internal Server Error – Internal error occured when saving project 
 
 
- DELETE /user/projects
- Delete project - Delete a specific project - Query Parameters:
- id (integer) – Project ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete project (only site admin can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/projects
- Get projects - Get projects information. Only one of the ID parameter is supported and required at once - Query Parameters:
- id_project (integer) – ID of the project to query 
- id (integer) – Alias for “id_project” 
- id_site (integer) – ID of the site from which to get all projects 
- id_service (integer) – ID of the service from which to get all projects 
- user_uuid (string) – User UUID from which to get all projects that are accessible 
- name (string) – Project to query by name 
- enabled (boolean) – Flag that limits the returned data to the enabled projects 
- list (boolean) – Flag that limits the returned data to minimal information 
 
- Status Codes:
- 200 OK – Success - returns list of participants 
- 500 Internal Server Error – Database error 
 
 
- GET /user/refresh_token
- Refresh token for current user - Refresh token, old token needs to be passed in request headers. - Query Parameters:
- with_websocket (boolean) – If set, requires that a websocket url is returned.If not possible to do so, return a 403 error. 
 
- Status Codes:
- 200 OK – Success 
- 500 Internal Server Error – Server error 
 
 
- GET /user/server/settings
- Get server settings - Get server setting key - Query Parameters:
- uuid (boolean) – Get server UUID 
- device_register_key (boolean) – Get device registration key 
 
- Status Codes:
- 200 OK – Success - returns setting value 
- 401 Unauthorized – Logged user doesn’t have permission to access the requested data 
 
 
- POST /user/services
- Create / update services - Create / update services. id_service must be set to “0” to create a new service. A service can be created/modified only by super-admins. If data contains “roles”, also update the roles with the list. - Request JSON Object:
- service.id_service (integer) – (required) 
- service.service_clientendpoint (string) 
- service.service_default_config (string) 
- service.service_editable_config (boolean) 
- service.service_enabled (boolean) 
- service.service_endpoint (string) 
- service.service_endpoint_device (string) 
- service.service_endpoint_participant (string) 
- service.service_endpoint_user (string) 
- service.service_has_assets (boolean) 
- service.service_has_tests (boolean) 
- service.service_hostname (string) 
- service.service_key (string) 
- service.service_name (string) 
- service.service_port (integer) 
- service.service_system (boolean) 
- service.service_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_service) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified service 
- 500 Internal Server Error – Internal error occured when saving service 
 
 
- DELETE /user/services
- Delete service - Delete a specific service - Query Parameters:
- id (integer) – Service ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Service doesn’t exists 
- 403 Forbidden – Logged user can’t delete service (only super admins can delete) or service is a system service 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/services
- Get services - Get services information. Only one of the ID parameter is supported and required at once. - Query Parameters:
- id_service (integer) – ID of the service to query 
- id_project (integer) – ID of the project to query services from 
- id_site (integer) – ID of the site to query services from 
- id (integer) – Alias for “id_service” 
- service_uuid (string) – Service UUID to query 
- uuid (string) – Alias for “service_uuid” 
- service_key (string) – Service Key to query 
- key (string) – Alias for “service_key” 
- list (boolean) – Flag that limits the returned data to minimal information 
- with_config (boolean) – Only return services with editable configuration 
 
- Status Codes:
- 200 OK – Success - returns list of services 
- 500 Internal Server Error – Database error 
 
 
- POST /user/services/access
- Create / update service - access association - Create/update service - access association. A list can be posted - if an item with a id_service_access doesn’t have an id_service_role element, it will be deleted. - Request JSON Object:
- service_access.id_device (integer) 
- service_access.id_participant_group (integer) 
- service_access.id_service_access (integer) – (required) 
- service_access.id_service_role (integer) 
- service_access.id_user_group (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_project or id_service) in the JSON body 
- 403 Forbidden – Logged user can’t modify association (only site admin can modify association) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/services/access
- Delete a specific service access for an item - Delete a specific service access. - Query Parameters:
- id (integer) – Specific service access ID to delete. Be careful: this is not the service or service role ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete association (not admin of the associated elements) 
- 500 Internal Server Error – Association not found or database error. 
 
 
- GET /user/services/access
- Get service access roles for a specific item - Get access roles for a specific items. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_user_group (integer) – Usergroup ID to query service access 
- id_user (integer) – User ID to query service access 
- id_participant_group (integer) – Participant group ID to query service access 
- id_device (integer) – Device ID to query service access 
- id_service (integer) – Service ID to query associated access from 
 
- Status Codes:
- 200 OK – Success - returns list of access roles 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /user/services/configs
- Create / update service configuration for an item - Create / update service config. id_service_config must be set to “0” to create a new config. A config can be created/modified if the user has admin access to the user, device or participant - Request JSON Object:
- service_config.id_device (integer) 
- service_config.id_participant (integer) 
- service_config.id_service (integer) 
- service_config.id_service_config (integer) – (required) 
- service_config.id_user (integer) 
- service_config.service_config_config (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(service_config, id_service_config, id_service) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified session 
- 500 Internal Server Error – Internal error when saving service config 
 
 
- DELETE /user/services/configs
- Delete a specific service configuration for an item - Delete a specific service configuration - Query Parameters:
- id (integer) – Service config ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete config (must have admin access to the related object - user,device or participant, or be its own config) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/services/configs
- Get specific service configuration for an item - Get service configuration. id_service can be combined with id_user, id_participant or id_device, if required. If no id_user, id_participant and id_device specified, will return config the current user. - Query Parameters:
- id_service (integer) – ID of service to get all configs from. Use in combination with another ID field to filter. 
- service_key (string) – Service key to query. Can be used instead of id_service. If usedwith id_service, service_key will be ignored. 
- id_participant (integer) – ID of the participant from which to get the service specified with id_service or all configs 
- id_user (integer) – ID of the user from which to get the service specified with id_service or all configs 
- id_device (integer) – ID of the device from which to get the service specified with id_service or all configs 
- id_specific (string) – ID of the specific configuration to get. 
- with_empty (boolean) – Also include empty configs for services without config. 
- list (boolean) – Also includes a list of all available specifics configs. 
 
- Status Codes:
- 200 OK – Success - returns list of configurations 
- 400 Bad Request – No parameters specified - id_service is at least required 
- 500 Internal Server Error – Database error 
 
 
- POST /user/services/projects
- Create / update service-project association - Create/update service - project association. If a “service” json is received, the list of “projects” is replaced. If a “project” json is received, the list of “services” is replaced.If a “service_project” is received, each of the item in the list is added. - Request JSON Object:
- project.id_project (integer) – (required) 
- project.id_site (integer) 
- project.project_description (string) 
- project.project_enabled (boolean) 
- project.project_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_project or id_service) in the JSON body 
- 403 Forbidden – Logged user can’t modify association (only site admin can modify association) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/services/projects
- Delete a specific service - project association - Delete a specific service - project association. - Query Parameters:
- id (integer) – Specific service - project association ID to delete. Be careful: this is not the service or project ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete association (not site admin of the associated project) 
- 500 Internal Server Error – Association not found or database error. 
 
 
- GET /user/services/projects
- Get services associated with a project - Get services that are associated with a project. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_project (integer) – Project ID to query associated services 
- id_service (integer) – Service ID to query associated projects from 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
- with_projects (boolean) – Used with id_service. Also return projects that don’t have any association with that service 
- with_services (boolean) – Used with id_project. Also return services that don’t have any association with that project 
- with_roles (boolean) – Used with id_project. Returns detailled information oneach role for this service. 
- with_sites (boolean) – Used with id_service. Also return site information of the returned projects. 
 
- Status Codes:
- 200 OK – Success - returns list of services - projects association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /user/services/roles
- Create / update service roles - Create/update service role. - Request JSON Object:
- service_role.id_project (integer) 
- service_role.id_service (integer) 
- service_role.id_service_role (integer) – (required) 
- service_role.id_site (integer) 
- service_role.service_role_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_service or id_service_role) in the JSON body 
- 403 Forbidden – Logged user can’t modify service role (only super admin) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/services/roles
- Delete service role - Delete a specific service role. - Query Parameters:
- id (integer) – Specific service role ID to delete. 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete role (not super admin) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/services/roles
- Get service roles - Get service roles for either a specific service or for all available services. - Query Parameters:
- id_service (integer) – Specific service ID to query roles for 
- globals (boolean) – Only return global roles, e.g. not related to a site or a project 
- list (boolean) – Return minimal information about the roles 
 
- Status Codes:
- 200 OK – Success - returns list of service roles 
- 500 Internal Server Error – Error when getting roles 
 
 
- POST /user/services/sites
- Create / update service-site association - Create/update service - site association. If a “service” json is received, the list of “sites” is replaced. If a “site” json is received, the list of “services” is replaced.If a “service_site” is received, each of the item in the list is added. - Request JSON Object:
- service_site.id_service (integer) 
- service_site.id_service_site (integer) – (required) 
- service_site.id_site (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_project or id_service) in the JSON body 
- 403 Forbidden – Logged user can’t modify association (only super admin can modify association) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/services/sites
- Delete service-site association - Delete a specific service - site association. - Query Parameters:
- id (integer) – Specific service - site association ID to delete. Be careful: this is not the service or site ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete association (only super admins can) 
- 500 Internal Server Error – Association not found or database error. 
 
 
- GET /user/services/sites
- Get services associated with a site - Get services that are associated with a site. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_site (integer) – Site ID to query associated services 
- id_service (integer) – Service ID to query associated projects from 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
- with_sites (boolean) – Used with id_service. Also return sites that don’t have any association with that service 
- with_services (boolean) – Used with id_site. Also return services that don’t have any association with that site 
- with_roles (boolean) – Used with id_site. Returns detailed information oneach role for this service. 
 
- Status Codes:
- 200 OK – Success - returns list of services - sites association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /user/sessions
- Create / update session - Create / update session. id_session must be set to “0” to create a new session. A session can be created/modified if the user has access to all participants and users in the session. - Request JSON Object:
- session.id_creator_device (integer) 
- session.id_creator_participant (integer) 
- session.id_creator_service (integer) 
- session.id_creator_user (integer) 
- session.id_session (integer) – (required) 
- session.id_session_type (integer) 
- session.session_comments (string) 
- session.session_duration (integer) 
- session.session_name (string) 
- session.session_parameters (string) 
- session.session_start_datetime (string) 
- session.session_status (integer) 
- session.session_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(session, id_session, session_participants_ids and/or session_users_ids[for new sessions]) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified session 
- 500 Internal Server Error – Internal error when saving session 
 
 
- DELETE /user/sessions
- Delete session - Delete a specific session - Query Parameters:
- id (integer) – Session ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete session (must have access to all participants and users in the session to delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/sessions
- Get session - Get sessions information. Only one of the ID parameter is supported and required at once - Query Parameters:
- id_session (integer) – ID of the session to query 
- id_participant (integer) – ID of the participant from which to get all sessions 
- id_user (integer) – ID of the user from which to get all sessions 
- id_device (integer) – ID of the device from which to get all sessions 
- status (integer) – Limit to specific session status 
- limit (integer) – Maximum number of results to return 
- offset (integer) – Number of items to ignore in results, offset from 0-index 
- session_uuid (string) – Session UUID to query 
- list (boolean) – Flag that limits the returned data to minimal information 
- start_date (string) – Start date, sessions before that date will be ignored 
- end_date (string) – End date, sessions after that date will be ignored 
- with_session_type (boolean) – Include session type informations 
 
- Status Codes:
- 200 OK – Success - returns list of sessions 
- 400 Bad Request – No parameters specified at least one id must be used 
- 500 Internal Server Error – Database error 
 
 
- POST /user/sessions/events
- Create / update session events - Create / update session events. id_session_event must be set to “0” to create a new event. An event can be created/modified if the user has access to the session. - Request JSON Object:
- session_event.id_session (integer) 
- session_event.id_session_event (integer) – (required) 
- session_event.id_session_event_type (integer) 
- session_event.session_event_context (string) 
- session_event.session_event_datetime (string) 
- session_event.session_event_text (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_session_event or id_session) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified event 
- 500 Internal Server Error – Internal error when saving device 
 
 
- DELETE /user/sessions/events
- Delete a session event - Delete a specific session event - Query Parameters:
- id (integer) – Session event ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete event (no access to that session) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/sessions/events
- Get events for a session - Get events for a specific session - Query Parameters:
- id_session (integer) – ID of the session to query events for 
 
- Status Codes:
- 200 OK – Success - returns list of events 
- 400 Bad Request – Required parameter is missing (id_session) 
- 500 Internal Server Error – Database error 
 
 
- POST /user/sessions/manager
- Starts / stop a session related to a service - Manage a specific session - Request JSON Object:
- session_manage.action (string) – (required) 
- session_manage.id_creator_device (integer) 
- session_manage.id_creator_participant (integer) 
- session_manage.id_creator_service (integer) 
- session_manage.id_creator_user (integer) 
- session_manage.id_service (integer) 
- session_manage.id_session (integer) 
- session_manage.id_session_type (integer) 
- session_manage.parameters (object) 
- session_manage.session_devices[] (string) 
- session_manage.session_participants[] (string) 
- session_manage.session_users[] (string) 
- session_manage.session_uuid (str) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have enough permission 
- 500 Internal Server Error – Internal server error 
- 501 Not Implemented – Not implemented 
 
 
- POST /user/sessiontypes
- Create / update session type - Create / update session type. id_session_type must be set to “0” to create a new type. A session type can be created/modified if the user has access to a related session typeproject. - Request JSON Object:
- session_type.id_service (integer) 
- session_type.id_session_type (integer) – (required) 
- session_type.session_type_category (integer) 
- session_type.session_type_color (string) 
- session_type.session_type_config (string) 
- session_type.session_type_name (string) 
- session_type.session_type_online (boolean) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field(id_session_type) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified session type 
- 500 Internal Server Error – Internal error when saving session type 
 
 
- DELETE /user/sessiontypes
- Delete session type - Delete a specific session type - Query Parameters:
- id (integer) – Session type ID to delete 
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete session type (no admin access to project related to that type or sessions of that type exists in the system somewhere) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/sessiontypes
- Get session type - Get session type information. If no id_session_type specified, returns all available session types - Query Parameters:
- id_session_type (integer) – ID of the session type to query 
- id_project (integer) – ID of the project to get session type for 
- id_site (integer) – ID of the site to get session types for 
- list (boolean) – Flag that limits the returned data to minimal information 
 
- Status Codes:
- 200 OK – Success - returns list of session types 
- 500 Internal Server Error – Database error 
 
 
- POST /user/sessiontypes/projects
- Create / update session types for a project - Create/update session-type - project association. - Request JSON Object:
- session_type_project.id_project (integer) 
- session_type_project.id_session_type (integer) 
- session_type_project.id_session_type_project (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_project or id_session_type) in the JSON body 
- 403 Forbidden – Logged user can’t modify association (session type must be accessible from project access) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/sessiontypes/projects
- Delete specific session type - project association - Delete a specific session-type - project association. - Query Parameters:
- id (integer) – Specific session-type - project association ID to delete. Be careful: this is not the session-type or project ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Association not found (invalid id?) 
- 403 Forbidden – Logged user can’t delete association (no access to session-type or project) 
 
 
- GET /user/sessiontypes/projects
- Get session types associated with a project - Get session types that are associated with a project. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_project (integer) – Project ID to query associated session types from 
- id_session_type (integer) – Session type ID to query associated projects from 
- with_projects (boolean) – Used with id_session_type. Also return projects that don’t have any association with that type 
- with_session_type (boolean) – Used with id_project. Also return types that don’t have any association with that project 
- with_sites (boolean) – Used with id_session_type. Also return site information of the returned projects. 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
 
- Status Codes:
- 200 OK – Success - returns list of session-types - projects association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /user/sessiontypes/services
- Create / update session types - service additional association - Create/update session-type - service additional association. - Request JSON Object:
- session_type_service.id_service (integer) 
- session_type_service.id_session_type (integer) 
- session_type_service.id_session_type_service (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_service or id_session_type) in the JSON body 
- 403 Forbidden – Logged user can’t modify association 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/sessiontypes/services
- Delete specific session-type - service additional association - Delete a specific session-type - service additional association. - Query Parameters:
- id (integer) – Specific session-type - service association ID to delete. Be careful: this is not the session-type or service ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Association not found (invalid id?) 
- 403 Forbidden – Logged user can’t delete association (no access to session-type or project) 
 
 
- GET /user/sessiontypes/services
- Get session types additional association with services - Get session types secondary services association. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_session_type (integer) – Session type ID to query secondary services 
- with_services (boolean) – Used with id_session_type. Also return services that don’t have any association with that type 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
 
- Status Codes:
- 200 OK – Success - returns list of session-types - services association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /user/sessiontypes/sites
- Create / update session types associated with a site - Create/update session types associated with a site. - Request JSON Object:
- session_type_site.id_session_type (integer) 
- session_type_site.id_session_type_site (integer) – (required) 
- session_type_site.id_site (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_site or id_device) in the JSON body 
- 403 Forbidden – Logged user can’t modify device association 
- 500 Internal Server Error – Internal error occured when saving device association 
 
 
- DELETE /user/sessiontypes/sites
- Delete a specific session type - site association - Delete a specific session type-site association. - Query Parameters:
- id (integer) – Specific session type-site association ID to delete. Be careful: this is not the session type or the site ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete association (no admin access to site) 
- 500 Internal Server Error – Session type - site association not found or database error. 
 
 
- GET /user/sessiontypes/sites
- Get session types associated with a site - Get session types that are related to a site. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_session_type (integer) – ID of the session type from which to request all associated sites 
- id_site (integer) – ID of the site from which to get all associated session types 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
- with_session_type (boolean) – Used with id_session_type. Also return session types that don’t have any association with that site 
- with_sites (boolean) – Used with id_service. Also return site information of the returned projects. 
 
- Status Codes:
- 200 OK – Success - returns list of session types - sites association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occurred when loading devices for sites 
 
 
- POST /user/siteaccess
- Create / update site access for an user / usergroup - Create/update site access for a user group. - Request JSON Object:
- site_access (any) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_user or id_site) in the JSON body 
- 403 Forbidden – Logged user can’t modify this site or user access (site admin access required) 
- 500 Internal Server Error – Database error 
 
 
- DELETE /user/siteaccess
- Delete a specific site access - Delete a specific site access - Query Parameters:
- id (integer) – Site Access ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete site access(only user who is admin in that site can remove it) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/siteaccess
- Get access role to site for user / usergroup - Get user roles for sites. Only one parameter required and supported at once. - Query Parameters:
- id_user (integer) – ID of the user from which to request all site roles 
- id_user_group (integer) – ID of the user group from which to request all site roles 
- id_site (integer) – ID of the site from which to request all user groups roles 
- admins (boolean) – Flag to limit to sites from which the user group is an admin or users in site that have the admin role 
- by_users (boolean) – If specified, returns roles by users instead of by usergroups 
- with_usergroups (boolean) – Used With the “by_users” parameter, it instead returns the usergroups of each user. 
- with_empty (boolean) – Used with id_site, also return user or user groups that don’t have any access to the site. Used with id_user_group, also return sites that don’t have any access with that user group 
 
- Status Codes:
- 200 OK – Success - returns list of users roles in sites 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occurred when loading sites roles 
 
 
- POST /user/sites
- Create / update site - Create / update site. id_site must be set to “0” to create a new site. A site can be created/modified if the user has admin rights to the site itself or issuperadmin. - Request JSON Object:
- site.id_site (integer) – (required) 
- site.site_2fa_required (boolean) 
- site.site_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field(id_site) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified site 
- 500 Internal Server Error – Internal error when saving site 
 
 
- DELETE /user/sites
- Delete a site - Delete a specific site - Query Parameters:
- id (integer) – Site ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete site (only super admin can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/sites
- Get site - Get site information. Only one of the ID parameter is supported and required at once - Query Parameters:
- id_site (integer) – ID of the site to query 
- id (integer) – Alias for “id_site” 
- id_device (integer) – ID of the device from which to get all related sites 
- user_uuid (string) – User UUID from which to get all sites that are accessible 
- name (string) – Site name to query 
 
- Status Codes:
- 200 OK – Success - returns list of sites 
- 500 Internal Server Error – Database error 
 
 
- GET /user/stats
- Get stats for the specified item - Get stats for the specified item. - Query Parameters:
- id_user_group (integer) – ID of the user group to query stats for. 
- id_user (integer) – ID of the user to query stats for. 
- id_site (integer) – ID of the site to query stats for. 
- id_project (integer) – ID of the project to query stats for. 
- id_group (integer) – ID of the participant group to query stats for. 
- id_session (integer) – ID of the session to query stats for. 
- id_participant (integer) – ID of the participant to query stats for. 
- id_device (integer) – ID of the device to query stats for. 
- with_participants (boolean) – Also includes related participants stats. Can not be used with “id_participant”, “id_user_group”, “id_session”, “id_user” or “id_device”. 
- with_warnings (boolean) – Also include warning information such as a participant not having sessions for some time or users not having logged on for some time. Can only be used with “id_site” for now. 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Missing parameter - one id must be specified. 
- 500 Internal Server Error – Database error 
 
 
- POST /user/tests
- Create / update test - Delete test. - Status Codes:
- 501 Not Implemented – Unable to update test from here - use service! 
 
 
- DELETE /user/tests
- Delete test - Delete a specific test - Query Parameters:
- id (integer) – Test type ID to delete 
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete test 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/tests
- Get test information - Get test information. Only one of the ID parameter is supported at once - Query Parameters:
- id_test (integer) – Specific ID of test to query information. 
- test_uuid (string) – Specific UUID of test to query information. 
- id_device (integer) – ID of the device from which to request all tests 
- id_session (integer) – ID of session from which to request all tests 
- id_participant (integer) – ID of participant from which to request all tests 
- id_user (integer) – ID of the user from which to request all tests. 
- with_urls (boolean) – Also include tests results url 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
- full (boolean) – Also include names of sessions, users, services, … in the reply 
 
- Status Codes:
- 200 OK – Success - returns list of assets 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
 
 
- POST /user/tests/invitations
- Create / update test invitation - Update/Create test invitation. - Request JSON Object:
- tests_invitations[].id_device (integer) 
- tests_invitations[].id_participant (integer) 
- tests_invitations[].id_project (integer) 
- tests_invitations[].id_session (integer) 
- tests_invitations[].id_test_invitation (integer) – (required) 
- tests_invitations[].id_test_type (integer) 
- tests_invitations[].id_user (integer) 
- tests_invitations[].test_invitation_count (integer) 
- tests_invitations[].test_invitation_creation_date (string) 
- tests_invitations[].test_invitation_expiration_date (string) 
- tests_invitations[].test_invitation_key (string) 
- tests_invitations[].test_invitation_max_count (integer) 
- tests_invitations[].test_invitation_message (string) 
 
- Status Codes:
- 501 Not Implemented – Unable to update test from here - use service! 
 
 
- DELETE /user/tests/invitations
- Delete test invitation - Delete a specific test invitation - Query Parameters:
- id (integer) – Test type ID to delete 
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete test 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/tests/invitations
- Get tests invitations information - Get tests invitations information. Witout any parameters, this will return all accessible invitations. Otherwise, you can filter by: - id_test_invitation 
- test_invitation_key 
- id_user 
- user_uuid 
- id_participant 
- participant_uuid 
- id_device 
- device_uuid 
- id_session 
- session_uuid 
- id_test_type 
- test_type_uuid 
 - Query Parameters:
- id_test_invitation (integer) – Specific ID of test invitation to query information. 
- test_invitation_key (string) – Specific key of test invitation to query information. 
- id_user (integer) – ID of the user from which to request all test invitations 
- user_uuid (string) – UUID of the user from which to request all test invitations 
- id_participant (integer) – ID of the participant from which to request all test invitations 
- participant_uuid (string) – UUID of the participant from which to request all test invitations 
- id_device (integer) – ID of the device from which to request all test invitations 
- device_uuid (string) – UUID of the device from which to request all test invitations 
- id_session (integer) – ID of session from which to request all test invitations 
- session_uuid (string) – UUID of session from which to request all test invitations 
- id_test_type (integer) – ID of test type from which to request all test invitations 
- test_type_uuid (string) – UUID of test type from which to request all test invitations 
- id_project (integer) – ID of project from which to request all test invitations 
- full (boolean) – Include more information in invitations with user, participant, device, test_type and session. 
- with_urls (boolean) – Include URLs in results 
 
- Status Codes:
- 200 OK – Success - returns list of invitations 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
 
 
- POST /user/testtypes
- Create / update test types - Create / update test type. id_test_type must be set to “0” to create a new type. A test type can be created/modified if the user has access to a related test typeproject. - Request JSON Object:
- test_type.id_service (integer) 
- test_type.id_test_type (integer) – (required) 
- test_type.test_type_description (string) 
- test_type.test_type_has_json_format (boolean) 
- test_type.test_type_has_web_editor (boolean) 
- test_type.test_type_has_web_format (boolean) 
- test_type.test_type_key (string) 
- test_type.test_type_name (string) 
- test_type.test_type_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified test type 
- 500 Internal Server Error – Internal error when saving test type 
 
 
- DELETE /user/testtypes
- Delete test type - Delete a specific test type - Query Parameters:
- id (integer) – Test type ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete test type (no admin access to project related to that type or tests of that type exists in the system somewhere) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/testtypes
- Get test types - Get test type information. If no id_test_type specified, returns all available test types - Query Parameters:
- id_test_type (integer) – ID of the test type to query 
- test_type_uuid (string) – UUID of the test type to query 
- test_type_key (string) – Key of the test type to query 
- id_project (integer) – ID of the project to get test types for 
- id_site (integer) – ID of the site to get test types for 
- list (boolean) – Flag that limits the returned data to minimal information 
- with_urls (boolean) – Also include test types urls 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
 
- Status Codes:
- 200 OK – Success - returns list of test types 
- 500 Internal Server Error – Database error 
 
 
- POST /user/testtypes/projects
- Create / update test-type -> project association - Create/update test-type - project association. - Request JSON Object:
- test_type_project.id_project (integer) 
- test_type_project.id_test_type (integer) 
- test_type_project.id_test_type_project (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields in the JSON body 
- 403 Forbidden – Logged user can’t modify association (project admin access required) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /user/testtypes/projects
- Delete a specific test type - project association - Delete a specific test-type - project association. - Query Parameters:
- id (integer) – Specific test type - project association ID to delete. Be careful: this is not the test-type or project ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Association not found (invalid id?) 
- 403 Forbidden – Logged user can’t delete association (no access to test-type or project) 
 
 
- GET /user/testtypes/projects
- Get test types - project association - Get test types that are associated with a project. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_project (integer) – Project ID to query associated test types from 
- id_test_type (integer) – Test type ID to query associated projects from 
- with_projects (boolean) – Used with id_test_type. Also return projects that don’t have any association with that type 
- with_tests_types (boolean) – Used with id_project. Also return types that don’t have any association with that project 
- with_sites (boolean) – Used with id_test_type. Also return site information of the returned projects. 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
 
- Status Codes:
- 200 OK – Success - returns list of test-types - projects association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /user/testtypes/sites
- Create / update test types associated to a site - Create/update test types associated with a site. - Request JSON Object:
- test_type_site.id_site (integer) 
- test_type_site.id_test_type (integer) 
- test_type_site.id_test_type_site (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_site or id_test_type) in the JSON body 
- 403 Forbidden – Logged user can’t modify association 
- 500 Internal Server Error – Internal error occurred when saving device association 
 
 
- DELETE /user/testtypes/sites
- Delete specific test type - site association - Delete a specific test type-site association. - Query Parameters:
- id (integer) – Specific test type-site association ID to delete. Be careful: this is not the test type or the site ID, but the ID of the association itself! 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete association (no admin access to site) 
- 500 Internal Server Error – Session type - site association not found or database error. 
 
 
- GET /user/testtypes/sites
- Get test types associated to a site - Get test types that are related to a site. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_test_type (integer) – ID of the test type from which to request all associated sites 
- id_site (integer) – ID of the site from which to get all associated test types 
- list (boolean) – Flag that limits the returned data to minimal information (ids only) 
- with_tests_types (boolean) – Used with id_test_type. Also return test types that don’t have any association with that site 
- with_sites (boolean) – Used with id_site. Also return site information of the returned test types. 
 
- Status Codes:
- 200 OK – Success - returns list of session types - sites association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error occured when loading devices for sites 
 
 
- POST /user/usergroups
- Create / update usergroup - Create / update user group. id_user_group must be set to “0” to create a new user group. User groups can be modified if the user has a site admin role. - Request JSON Object:
- user_group.id_user_group (integer) – (required) 
- user_group.user_group_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field(id_user_group) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified user group 
- 500 Internal Server Error – Internal error when saving user group 
 
 
- DELETE /user/usergroups
- Delete an usergroup - Delete a specific user group - Query Parameters:
- id (integer) – User group ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete user group (only a site admin that includes that user group in their site can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/usergroups
- Get usergroup - Get user group information. If no id specified, returns all accessible users groups - Query Parameters:
- id_user_group (integer) – ID of the user group to query 
- id_user (integer) – ID of the user to get all user groups 
- id_site (integer) – ID of the site to get all user groups with access in that site 
- list (boolean) – Flag that limits the returned data to minimal information 
 
- Status Codes:
- 200 OK – Success 
- 500 Internal Server Error – Database error 
 
 
- POST /user/users
- Create / update an user - Create / update user. id_user must be set to “0” to create a new user. User can be modified if: current user is super admin or user is part of a project which the current user is admin. Promoting a user to super admin is restricted to super admins.”If data contains “user_user_groups, also set user groups for that user. - Request JSON Object:
- user.id_user (integer) – (required) 
- user.user_2fa_email_enabled (boolean) 
- user.user_2fa_enabled (boolean) 
- user.user_2fa_otp_enabled (boolean) 
- user.user_2fa_otp_secret (string) 
- user.user_email (string) 
- user.user_enabled (boolean) 
- user.user_firstname (string) 
- user.user_force_password_change (boolean) 
- user.user_lastname (string) 
- user.user_lastonline (string) 
- user.user_notes (string) 
- user.user_password (string) 
- user.user_profile (string) 
- user.user_superadmin (boolean) 
- user.user_username (string) 
- user.user_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field(id_user or missing password when new user) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified user 
- 409 Conflict – Username is already taken 
- 500 Internal Server Error – Internal error when saving user 
 
 
- DELETE /user/users
- Delete an user - Delete a specific user - Query Parameters:
- id (integer) – User ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete user (only super admin can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/users
- Get users - Get user information. If no id specified, returns all accessible users - Query Parameters:
- id (integer) – ID of the user to query 
- id_user (integer) – ID of the user to query 
- id_user_group (integer) – ID of the user group to get all users from 
- id_project (integer) – ID of the project to get all users that has access to it 
- user_uuid (string) – User UUID to query 
- uuid (string) – Alias for “user_uuid” 
- username (string) – Username of the user to query 
- self (boolean) – Query information about the currently logged user 
- enabled (boolean) – Only returns users with the specified enabled status 
- list (boolean) – Flag that limits the returned data to minimal information (ID, name, enabled) 
- with_usergroups (boolean) – Include usergroups information for each user. 
- with_status (boolean) – Include status information - offline, online, busy for each user 
 
- Status Codes:
- 200 OK – Success 
- 500 Internal Server Error – Database error 
 
 
- GET /user/users/online
- Get online users - Get online users informations. - Query Parameters:
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
 
 
- POST /user/users/preferences
- Create / update user preferences - Create / update user preferences. Only one preference is allowed for a specific app_tag. Preference will be overwritten if app_tag already exists for the user, and will be deleted if empty or null. If id_user isn’t set, will update current user preferences - Request JSON Object:
- user_preference.id_user (integer) 
- user_preference.id_user_preference (integer) – (required) 
- user_preference.user_preference_app_tag (string) 
- user_preference.user_preference_preference (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(app_tag) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the user linked to that preference 
- 500 Internal Server Error – Internal error occurred when saving user preference 
 
 
- GET /user/users/preferences
- Get user preferences (for a specific app) - Get user preferences. If no id_user field specified, returns preferences for current user. - Query Parameters:
- id_user (integer) – ID of the user to get preference for 
- app_tag (string) – Tag of the application for which to get preferences 
 
- Status Codes:
- 200 OK – Success - returns list of user preferences 
- 400 Bad Request – Missing parameter or bad app_tag 
- 403 Forbidden – Forbidden access to that user. 
- 500 Internal Server Error – Database error 
 
 
- POST /user/users/usergroups
- Create / update user’s usergroups - Create / update user - user group relationship, creating it if it doesn’t exist, updating it otherwise. - Request JSON Object:
- user_user_group.id_user (integer) 
- user_user_group.id_user_group (integer) 
- user_user_group.id_user_user_group (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field(id_user_group) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified user group 
- 500 Internal Server Error – Internal error when saving user group 
 
 
- DELETE /user/users/usergroups
- Delete a specific user-usergroup assocation - Delete a specific user - user group relationship - Query Parameters:
- id (integer) – User - User group relationship ID to delete 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete user group (only a site admin that includes that user group in their site can delete) 
- 500 Internal Server Error – Database error. 
 
 
- GET /user/users/usergroups
- Get user usergroups - Get user - user group information. At least one “id” field must be specified - Query Parameters:
- id_user_group (integer) – ID of the user group to query 
- id_user (integer) – ID of the user to get all user groups 
- list (boolean) – Flag that limits the returned data to minimal information 
- with_empty (boolean) – Used with id_user, also returns users groups that the user is not part of. Used with id_user_group, also returns users not part of that user group. 
 
- Status Codes:
- 200 OK – Success 
- 500 Internal Server Error – Database error 
 
 
- POST /user/versions
- Update server versions - Post server versions - Request JSON Object:
- ClientVersions.client_description (string) 
- ClientVersions.client_documentation_url (string) 
- ClientVersions.client_linux_download_url (string) 
- ClientVersions.client_mac_download_url (string) 
- ClientVersions.client_name (string) 
- ClientVersions.client_version (string) 
- ClientVersions.client_windows_download_url (string) 
 
- Status Codes:
- 200 OK – Success - asset posted 
- 403 Forbidden – Logged user doesn’t have permission to delete the requested asset (must be an user ofthe related project) 
- 500 Internal Server Error – Database error occurred 
 
 
- GET /user/versions
- Get server versions - Get server versions - Status Codes:
- 200 OK – Success - returns versions information 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
 
 
device
- GET /device/assets
- Get device assets - Get device assets based specified session or asset ID or, if no parameters, get all assets - Query Parameters:
- asset_uuid (string) – Asset UUID to query 
- id_asset (integer) – Asset ID to query 
- id_session (integer) – Session ID to query assets for 
- with_urls (boolean) – Also include assets infos and download-upload url 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Device doesn’t have access to the specified asset 
 
 
- POST /device/devices
- Update current device information - Update a device. A device can only update its own data. For now, only device_config can be updated with that API. - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_device) in the JSON body 
- 403 Forbidden – Logged device can’t update the specified device 
- 500 Internal Server Error – Internal error occurred when saving device 
 
 
- GET /device/devices
- Get connected device information - Return device information. - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged device doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented 
 
 
- GET /device/login
- Device login - Login device with Token. - Query Parameters:
- token (string) – Secret Token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged device doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented 
 
 
- GET /device/logout
- Device logout - Device logout. - Query Parameters:
- token (string) – Access Token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Device isn’t logged in 
 
 
- GET /device/participants
- Get device associated participants information - Return participant information, if allowed. - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged device doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented 
 
 
- POST /device/register
- Register a new device in the server (certificate based) - Register a device with certificate request. This endpoint is rate limited. If the device type key doesn’t exist, a new one will be created. Same behavior for subtype name.Use application/octet-stream to send CSR. - Status Codes:
- 200 OK – Success - returns registration information. Devices must then be enabled by admin. 
- 400 Bad Request – Missing or invalid parameter 
- 401 Unauthorized – Unauthorized - provided registration key is invalid 
 
 
- GET /device/register
- Register a new device in the server (token based) - Register a device to use token identification. This endpoint is rate limited. If the device type key doesn’t exist, a new one will be created. Same behavior for subtype name. - Query Parameters:
- key (string) – Server device registration key 
- name (string) – Device name to use 
- type_key (string) – Device type key to use 
- subtype_name (string) – Device subtype name to use 
- onlineable (boolean) – Device can get online status 
 
- Status Codes:
- 200 OK – Success 
 
 
- POST /device/sessions
- Update / create a session - Update/Create session - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- session.id_session (integer) – (required) 
- session.id_session_type (integer) – (required) 
- session.session_name (string) – (required) 
- session.session_participants[] (string) 
- session.session_start_datetime (string) – (required) 
- session.session_status (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged device doesn’t have permission to access the requested data 
- 500 Internal Server Error – Internal server error 
- 501 Not Implemented – Not implemented 
 
 
- GET /device/sessions
- Query device sessions - Get session - Query Parameters:
- id_session (integer) – Session ID 
- list (boolean) – List all sessions 
- token (string) – Access token 
 
- Status Codes:
- 403 Forbidden – Forbidden for security reasons. 
 
 
- POST /device/sessions/events
- Create / update session events - Update/Create session events - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged device doesn’t have permission to access the requested data 
- 500 Internal Server Error – Internal server error 
- 501 Not Implemented – Not implemented 
 
 
- GET /device/sessions/events
- Get events for a specific session - Get session events - Query Parameters:
- id_session (integer) – Session ID 
- token (string) – Access token 
 
- Status Codes:
- 403 Forbidden – Forbidden for security reasons. 
 
 
- POST /device/status
- Update current device status - Set the device status (will update UserManagerModule). - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- status (object) – (required) 
- timestamp (number) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged device doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented 
 
 
participant
- GET /participant/assets
- Get participant assets - Get participant assets based on the ID or, if no parameters, get all assets - Query Parameters:
- asset_uuid (string) – Asset UUID to query 
- id_asset (integer) – Asset ID to query 
- id_session (integer) – Session ID to query assets for 
- with_urls (boolean) – Also include assets infos and download-upload url 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Participant doesn’t have access to the specified asset 
 
 
- GET /participant/devices
- Get associated participant devices - Query devices associated with a participant. - Query Parameters:
- id_device (integer) – ID of the device to query 
- list (boolean) – Flag that limits the returned data to minimal information 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /participant/login
- Login a participant with username / password - Participant login with HTTPAuth - Query Parameters:
- with_websocket (boolean) – If set, requires that a websocket url is returned.If not possible to do so, return a 403 error. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - Login succeeded 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /participant/logout
- Participant logout - Logout participant - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /participant/participants
- Update current participant informations - To be documented To be documented - Status Codes:
- 200 OK – Success - To be documented 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /participant/participants
- Get current participant informations - Return participant information. - Query Parameters:
- list (boolean) – Flag that limits the returned data to minimal information 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /participant/refresh_token
- Refresh participant dynamic token - Refresh token, old token needs to be passed in request headers. - Status Codes:
- 200 OK – Success 
- 500 Internal Server Error – Server error 
 
 
- POST /participant/sessions
- Create / update a session - Update/Create session - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- session.id_session (integer) – (required) 
- session.id_session_type (integer) – (required) 
- session.session_name (string) – (required) 
- session.session_participants[] (string) 
- session.session_start_datetime (string) – (required) 
- session.session_status (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged participant doesn’t have permission to access the requested data 
- 500 Internal Server Error – Internal server error 
- 501 Not Implemented – Not implemented 
 
 
- GET /participant/sessions
- Get participant sessions - Get session associated with participant. - Query Parameters:
- id_session (integer) – ID of the session to query 
- session_uuid (string) – Session UUID to query 
- status (integer) – Limit to specific session status 
- limit (integer) – Maximum number of results to return 
- offset (integer) – Number of items to ignore in results, offset from 0-index 
- list (boolean) – Flag that limits the returned data to minimal information 
- start_date (string) – Start date, sessions before that date will be ignored 
- end_date (string) – End date, sessions after that date will be ignored 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Bad request 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
service
- GET /service/access
- Get current service access - Return access information. - Query Parameters:
- from_user_uuid (string) – Participant uuid requesting access 
- from_participant_uuid (string) – Participant uuid requesting access 
- from_device_uuid (string) – Participant uuid requesting access 
- with_users (boolean) – List accessible users 
- with_projects (boolean) – List accessible projects 
- with_participants (boolean) – List accessible participants 
- with_devices (boolean) – List accessible device 
- with_sites (boolean) – List accessible site 
- admin (boolean) – List only accessible with admin rights 
- with_names (boolean) – Also includes the names of the returned items 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/assets
- Create / update an asset - Adds a new asset to the OpenTera database - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - asset correctly added 
- 400 Bad Request – Bad request - wrong or missing parameters in query 
- 403 Forbidden – Service doesn’t have permission to post that asset 
- 500 Internal Server Error – Required parameter is missing 
 
 
- DELETE /service/assets
- Delete a specific asset - Delete a specific asset - Query Parameters:
- uuid (string) – Asset UUID to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service can’t delete asset 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/assets
- Get assets - Return assets information. - Query Parameters:
- id_asset (integer) – Specific ID of asset to query information. 
- id_device (integer) – ID of the device from which to request all assets 
- id_session (integer) – ID of session from which to request all assets 
- id_participant (integer) – ID of participant from which to request all assets 
- id_user (integer) – ID of the user from which to request all assets. 
- service_uuid (string) – Query all assets associated with that service uuid 
- id_creator_service (integer) – ID of the service from which to request all created assets. 
- id_creator_user (integer) – ID of the user from which to request all created assets. 
- id_creator_participant (integer) – ID of the participant from which to request all created assets. 
- id_creator_device (integer) – ID of the device from which to request all created assets. 
- with_urls (boolean) – Also include assets infos and download-upload url 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /service/auth/code
- Return auth code used for login / service auth. - Query Parameters:
- endpoint_url (string) – Endpoint url requesting access 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/devices
- Create / update device - Update device information - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- device.device_certificate (string) 
- device.device_config (string) 
- device.device_enabled (boolean) 
- device.device_infos (string) 
- device.device_lastonline (string) 
- device.device_name (string) 
- device.device_notes (string) 
- device.device_onlineable (boolean) 
- device.device_token (string) 
- device.device_uuid (string) 
- device.id_device (integer) – (required) 
- device.id_device_subtype (integer) 
- device.id_device_type (integer) 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /service/devices
- Query device information - Return device information. - Query Parameters:
- device_uuid (string) – Device uuid of the device to query 
- id_device (integer) – Device ID to query 
- with_device_type (boolean) – Give more information about type 
- with_device_subtype (boolean) – Give more information about subtype 
- with_device_assets (boolean) – Give more information about assets 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /service/disconnect
- Forcefully disconnect a user, participant or device - Disconnect user/participant/device from server. - Query Parameters:
- id_user (integer) – ID of the user to query 
- user_uuid (string) – User uuid of the device to query 
- id_participant (integer) – ID of the participant to query 
- participant_uuid (string) – Participant uuid of the device to query 
- id_device (integer) – ID of the device to query 
- device_uuid (string) – Device uuid of the device to query 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - user/participant/device will be disconnected. 
- 400 Bad Request – No parameters specified at least one id / uuid must be used 
- 403 Forbidden – Forbidden access. Please check that the service has access to the requested id/uuid. 
- 500 Internal Server Error – Database error 
 
 
- POST /service/groups
- Create / update participant group - Update participant group - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- participant_group.id_participant_group (integer) – (required) 
- participant_group.id_project (integer) 
- participant_group.participant_group_name (string) 
 
- Status Codes:
- 200 OK – Success - To be documented 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- DELETE /service/groups
- Delete participant group - Delete a specific participant group. - Query Parameters:
- id (integer) – ID to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/groups
- Get participant groups - Return participant group information. - Query Parameters:
- id_participant_group (integer) – ID to query 
- id_project (integer) – ID project to query information 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/participants
- Create / update a participant - Update participant - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- participant.id_participant (integer) – (required) 
- participant.id_project (integer) – (required) 
- participant.participant_email (string) – (required) 
- participant.participant_name (string) – (required) 
 
- Status Codes:
- 200 OK – Success - To be documented 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /service/participants
- Get participant - Return participant information. - Query Parameters:
- participant_uuid (string) – Participant uuid of the participant to query 
- id_participant (integer) – Participant ID to query 
- id_project (integer) – Project ID to query all participants for 
- id_participant_group (integer) – Participant group to query all participants for 
- name (string) – Return participants with at least a partial match on their name. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/projects
- Create / update projects - Create / update projects. id_project must be set to “0” to create a new project. A project can be created/modified if the service is associated to the related site - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- project.id_project (integer) – (required) 
- project.id_site (integer) 
- project.project_description (string) 
- project.project_enabled (boolean) 
- project.project_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_site or id_project) in the JSON body 
- 403 Forbidden – Logged service can’t create/update the specified project 
- 500 Internal Server Error – Internal error occured when saving project 
 
 
- DELETE /service/projects
- Delete project - Delete a specific project - Query Parameters:
- id (integer) – Project ID to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged service can’t delete project (service not associated to) 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/projects
- Get projects - Return projects information. - Query Parameters:
- id_project (integer) – ID of the project to query 
- id_site (integer) – ID of the site to query projects for 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/roles
- Create / update service roles for the current service - Create / update service roles. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- service_role.id_project (integer) 
- service_role.id_service (integer) 
- service_role.id_service_role (integer) – (required) 
- service_role.id_site (integer) 
- service_role.service_role_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields in the JSON body 
- 500 Internal Server Error – Internal error when saving roles 
 
 
- DELETE /service/roles
- Delete a specific service role - Delete a specific service role. - Query Parameters:
- id (integer) – Service role to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged service can’t delete role (not related to that service) 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/roles
- Get service roles for the current service - Get service roles for that service - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - returns list of roles 
- 500 Internal Server Error – Database error 
 
 
- POST /service/serviceaccess
- Create / update service - access association - Create/update service - access association. A list can be posted - if an item with a id_service_access doesn’t have an id_service_role element, it will be deleted. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- service_access.id_device (integer) 
- service_access.id_participant_group (integer) 
- service_access.id_service_access (integer) – (required) 
- service_access.id_service_role (integer) 
- service_access.id_user_group (integer) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields in the JSON body 
- 403 Forbidden – Logged service can’t modify association (only self access can be modified) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /service/serviceaccess
- Delete a specific service access - Delete a specific service access. - Query Parameters:
- id (integer) – Specific service access ID to delete. Be careful: this is not the service or service role ID, but the ID of the association itself! 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete association (not related to this service) 
- 500 Internal Server Error – Association not found or database error. 
 
 
- GET /service/serviceaccess
- Get access roles for a specific item - Get access roles for a specific items. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_user_group (integer) – Usergroup ID to query service access 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - returns list of access roles 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- GET /service/services
- Get service information - Return services information. - Query Parameters:
- id_service (integer) – ID of the service to query 
- uuid_service (string) – UUID of the service to query 
- service_key (string) – Key of the service to query 
- with_base_url (boolean) – Also include base external URL for that service 
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/sessions
- Create / update session - Create / update session. id_session must be set to “0” to create a new session. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- session.id_creator_device (integer) 
- session.id_creator_participant (integer) 
- session.id_creator_service (integer) 
- session.id_creator_user (integer) 
- session.id_session (integer) – (required) 
- session.id_session_type (integer) 
- session.session_comments (string) 
- session.session_duration (integer) 
- session.session_name (string) 
- session.session_parameters (string) 
- session.session_start_datetime (string) 
- session.session_status (integer) 
- session.session_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(session, id_session, session_participants_ids and/or session_users_ids[for new sessions]) in the JSON body 
- 403 Forbidden – Service can’t create/update the specified session 
- 500 Internal Server Error – Internal error when saving session 
 
 
- GET /service/sessions
- Get sessions - Return sessions information. - Query Parameters:
- id_session (integer) – ID of the session to query 
- uuid_session (string) – UUID of the session to query 
- id_participant (integer) – ID of the participant to query 
- id_user (integer) – ID of the user to query 
- id_device (integer) – ID of the device to query 
- list (boolean) – Flag that limits the returned data to minimal information 
- with_events (boolean) – Also includes session events 
- with_session_type (boolean) – Also includes session type information 
- status (integer) – Limit to specific session status 
- limit (integer) – Maximum number of results to return 
- offset (integer) – Number of items to ignore in results, offset from 0-index 
- start_date (string) – Start date, sessions before that date will be ignored 
- end_date (string) – End date, sessions after that date will be ignored 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/sessions/events
- Create / update session events - Create / update session events. id_session_event must be set to “0” to create a new event. An event can be created/modified if the user has access to the session. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- session_event.id_session (integer) 
- session_event.id_session_event (integer) – (required) 
- session_event.id_session_event_type (integer) 
- session_event.session_event_context (string) 
- session_event.session_event_datetime (string) 
- session_event.session_event_text (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields(id_session_event or id_session) in the JSON body 
- 403 Forbidden – Logged user can’t create/update the specified event 
- 500 Internal Server Error – Internal error when saving device 
 
 
- GET /service/sessions/events
- Get events for a session - Get events for a specific session - Query Parameters:
- id_session (integer) – ID of the session to query events for 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - returns list of events 
- 400 Bad Request – Required parameter is missing (id_session) 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Database error 
 
 
- POST /service/sessions/manager
- Starts / stop a session related to a service - Manage a specific session - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- session_manage.action (string) – (required) 
- session_manage.id_creator_device (integer) 
- session_manage.id_creator_participant (integer) 
- session_manage.id_creator_service (integer) 
- session_manage.id_creator_user (integer) 
- session_manage.id_service (integer) 
- session_manage.id_session (integer) 
- session_manage.id_session_type (integer) 
- session_manage.parameters (object) 
- session_manage.session_devices[] (string) 
- session_manage.session_participants[] (string) 
- session_manage.session_users[] (string) 
- session_manage.session_uuid (str) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Service doesn’t have enough permission 
- 500 Internal Server Error – Internal server error 
- 501 Not Implemented – Not implemented 
 
 
- POST /service/sessiontypes
- Manage session types associated to that service with sites, projects, participants - Manage session types information for the current service - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- service_session_type.id_participants[] (integer) 
- service_session_type.id_projects[] (integer) 
- service_session_type.id_sites[] (integer) 
- service_session_type.session_type.id_service (integer) 
- service_session_type.session_type.id_session_type (integer) – (required) 
- service_session_type.session_type.session_type_category (integer) 
- service_session_type.session_type.session_type_color (string) 
- service_session_type.session_type.session_type_config (string) 
- service_session_type.session_type.session_type_name (string) 
- service_session_type.session_type.session_type_online (boolean) 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /service/sessiontypes
- Get session types associated to that service - Return session types information for the current service - Query Parameters:
- id_site (integer) – ID of the site to query session types for 
- id_project (integer) – ID of the project to query session types for 
- id_participant (integer) – ID of the participant to query types for 
- id_session_type (integer) – ID of the session type to query 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/sessiontypes/projects
- Create / update session types -> project association - Create/update session-type - project association. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- session_type_project.id_project (integer) 
- session_type_project.id_session_type (integer) 
- session_type_project.id_session_type_project (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields in the JSON body 
- 403 Forbidden – Logged service can’t modify association (not associated to project or session type) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /service/sessiontypes/projects
- Delete a specific session type -> project association - Delete a specific session-type - project association. - Query Parameters:
- id (integer) – Specific session type - project association ID to delete. Be careful: this is not the session type or project ID, but the ID of the association itself! 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Association not found (invalid id?) 
- 403 Forbidden – Logged service can’t delete association (no access to session-type or project) 
 
 
- GET /service/sessiontypes/projects
- Get session types associated with a project - Get session types that are associated with a project. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_project (integer) – Project ID to query associated session types from 
- id_session_type (integer) – Session type ID to query associated projects from 
- with_sites (boolean) – Used with id_session_type. Also return site information of the returned projects. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - returns list of session types - projects association for this service 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- GET /service/sites
- Get sites - Return sites information. - Query Parameters:
- id_site (integer) – ID of the site to query 
- id_user (integer) – ID of the user to query sites for 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/tests
- Create / update test - Adds a new test to the OpenTera database - Query Parameters:
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - test correctly added 
- 400 Bad Request – Bad request - wrong or missing parameters in query 
- 403 Forbidden – Service doesn’t have permission to post that test 
- 500 Internal Server Error – Required parameter is missing 
 
 
- DELETE /service/tests
- Delete specific test - Delete a specific test - Query Parameters:
- uuid (string) – Test UUID to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service can’t delete test 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/tests
- Get tests - Return tests information. - Query Parameters:
- id_test (integer) – Specific ID of test to query information. 
- id_device (integer) – ID of the device from which to request all tests 
- id_session (integer) – ID of session from which to request all tests 
- id_participant (integer) – ID of participant from which to request all tests 
- id_user (integer) – ID of the user from which to request all tests. 
- service_uuid (string) – Query all tests associated with that service uuid 
- with_urls (boolean) – Also include tests infos and download-upload url 
- with_only_token (boolean) – Only includes the access token. Will ignore with_urls if specified. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/tests/invitations
- Create / update test invitation - Update/Create test invitation. - Request JSON Object:
- tests_invitations[].id_device (integer) 
- tests_invitations[].id_participant (integer) 
- tests_invitations[].id_project (integer) 
- tests_invitations[].id_session (integer) 
- tests_invitations[].id_test_invitation (integer) – (required) 
- tests_invitations[].id_test_type (integer) 
- tests_invitations[].id_user (integer) 
- tests_invitations[].test_invitation_count (integer) 
- tests_invitations[].test_invitation_creation_date (string) 
- tests_invitations[].test_invitation_expiration_date (string) 
- tests_invitations[].test_invitation_key (string) 
- tests_invitations[].test_invitation_max_count (integer) 
- tests_invitations[].test_invitation_message (string) 
 
- Status Codes:
- 501 Not Implemented – Unable to update test from here - use service! 
 
 
- DELETE /service/tests/invitations
- Delete test invitation - Delete a specific test invitation - Query Parameters:
- id (integer) – Test type ID to delete 
- token (string) – Secret token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Logged user can’t delete test 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/tests/invitations
- Get tests invitations information - Get tests invitations information. Witout any parameters, this will return all accessible invitations. Otherwise, you can filter by: - id_test_invitation 
- test_invitation_key 
- id_user 
- user_uuid 
- id_participant 
- participant_uuid 
- id_device 
- device_uuid 
- id_session 
- session_uuid 
- id_test_type 
- test_type_uuid 
 - Query Parameters:
- id_test_invitation (integer) – Specific ID of test invitation to query information. 
- test_invitation_key (string) – Specific key of test invitation to query information. 
- id_user (integer) – ID of the user from which to request all test invitations 
- user_uuid (string) – UUID of the user from which to request all test invitations 
- id_participant (integer) – ID of the participant from which to request all test invitations 
- participant_uuid (string) – UUID of the participant from which to request all test invitations 
- id_device (integer) – ID of the device from which to request all test invitations 
- device_uuid (string) – UUID of the device from which to request all test invitations 
- id_session (integer) – ID of session from which to request all test invitations 
- session_uuid (string) – UUID of session from which to request all test invitations 
- id_test_type (integer) – ID of test type from which to request all test invitations 
- test_type_uuid (string) – UUID of test type from which to request all test invitations 
- id_project (integer) – ID of project from which to request all test invitations 
- full (boolean) – Include full information for session, test_type, user, participant, device 
- with_urls (boolean) – Include URLs in results 
 
- Status Codes:
- 200 OK – Success - returns list of invitations 
- 400 Bad Request – Required parameter is missing 
- 403 Forbidden – Logged user doesn’t have permission to access the requested data 
 
 
- POST /service/testtypes
- Create / update test types - Create / update test type. id_test_type must be set to “0” to create a new type. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- test_type.id_service (integer) 
- test_type.id_test_type (integer) – (required) 
- test_type.test_type_description (string) 
- test_type.test_type_has_json_format (boolean) 
- test_type.test_type_has_web_editor (boolean) 
- test_type.test_type_has_web_format (boolean) 
- test_type.test_type_key (string) 
- test_type.test_type_name (string) 
- test_type.test_type_uuid (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field in the JSON body 
- 403 Forbidden – Service can’t create/update the specified test type 
- 500 Internal Server Error – Internal error when saving test type 
 
 
- DELETE /service/testtypes
- Delete a test type - Delete a specific test type - Query Parameters:
- uuid (string) – Test type UUID to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service can’t delete test type 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/testtypes
- Get test types - Return test types information for the current service - Query Parameters:
- id_site (integer) – ID of the site to query test types for 
- id_project (integer) – ID of the project to query test types for 
- id_participant (integer) – ID of the participant to query types for 
- test_type_key (string) – Test type key to query for 
- id_test_type (integer) – ID of the test type to query for 
- test_type_uuid (string) – UUID of the test type to query for 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- POST /service/testtypes/projects
- Create / update test types -> project association - Create/update test-type - project association. - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- test_type_project.id_project (integer) 
- test_type_project.id_test_type (integer) 
- test_type_project.id_test_type_project (integer) – (required) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing fields in the JSON body 
- 403 Forbidden – Logged service can’t modify association (not associated to project or test type) 
- 500 Internal Server Error – Internal error occurred when saving association 
 
 
- DELETE /service/testtypes/projects
- Delete a specific test type -> project association - Delete a specific test-type - project association. - Query Parameters:
- id (integer) – Specific test type - project association ID to delete. Be careful: this is not the test-type or project ID, but the ID of the association itself! 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Association not found (invalid id?) 
- 403 Forbidden – Logged service can’t delete association (no access to test-type or project) 
 
 
- GET /service/testtypes/projects
- Get test types associated with a project - Get test types that are associated with a project. Only one “ID” parameter required and supported at once. - Query Parameters:
- id_project (integer) – Project ID to query associated test types from 
- id_test_type (integer) – Test type ID to query associated projects from 
- with_sites (boolean) – Used with id_test_type. Also return site information of the returned projects. 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success - returns list of test-types - projects association 
- 400 Bad Request – Required parameter is missing (must have at least one id) 
- 500 Internal Server Error – Error when getting association 
 
 
- POST /service/usergroups
- Create / update usergroup - Create / update user group. id_user_group must be set to “0” to create a new user group. User groups can be modified if the service can access it (user group has a service role). - Query Parameters:
- token (string) – Access token 
 
- Request JSON Object:
- user_group.id_user_group (integer) – (required) 
- user_group.user_group_name (string) 
 
- Status Codes:
- 200 OK – Success 
- 400 Bad Request – Badly formed JSON or missing field(id_user_group) in the JSON body 
- 403 Forbidden – Logged service can’t create/update the specified user group 
- 500 Internal Server Error – Internal error when saving user group 
 
 
- DELETE /service/usergroups
- Delete a specific usergroup - Delete a specific user group - Query Parameters:
- id (integer) – User group ID to delete 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service can’t delete user group (no access to it) 
- 500 Internal Server Error – Database error. 
 
 
- GET /service/usergroups
- Get usergroups - Get user group information. If no id specified, returns all accessible users groups - Query Parameters:
- id_user_group (integer) – ID of the user group to query 
- id_project (integer) – ID of the project to query user group with access to 
- id_site (integer) – ID of the site to query user group with access to 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 500 Internal Server Error – Database error 
 
 
- GET /service/users
- Get specific user information - Return user information. - Query Parameters:
- id_user (integer) – User id of the user to query 
- user_uuid (string) – User uuid of the user to query 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented. 
 
 
- GET /service/users/access
- Get access roles for a specific user and/or project/site - Return access roles information to this service for a specific user. - Query Parameters:
- id_project (integer) – ID of the project to query 
- id_site (integer) – ID of the site to query 
- uuid_user (string) – UUID of the user 
- token (string) – Access token 
 
- Status Codes:
- 200 OK – Success 
- 403 Forbidden – Service doesn’t have permission to access the requested data 
- 500 Internal Server Error – Required parameter is missing 
- 501 Not Implemented – Not implemented.