JOOXTER REST API v2.0

Table of content



Jooxter overview

At Jooxter, we makes workplace smarter…

Why Jooxter makes workplace smarter ?

• To save and optimize spaces.
• To save time : finding places (to meet or work), people.
• To save resources. (people and assets)

How Saving and optimizing spaces ?

• Jooxter understands space utilisation studying people flow.
• Jooxter maximalizes occupancy at all time of space.

How saving time ?

• Jooxter helps people to find suitable places to meet or work.
• Jooxter helps people to find people according to name or profession.

How saving resources. (people and assets) ?

• Never being lost, finding your way anytime, anywhere.

How our technology works ? (Ease of use, limited investment)

• Jooxter’s plug&play sensors are placed in specific areas such as offices, meeting rooms, corridors.
• User’s smartphones receive proximity signals from sensors
• Jooxter mobile app sends proximity data to Jooxter cloud servers
• Jooxter algoritms provide realtime services and analytics

Getting started

The Jooxter REST API gives developers the opportunity to interact with their buildings data through web services (bookings, resources, people, etc.) and therefore build third-party applications to extend the Jooxter experience.

The Jooxter API deals with the 3 main concepts : User, Resource and Booking.

URL

The Jooxter API consists of a bunch of REST Web Services returning JSON Object.

All services consumption should be made to https://app.jooxter.com/, and must contains a parameter “version” equals to 2.

Example (For “Lookup Resource” function) :

https://app.jooxter.com/searchresource?version=2

Please note that this may change with future releases of the API.

Authorization

Jooxter ensures the safety of data access, i.e every request must contain an authorization token.
Each user has an authorization token, (also called “UserId”, “hash” or “userHash”) generated for every Jooxter user.

To get your authorization token, a user must call the “authenticate” service (See User > Authenticate).

Response Structure

All Jooxter API services are structured as JSON Object, that contain at least one of the following top-level members:

if status equals to “SUCCESS” then data is present; otherwise if status equals to “ERROR” then label is present and data is not.

Example

{
  "status": "SUCCESS",
  "data": {
  "idRes": 1,
  "label": "INFO",
  "resName": "DEMO",
  "resIsBookable": true,
  "resDesc": "DEMO Description",
  "resCapacity": 10,
  "resOwnerName": "John Doe",
  "resBookableRoom": "",
  "resBookableTo": "",
  "onMap": false,
  "status": "FREE",
  "hasNextMeeting": false,
  "grantedToCheck": false,
  "people": []
 }}

This document presents the available web services, input parameters and response structures.

User

Authenticate

The “connect” URI is mainly used to log in Jooxter users. Passing their credentials (email, password) as parameters. The method will provide you the authentication token needed to get detailed information related to specific users activities.

Function

POST /connect.thing

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Input

Name Description Default Value Mandatory
email The User’s email (none) YES
password The User’s password At least, a String of 8 characters YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "hash": "4d80c957f44972b8ee5a30854cef61c5d00cfe30",
  "userId": 1,
  "firstname": "John",
  "lastname": "DOE",
  "accountName": "DEMO ACCOUNT",
  "accountCode": "qxdvgnjk",
  "corporationName": "DEMO CORP",
  "corporationId": 1,
  "locationName": "DEMO LOCATION",
  "locationId": 1,
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris",
  "hasIndoorMap": true,
  "photo": "",
  "profile": "Web Designer",
  "status": "FREE"
 }}

Description

Name Description Value
hash User Authentication Token (String)
userId Technical User ID (Integer)
firstname User Firstname (String)
lastname User Lastname (String)
accountName The Account name which the User is linked to (String)
accountcode Technical Account Code (String)
corporationName The Corporation name which the User is linked to (String)
corporationId Technical Corporation ID (Integer)
locationName The Location name which the User is linked to (String)
locationId Technical Location ID (Integer)
timezoneName The User Timezone (String)
timezoneDelta The delta between User Timezone and the JOOXTER Application Server Timezone (Integer)
hasIndoorMap Indicates if the user is geolocalizable true / false
photo The User Picture Picture encoded in base64 (String)
profile The User Profile (String)
status The User current Status (See Rule below)

Rule

Get Info

The “getuser” uri provides detailed information about any user of an account and also its last position in the building.

Function

The service name, to call, is getuser.

Ex :

https://app.jooxter.com/getuser?version=2&uid=1&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
uid Technical ID of the Requested User (userId). If not provided, return JSON of the Requester (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "userId": 1,
  "title": "Mr",
  "lastname": "DOE",
  "firstname": "John",
  "userType": 3,
  "telephone": "0000000000",
  "email": "john.doe@demo.jooxter",
  "lang": "fr",
  "accountCode": "wscfbhjk",
  "accountName": "My Account",
  "corporationId": 42,
  "corporationName": "My Company",
  "locationId": 1,
  "locationName": "DEMO LOCATION",
  "department": "Design Office",
  "photo": "",
  "profile": "",
  "status": "FREE",
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris",
  "hasIndoorMap": "true",
  "isInternal": true,
  "lastPosition": {
  "locationId": 1,
  "locationName": "Demo Office",
  "floorId": 5,
  "resourceId": 55,
  "date": "19/05/2015 12:48:37",
  "numberOfSecondsSinceDetection": 124
        }
 }}

Description

Name Description Value
userId Technical User ID (Integer)
hash User Authentication Token (String)
title User Title “Mr”/“Mrs”
firstname User Firstname (String)
lastname User Lastname (String)
userType User Administration Profile 1/2/3
telephone User phone number (String)
email User email address (String)
lang User Language Code “fr”/“en”
accountICode Technical Account Code (String)
accountName The Account name which the User is linked to (String)
corporationId Technical Corporation ID (Integer)
corporationName The Corporation name which the User is linked to (String)
locationId Technical Location ID (Integer)
locationName The Location name which the User is linked to (String)
department The User Department (String)
photo The User Picture Picture encoded in base64 (String)
profile The User Profile (String)
status The User current Status (See User Status Rule)
timezoneName The User Timezone (String)
timezoneDelta The delta between User Timezone and the JOOXTER Application Server Timezone (Integer)
hasIndoorMap Indicates if the user is geolocalizable true / false
isInternal Indicates if the user is an internal one true / false
lastPosition The User Last known Position (See Get Positions > Output)
externalUID The User external UID (not provided if absent) (String)

Lookup

The “searchusers” uri allows to search users by criteria. The “uniqueCriteria” parameter could be a profession (aka. architect, designer, etc) or name (aka. John, Rick, Katya), etc.

Ex :

https://app.jooxter.com/searchusers?version=2&api=true&uniqueCriteria=architect1&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is searchusers.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api true YES
uniqueCriteria Search criteria (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "users": [
 {  "userId": 1,
  "title": "Mr",
  "lastname": "DOE",
  "firstname": "John",
  "userType": 3,
  "telephone": "0000000000",
  "email": "john.doe@demo.jooxter",
  "lang": "fr",
  "accountCode": "wscfbhjk",
  "accountName": "My Account",
  "corporationId": 42,
  "corporationName": "My Company",
  "locationId": 1,
  "locationName": "DEMO LOCATION",
  "department": "Design Office",
  "photo": "",
  "profile": "",
  "status": "FREE",
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris",
  "hasIndoorMap": "true",
  "isInternal" : true,  "lastPosition": {
  "locationId": 1,
  "locationName": "Demo Office",
  "floorId": 5,
  "resourceId": 55,
  "date": "19/05/2015 12:48:37",
  "numberOfSecondsSinceDetection": 124
 } } ] }}

Description

Name Description Value
users Array of User See Get Info > Output

Create

The “createuser” uri allows to create a new Jooxter user.

Function

POST /createuser

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Input

Name Description Default Value Mandatory
userHash Authentication Token of the creator (not future user hash) (none) YES
userTypeId User type of the new created user (1=Manager, 2=User, 3=Administrator) (none) YES
email New user email (None) YES
firstname New user firstname (none) YES
lastname New user lastname (none) YES
telephone New user telephone (none) NO
timezone New user timezone (Europe/Paris) NO
lang New user lang (fr) NO
title New user title (Mr, Mrs) (Mr) NO
department New user department (Ex : IT, BIZ) (none) NO
locationId User default location (none) YES
corporationId User default corporation (none) YES
description User description (none) NO
website User website (none) NO
profile User profile (Ex : Architect, Designer) (none) NO
accountCode User accountCode (none) NO
groupId User default group membership (none) NO
authentificationProtocolId Authentication Protocol (none) NO
externalUID User external UID (none) NO

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "userId": 1,
  "title": "Mr",
  "lastname": "DOE",
  "firstname": "John",
  "userType": 3,
  "telephone": "0000000000",
  "email": "john.doe@demo.jooxter",
  "lang": "fr",
  "accountCode": "wscfbhjk",
  "accountName": "My Account",
  "corporationId": 42,
  "corporationName": "My Company",
  "locationId": 1,
  "locationName": "DEMO LOCATION",
  "department": "Design Office",
  "photo": "",
  "profile": "",
  "status": "FREE",
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris"
 }}

Description

Name Description Value
status Status of the create user operation “SUCCESS” / “ERROR”
label Error message
data Created user information (See Get Info > Output)

Update

The “updateuser” uri allows to update an existing Jooxter user.

Function

POST /updateuser

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Input

Name Description Default Value Mandatory
userHash Authentication Token of the updater (not updated user hash) (none) YES
email User email used to identify the user to update (none) YES*
idUser User technical id used to identify the user to update (none) YES*
userTypeId User type of the new created user (1=Manager, 2=User, 3=Administrator) (none) NO
firstname New user firstname (none) NO
lastname New user lastname (none) NO
telephone New user telephone (none) NO
timezone New user timezone (Europe/Paris) NO
lang New user lang (fr) NO
title New user title (Mr, Mrs) (Mr) NO
department New user department (Ex : IT, BIZ) (none) NO
locationId User default location (none) NO
corporationId User default corporation (none) NO
description User description (none) NO
website User website (none) NO
profile User profile (Ex : Architect, Designer) (none) NO
accountCode User accountCode (none) NO
authentificationProtocolId Authentication Protocol (none) NO
externalUID User external UID (none) NO

* If the userId parameter is provided, the email address is not mandatory and vice versa. If both of them are provided,the userId will be used to identify the user and the email address will be updated.

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "userId": 1,
  "title": "Mr",
  "lastname": "DOE",
  "firstname": "John",
  "userType": 3,
  "telephone": "0000000000",
  "email": "john.doe@demo.jooxter",
  "lang": "fr",
  "accountCode": "wscfbhjk",
  "accountName": "My Account",
  "corporationId": 42,
  "corporationName": "My Company",
  "locationId": 1,
  "locationName": "DEMO LOCATION",
  "department": "Design Office",
  "photo": "",
  "profile": "",
  "status": "FREE",
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris",
  "hasIndoorMap": "true",
  "isInternal" : true,  "lastPosition": {
  "locationId": 1,
  "locationName": "Demo Office",
  "floorId": 5,
  "resourceId": 55,
  "date": "19/05/2015 12:48:37",
  "numberOfSecondsSinceDetection": 124
 } }}

Description

Name Description Value
status Status of the update user operation “SUCCESS” / “ERROR”
label Error message
data Updated user information (See Get Info > Output)

Delete

The “deleteuser” uri allows to desactivate an existing Jooxter user.

Function

POST /deleteuser

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Input

Name Description Default Value Mandatory
userHash Your authentication token (none) YES
userId User id to be deleted (none) YES

Output

Example

{
  "status": "SUCCESS"
}

Reactivate

The “reactivateuser” uri allows to reactivate a previously desactivated Jooxter user.

Function

POST /reactivateuser

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Input

Name Description Default Value Mandatory
userHash Your authentication token (none) YES
uId User id to be reactivated (none) YES

Output

Example

{
  "status": "SUCCESS"
}

Get Status

The “getstatususer” uri allows to know in real time if a user is free or busy.

Ex :

https://app.jooxter.com/getstatususer?version=2&api=true&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is getstatususer.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
userId User whom the Requester want to know the status (none) NO

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "hash": "4d80c957f44972b8ee5a30854cef61c5d00cfe30",
  "status": "FREE"
 }}

Description

Name Description Value
userId User whom the Requester want to know the status (String)
status Current User Status (See User Status Rule)

Set Status

The “setstatususer” uri allows to change in real time user status to free or busy.

Ex :

https://app.jooxter.com/setstatususer?version=2&api=true&status=BUSYM&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is setstatususer.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
status User status “FREE” / “BUSYM” YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "hash": "",
  "status": "FREE"
 }}

Description

Name Description Value
hash Authentication Token of the User (String)
status Current User Status (See User Status Rule)

Get Positions

The “userlastposition” uri provides an historic of user positions inside the building. Of course, this feature only work if the user agreed to share its position data switching “Incognito Mode” to OFF on its mobile phone.

Ex :

https://app.jooxter.com/userlastposition?version=2&api=true&uid=1&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is userlastposition.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
uid Technical ID of the Requested User (none) YES
max Maximum number of user positions 1 NO

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "positions": [
 {  "floorId": 0,
  "resourceId": 6,
  "resourceTagId": 99,
  "locationId": 1,
  "locationName": "Demo location",
  "resourceName": "Demo office",
  "date": "19/05/2015 12:48:37",
  "numberOfSecondsSinceDetection": 124
 } ] }}

Description

Name Description Value
floorId Floor Number (Integer)
resourceId Technical Resource ID (Integer)
locationId Technical Location ID (Integer)
resourceName Resource Name (String)
locationName Location Name (String)
date Timestamp of the Position (DD/MM/YYYY HH:MM:SS)
numberOfSecondsSinceDetection Number of seconds since detection (Integer)

Create external user

This API allows you to create an external user, to add as an external guest on a booking.

Function

POST /createinviteduser

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Name Description Mandatory Value
userHash Authentication Token of the Requester YES (String)
firstname User Firstname YES (String)
lastname User Lastname YES (String)
corporationName Corporation Name YES (String)
email User Email NO (String)

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "userId": 100,
  "title": null,
  "lastname": "DOE",
  "firstname": "John",
  "userType": 2,
  "userTypeValue": "User",
  "telephone": null,
  "email": "john.doe@demo.jooxter",
  "lang": null,
  "accountCode": "wscfbhjk",
  "accountName": "My Account",
  "corporationId": 42,
  "corporationName": "My Company",
  "locationId": 1,
  "locationName": "DEMO LOCATION",
  "department": null,
  "photo": "",
  "profile": "",
  "status": "FREE",
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris",
  "validation": false,
  "isLegalTermsAccepted": false,
  "hasIndoorMap": "false",
  "isInternal": false
 }}

Description

Name Description Value
status Status of the update user operation “SUCCESS” / “ERROR”
label Error message
data Updated user information (See Get Info > Output)

Get previously invited users

The “getpreviouslyinvitedusers” uri allows to get the previsously invited users, created by the API /createinviteduser. The “uniqueCriteria” parameter can be a firstname, lastname or corporation name.

Ex :

https://app.jooxter.com/getpreviouslyinvitedusers?version=2&uniqueCriteria=john&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is getpreviouslyinvitedusers.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
uniqueCriteria Search criteria (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "users": [
 {  "userId": 100,
  "title": null,
  "lastname": "DOE",
  "firstname": "John",
  "userType": 2,
  "userTypeValue": "User",
  "telephone": null,
  "email": "john.doe@demo.jooxter",
  "lang": null,
  "accountCode": "wscfbhjk",
  "accountName": "My Account",
  "corporationId": 42,
  "corporationName": "My Company",
  "locationId": 1,
  "locationName": "DEMO LOCATION",
  "department": null,
  "photo": "",
  "profile": "",
  "status": "FREE",
  "timezoneDelta": 2,
  "timezoneName": "Europe/Paris",
  "validation": false,
  "isLegalTermsAccepted": false,
  "hasIndoorMap": "false",
  "isInternal": false
 } ] }}

Description

Name Description Value
status Status of the update user operation “SUCCESS” / “ERROR”
label Error message
users Array of User See Get Info > Output

Corporation

Create

The “createcorporation” uri allows to create a new Corporation (Company) inside a Jooxter account.

Ex :

https://app.jooxter.com/createcorporation?corporationName=Google6&corporationAdress=31 Mountain Street&corporationUrl=https://google.com/&userHash=aa0921166c8da1d2807d2a8583076c593d8b9dbv

Function

The service name, to call, is createcorporation.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the creator (none) YES
corporationName New corporation name (none) YES
corporationAdress New corporation address (none) YES
corporationUrl Corporation Website (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "corporationId": "483"
 }}

Description

Name Description Value
corporationId Current Corporation Id

Update

The “updatecorporation” uri allows to update a Corporation (Company) inside a Jooxter account.

Ex :

https://app.jooxter.com/updatecorporation?corporationId=564&corporationName=Google6&corporationAdress=31 Mountain Street&corporationUrl=https://google.com/&userHash=aa0921166c8da1d2807d2a8583076c593d8b9dbv

Function

The service name, to call, is updatecorporation.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the creator (none) YES
corporationId The corporation id to be updated (none) YES
corporationName New corporation name (none) NO
corporationAdress New corporation address (none) NO
corporationUrl Corporation Website (none) NO

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "corporationId": "483"
 }}

Description

Name Description Value
corporationId Current Corporation Id

Delete

The “deletecorporation” uri allows to delete a Corporation (Company) inside a Jooxter account.

Ex :

https://app.jooxter.com/deletecorporation?corporationId=564&userHash=aa0921166c8da1d2807d2a8583076c593d8b9dbv

Function

The service name, to call, is deletecorporation.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the creator (none) YES
corporationId The corporation id to be deleted (none) YES

Output

Example

{
  "status": "SUCCESS"
}

Resource

Get Info

The “getresource” uri provides detailed information about any resource of your building with real time context (Is there people in the room? is there a current booking?).

Ex :

https://app.jooxter.com/getresource?version=2&api=true&rid=894&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is getresource.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
rid Technical ID of the Requested resource (none) YES
api “true” YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "bookableFrom": "",
  "bookableTo": "",
  "capacity": 6,
  "currentMeeting": {
  "createdBy": "John Doe",
  "dateFrom": "06/10/2015 09:00",
  "dateTo": "06/10/2015 11:00",
  "ownerId": 5,
  "ownerName": "John Doe",
  "timestampCreatedBy": "19/05/2015 15:54",
  "title": "Booked by John Doe"
 },  "description": "SR2",
  "isBookable": true,
  "location": {
  "locationId": 42,
  "locationName": "Winterfell"
 },  "floor": {
  "floorId": 9001,
  "floorName": "Ground Floor",
  "floorNum": 0
 },  "isOnMAp": true,
  "nextMeeting": {},
  "ownerName": "John Doe",
  "people": [],
  "picture1": "",
  "picture2": "",
  "resourceId": 4,
  "resourceName": " Salle A2",
  "status": "BUSY",
  "grantedToCheck": false,
  "waitingCheckin": false,
  "waitingCheckout": false,
  "options": [ {
  "optionOverloadedId" : 1,  "optionDefinitionId" : 1,  "type" : "LIST",  "name" : "Configuration",  "impactBeforeTime" : true,  "beforeTime" : 15,  "impactAfterTime" : false,  "afterTime" : 0,  "impactCancellationPolicy" : false,  "cancellationPolicy" : 0,  "launchExternalAction" : true,  "externalAction" : "http://www.e-restau.com/panier?dateF=20/01/2016&resource=34",  "values" : ["Standard", "Plénière", "En L"],  "default" : "Standard" } ],  "resourceTypeId": 1
 }}

Description

Name Description Value
resourceId Technical Resource ID (Integer)
resourceName Resource Name (String)
picture1 The Resource Picture Picture encoded in base64 (String)
picture2 The Resource Picture Picture encoded in base64 (String)
picture3 The Resource Picture Picture encoded in base64 (String)
picture4 The Resource Picture Picture encoded in base64 (String)
people Array of User near to the Resource (See description below)
ownerId Technical User ID of the owner (Integer)
ownerName The owner name (Integer)
isOnMap Indicates if the Resource is geolocalized true / false
isBookable Indicates if the Resource is bookable true / false
description The Resource description (String)
currentMeeting The current Booking (See description below)
nextMeeting The next Booking (See description below)
capacity The maximum capacity (Integer)
bookableFrom The bookable time window start (HH:MM)
bookableTo The bookable time window end (HH:MM)
status Current Resource Status (See Resource Status Rule)
waitingCheckin Indicates if the Resource is waiting a checkin true / false
waitingCheckout Indicates if the Resource is waiting a checkout true / false
grantedToCheck Indicates if User is able to check the Resource true / false
options Array of Option (See description below)
resourceTypeId Technical Resource type ID (Integer)

Description of the location

Name Description Value
locationId Location ID (Integer)
locationName Location Name (String)

Description of the floor (can be empty)

Name Description Value
floorId Floor ID (Integer)
floorName Floor Name (String)
floorNum Floor Number (Integer)

Description of people

Name Description Value
userId See Get Info > Output
title See Get Info > Output
firstname See Get Info > Output
lastname See Get Info > Output
telephone See Get Info > Output
email See Get Info > Output
photo See Get Info > Output
date Timestamp of the Position (DD/MM/YYYY HH:MM:SS)
numberOfSecondsSinceDetection Number of seconds since detection (Integer)

Description of currentMeeting and nextMeeting

Name Description Value
bookingId See Get Info > Output
createdBy See Get Info > Output
dateFrom See Get Info > Output
dateTo See Get Info > Output
ownerId See Get Info > Output
ownerName See Get Info > Output
timestampCreatedBy See Get Info > Output
title See Get Info > Output
type See Get Info > Output

Description of options

Name Description Value
optionOverloadedId Technical Option Id
optionDefinitionId Technical Option Definition Id
type The Option type “LIST” / “TEXT” / “CHECKBOX” / “TEXTAREA”
name The Option name
impactBeforeTime Indicates if the time before a booking is impacted by the Option true / false
beforeTime Time before a booking, the Resource is unavailable
impactAfterTime Indicates if the time after a booking is impacted by the Option true / false
afterTime Time after a booking, the Resource is unavailable
impactCancellationPolicy Indicates if the cancellation policy is impacted by the Option true / false
cancellationPolicy Delay of cancellation before the booking
launchExternalAction Indicates if an external action must be launch when the booking is validated true / false
externalAction Url of the external action to launch
values List of values
default Default value of the Option

Lookup

The “searchresources” uri allows to search resources by criteria. The “uniqueCriteria” parameter could be a resource type (aka. desk, room, printer, etc) or name (aka. Room Tahiti, Fabien Desk, etc…), etc.

Ex :

https://app.jooxter.com/searchresources?version=2&api=true&uniqueCriteria=meeting+room&d=false&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is searchresources.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api “true” YES
d Technical Parameter. Set to true if you only want free resources. “false” YES
uniqueCriteria Search criteria (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "resources": [
 {  "resourceId": "96",
  "resourceName": "Bureau Fabien",
  "resourceCode": "01pnjdou",
  "photo": "",
  "status": "FREE",
  "options": [ {
  "optionOverloadedId" : 1,  "optionDefinitionId" : 1,  "type" : "LIST",  "name" : "Configuration",  "impactBeforeTime" : true,  "beforeTime" : 15,  "impactAfterTime" : false,  "afterTime" : 0,  "impactCancellationPolicy" : false,  "cancellationPolicy" : 0,  "launchExternalAction" : true,  "externalAction" : "http://www.e-restau.com/panier?dateF=20/01/2016&resource=34",  "values" : ["Standard", "Plénière", "En L"],  "default" : "Standard" } ],  "resourceTypeId" : 1 } ] }}

Description

Name Description Value
resources Array of Resources which match criteria See Below

Description of Matched Resource

Name Description Value
resourceId Technical Resource ID (Integer)
resourceName Resource Name (String)
resourceCode Resource Code (String)
photo The Resource Picture Picture encoded in base64 (String)
options Array of Option (See Get Info > Output)
isMandatoryParticipants Ture if a list of the mandatory participants is required (Boolean)
resourceTypeId Technical Resource type ID (Integer)

Get Status

The “statusRT” uri allows to know in real time if a resource is free or busy.

Ex :

https://app.jooxter.com/statusRT?version=2&api=true&r=489&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is statusRT.

Input

Name Description Default Value Mandatory
hash Authentication Token of the Requester (none) YES
r Technical Resource ID (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "resourceId": 4,
  "status": "BUSY"
 }}

Description

Name Description Value
resourceId Technical Resource ID (Integer)
status Current Resource Status (See Rule below)

Rule

Resource Type

Lookup

The “searchresourcetypes” uri allows to get all the resource types of your account.

Ex :

https://app.jooxter.com/searchresourcetypes?version=2&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is searchresourcetypes.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "resourceTypes": [
 {  "resourceTypeShortName": "FlexD",
  "resourceTypeId": 2,
  "isMonoUser": true,
  "resourceTypeName": "Flexible Desk",
  "cancellationPolicy": 30
 }, {  "resourceTypeShortName": "Tech",
  "resourceTypeId": 42,
  "isMonoUser": false,
  "resourceTypeName": "Technical",
  "cancellationPolicy": 0
 }, {  "resourceTypeShortName": "FlexO",
  "resourceTypeId": 43,
  "isMonoUser": false,
  "resourceTypeName": "Flexible Office",
  "cancellationPolicy": 60
 }, {  "resourceTypeShortName": "MR",
  "resourceTypeId": 44,
  "isMonoUser": false,
  "resourceTypeName": "Meeting Room",
  "cancellationPolicy": 0
 } ] }}

Description

Name Description Value
resourcetypes Array of all the resource types See Below

Description of a resource type

Name Description Value
resourceTypeId Technical Resource type ID (Integer)
resourceTypeName Resource Type Name (String)
resourceTypeShortName Resource Type Short Name (String)
isMonoUser Capacity is one true / false
cancellationPolicy number of minutes before a booking can’t be modified by a user (Integer)

Location

Get info

The “getlocation” uri allows to get informations for a location.

Ex :

https://app.jooxter.com/location?version=2&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30&locationId=87543

Function

The service name, to call, is getlocation.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
locationId Technical Location ID (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "locationId": 1,
  "locationName": "EuraTechnologies",
  "locationOpenHour": "8:00",
  "locationCloseHour": "22:00",
  "locationAddress": "165, avenue de Bretagne 59000 Lille",
  "locationLatitude": 50.6334,
  "locationLongitude": 3.02038,
  "locationURL": "http://www.euratechnologies.com",
  "timezoneName": "Europe/Paris",
  "pictures": [
 "https://www.jooxter.com/picture.jpeg", "https://www.jooxter.com/picture.jpeg" ] }}

Description

Name Description Value
locationId Technical Location ID (Integer)
locationName Location Name (String)
locationOpenHour Open Hour (String)
locationCloseHour Close Hour (String)
locationAddress Address (String)
locationLatitude Latitude (String)
locationLongitude Longitude (String)
locationURL URL (String)
timezoneName Location Timezone (String)
pictures URL of locations’ pictures (Array)

Lookup

The “searchlocations” uri allows to get all the locations of your account.

Ex :

https://app.jooxter.com/searchlocations?version=2&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is searchlocations.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "locations": [
 {  "locationId": 1,
  "locationName": "EuraTechnologies",
  "locationOpenHour": "8:00",
  "locationCloseHour": "22:00",
  "locationAddress": "165, avenue de Bretagne 59000 Lille",
  "locationLatitude": 50.6334,
  "locationLongitude": 3.02038,
  "locationURL": "http://www.euratechnologies.com",
  "timezoneName": "Europe/Paris",
  "pictures": [
 "https://www.jooxter.com/picture.jpeg", "https://www.jooxter.com/picture.jpeg" ] }, {  "locationId": 12,
  "locationName": "Canary Wharf",
  "locationOpenHour": "7:00",
  "locationCloseHour": "00:00",
  "locationAddress": "1, canada Square, canary wharf london E145AB",
  "locationLatitude": 51.5025,
  "locationLongitude": -0.0190892,
  "locationURL": "http://canarywharf.com",
  "timezoneName": "Europe/London",
  "pictures": [
 "https://www.jooxter.com/picture.jpeg", "https://www.jooxter.com/picture.jpeg" ] } ] }}

Description

Name Description Value
locations Array of all the locations See Below

Description of a location

Name Description Value
locationId Technical Location ID (Integer)
locationName Location Name (String)
locationOpenHour Open Hour (String)
locationCloseHour Close Hour (String)
locationAddress Address (String)
locationLatitude Latitude (String)
locationLongitude Longitude (String)
locationURL URL (String)
timezoneName Location Timezone (String)
pictures URL of locations’ pictures (Array)

Booking

Create

The “savebooking” uri allows to create a new booking on a specific resource.

Function

POST /savebooking

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
resourceId Technical Resource ID (none) YES
userId Technical User ID (none) YES
title Booking title (none) YES
dateTo End Date (DD/MM/YYYY) (none) YES
timeTo End Time (HH:MM) (none) YES
invitedPeople List of invited people (emails separated with “,”) (none) NO
options[i].idOptionOverloaded Option Id (none) NO
options[i].value Option value (none) NO

You can provide as many options as you want by increasing i, starting at 0.
For each option, you need to provide the option overloaded id and the value.

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "bookingId": 3
 }}

Description

Name Description Value
bookingId Created Booking ID (String)

Rule

Get Info

The “getbooking” uri provides detailed information about any booking occurring on resources of your building with real time context (Is there people in the room? etc).

Ex :

https://app.jooxter.com/getbooking?version=2&api=true&bookingId=894&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is getbooking.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api “true” YES
bookingId Booking ID (none) YES

Output

Example

{
  "STATUS": "SUCCESS",
  "data": {
  "bookingId": 3830,
  "cancellationPolicy": 0,
  "checkedIn": false,
  "checkedOut": false,
  "code": "uhzeu1cp",
  "confirmed": true,
  "createdBy": "John Doe",
  "description": "Booked by John Doe",
  "idCreatedBy": 344,
  "idModifiedBy": 344,
  "guests": [
 {  "title": "Mr",
  "statusInvitation": "wait",
  "status": "FREE",
  "email": "341@341.com",
  "userId": 341,
  "isInternal" : true } ],  "isDetailPrivate": false,
  "isInternal": false,
  "locationName": "EuraTechnologies",
  "modifiedBy": "John Doe",
  "ownerId": 344,
  "ownerName": "John Doe",
  "recurrency": false,
  "resourceId": 4,
  "resourceName": "Salle A2",
  "status": "Approved",
  "timeStampCheckedIn": "",
  "timeStampCheckedOut": "",
  "timestampCreatedBy": "09/06/2015 17:57:04",
  "timestampFrom": "09/06/2015 16:30:00",
  "timestampModifiedBy": "09/06/2015 17:57:04",
  "timestampTo": "10/06/2015 21:30:00",
  "timezoneName": "Europe/Paris",
  "title": "Booked by John Doe",
  "userId": 344,
  "options": [
 {  "optionId": 7,
  "name": "With Meal",
  "type": "CHECKBOX",
  "value": false,
  "beforeTime": 0,
  "afterTime": 0,
  "cancellationPolicy": 0,
  "optionDefinitionId": 2,
  "icon": "http://app.jooxter.com/images/7bed199a055f5e2bc927246964adf0d6fff3290b.png",
  "launchExternalAction": false,
  "link": ""
 } ] }}

Description

Name Description Value
bookingId Booking ID (Integer)
resourceId Technical Resource ID (Integer)
resourceName Resource Name (String)
ownerId Owner User ID (Integer)
title Booking Title (String)
description Booking Description (String)
confirmed Booking confirmation true / false
timestampFrom Begin Timestamp (DD/MM/YYYY HH:MM:SS)
timestampTo End Timestamp (DD/MM/YYYY HH:MM:SS)
recurrency Not to use yet true / false
locationName Location Name (String)
checkedIn Indicates if the Booking is checked in true / false
timestampCheckedIn Checked in Timestamp (DD/MM/YYYY HH:MM:SS)
checkedOut Indicates if the Booking is checked out true / false
timestampCheckedOut Checked out Timestamp (DD/MM/YYYY HH:MM:SS)
isInternal true / false
code (String)
isDetailPrivate Indicates if the Booking is private true / false
status Booking Status “Requested” / “Approved” /
“Rejected” / “Cancelled” /
“Finished”
idCreatedBy User ID who created the Booking (Integer)
createdBy Username who created the Booking (String)
timestampCreatedBy Creation Timestamp (DD/MM/YYYY HH:MM:SS)
idModifiedBy User ID who created the Booking (Integer)
modifiedBy Username who created the Booking (String)
timestampModifiedBy Creation Timestamp (DD/MM/YYYY HH:MM:SS)
cancellationPolicy Delay, before the beginning of the Booking, the owner can’t cancel it. (Integer)
guests Array of User invited to the Booking (See description below)
type Booking Type 1 : Manual / 2 : Auto

Description of guests to a Booking

Name Description Value
userId See Get Info > Output
userType See Get Info > Output
title See Get Info > Output
telephone See Get Info > Output
email See Get Info > Output
firstname See Get Info > Output
lastname See Get Info > Output
locationId See Get Info > Output
locationName See Get Info > Output
lang See Get Info > Output
status See Get Info > Output
statusInvitation The response to the invitation “maybe” / “true” / “false”
isInternal Indicates if the user is an internal one true / false
checkedIn See Get Info > Output
timestampCheckedIn See Get Info > Output
checkedOut See Get Info > Output
timestampCheckedOut See Get Info > Output

Description of Options to a Booking

Name Description Value
optionId Technical Option ID (Integer)
name Option name (String)
type Option type “CHECKBOX” / “TEXT” / “LIST” / “TEXTAREA”
value Option value (Boolean) if option has type “CHECKBOX” else (String)
beforeTime Time in minutes before the booking that the ressource is not available (Integer)
afterTime Time in minutes after the booking that the ressource is not available (Integer)
cancellationPolicy Time in minutes before the booking that it is not possible to cancelled it (Integer)
optionDefinitionId Technical Option Defition ID (Integer)
icon Option Icon (Url)
launchExternalAction Indicates if an external action has to be launched on validation (Boolean)
link Url to contact if an external action has to be launched (Url)

Update

The “updatebooking” uri allows to update a booking. (Modify date, time, title, etc…)

Function

POST /updatebooking

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
resourceId Technical Resource ID (none) YES
userId Technical User ID (none) NO
bookingId Technical Booking ID (none) YES
title Booking title (none) NO
dateFrom Begin Date (DD/MM/YYYY) (none) YES
dateTo End Date (DD/MM/YYYY) (none) YES
timeFrom Begin Time (HH:MM) (none) YES
timeTo End Time (HH:MM) (none) YES
description Booking description (none) NO
isDetailPrivate Booking privacy “false” NO
invitedPeople List of invited people (emails separated with “,”) (none) NO
options[i].idOptionValue Option Value Id (none) NO
options[i].value Option value (none) NO

You can pass as many options as you want by increasing i, starting at 0.
For each option, you need to provide the option value id and the value.

Output

Example

{
  "status": "SUCCESS"
}

Description

Name Description Value
label Explanation label (See Rule below)

Rule

Cancel

The “cancelbooking” simply allows to cancel a booking.

Ex :

https://app.jooxter.com/cancelbooking?version=2&api=true&b=894&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The service name, to call, is cancelbooking.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api “true” YES
b Technical Booking ID (none) YES

Output

Example

{
  "status": "SUCCESS"
}

Description

Name Description Value
label Explanation label (See Rule below)

Rule

Lookup

The “searchbookings” uri allows to search bookings by criterias.

Ex :

https://app.jooxter.com/searchbookings?version=2&api=true&resourceId=489&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

The function name, to call, is searchbookings.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api “true” YES
title Booking Title (none) NO
description Booking Description (none) NO
resourceId Technical Resource ID linked to the Booking (none) NO
resourceTypeId Technical Resource Type ID (none) NO
locationId Technical Location ID (none) NO
userId Technical User ID (none) NO
dateFrom Booking Begin Date (DD/MM/YYYY) (none) NO
dateTo Booking End Date (DD/MM/YYYY) (none) NO
timeFrom Booking Begin Time (HH:MM) (none) NO
timeTo Booking End Time (HH:MM) (none) NO
yours Retrieve restriction “false” NO

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "bookings": [
 {  "bookingId": 3830,
  "cancellationPolicy": 0,
  "checkedIn": false,
  "checkedOut": false,
  "code": "uhzeu1cp",
  "confirmed": true,
  "createdBy": "John Doe",
  "description": "Booked by John Doe",
  "idCreatedBy": 344,
  "idModifiedBy": 344,
  "guests": [
 {  "title": "Mr",
  "statusInvitation": "wait",
  "status": "FREE",
  "email": "341@341.com",
  "userId": 341,
  "isInternal" : true } ],  "isDetailPrivate": false,
  "isInternal": false,
  "locationName": "EuraTechnologies",
  "modifiedBy": "John Doe",
  "ownerId": 344,
  "ownerName": "John Doe",
  "recurrency": false,
  "resourceId": 4,
  "resourceName": "Salle A2",
  "status": "Approved",
  "timeStampCheckedIn": "",
  "timeStampCheckedOut": "",
  "timestampCreatedBy": "09/06/2015 17:57:04",
  "timestampFrom": "09/06/2015 16:30:00",
  "timestampModifiedBy": "09/06/2015 17:57:04",
  "timestampTo": "10/06/2015 21:30:00",
  "timezoneName": "Europe/Paris",
  "title": "Booked by John Doe",
  "userId": 344
 } ] }}

Description

Name Description Value
bookings Array of Booking See Get Info > Output

Update Invitation Status

The “setstatusinvitation” simply allows to confirm or not an invitation for a booking if the user is invited.

Ex :

http://localhost:8080/jooxter/setstatusinvitation?userHash=97888543dae82b9bff611a5df6163c42a9c2fedf&bookingId=6233&status=true

Function

The service name, to call, is setstatusinvitation.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
bookingId Technical Booking ID (none) YES
status Reply to the invitation. Can be “true”, “false” or “maybe” (none) YES

Output

Example

{
  "status": "SUCCESS"
}

Description

Name Description Value
label Explanation label (See Rule below)

Rule

Update Validation Status

This API allows you to confirm or not a booking request, if you have enough rights.

Ex :

http://localhost:8080/jooxter/setstatusvalidation?userHash=97888543dae82b9bff611a5df6163c42a9c2fedf&bookingId=6233&status=approved

Function

GET /setstatusvalidation

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
bookingId Technical Booking ID (none) YES
status “approved” or “rejected” (none) YES

Output

Example

{
  "status": "SUCCESS"
}

Description

Name Description Value
label Explanation label (See Rule below)

Rule

Checkin

This API allows you to check-in your booking.

Function

POST /checkin

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
b Technical Booking ID (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "checkedIn": true
 }}

Description

Name Description Value
checkedIn true if done, false if not (Boolean)

Checkout

This API allows you to check-out your booking.

Function

POST /checkout

Input (body)

The content-type must be application/x-www-form-urlencoded (Default type of a POST for a form)

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
b Technical Booking ID (none) YES

Output

Example

{
  "status": "SUCCESS",
  "data": {
  "checkedOut": true
 }}

Description

Name Description Value
checkedOut true if done, false if not (Boolean)

Device

Notify

The “r” uri allows to get detailed real-time resource information using unique device (SENSORS) identifier. This Web Service is used by Jooxter Android and iOS SDK.

Ex :

https://app.jooxter.com/r/FECDYG7VD2D7?version=2&api=true&action=info&userHash=4d80c957f44972b8ee5a30854cef61c5d00cfe30

Function

When your mobile application detects a Jooxter sensor, it will notify Jooxter servers with events :

Your mobile application could enter, quit, identify it as the closest, or get information about a Jooxter device.

The service name, to call, is ***r/{bdi}***.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api “true” YES
bdi Device Identifier (none) YES
rawBle Indicates if the transmitter is an Android OS “true” / "false NO
beacon Indicates if the transmitter is an Iphone OS “true” / "false NO
major major IBeacon information (none) YES, if beacon is “true”
minor minor Ibeacon information (none) YES, if beacon is “true”
action Action to notify “info” / “infoLight” / “closest”/ “entered” / “quitted” YES

Output

The output depends on action value.

action equals “info”, “infoLight” or “entered”

The function returns the Resource linked to the Device.

Example

{
  "status": "SUCCESS",
  "data": {
  "bluetoothId": "EF004D7029F2",
  "uuid": "6F7E0FE4-93D5-4693-B42C-06E58A7FEBA9-101-900",
  "maxRssi": -200,
  "tagCode": 1,
  "resource": {
  "resourceId": 1,
  "grantedToCheck": false,
  "ownerName": "John Doe",
  "bookableFrom": "",
  "bookableTo": "",
  "description": "BPH",
  "capacity": 4,
  "isOnMAp": false,
  "isBookable": true,
  "resourceName": "Salle de réunion A",
  "people": [
 {  "title": "Mr",
  "email": "john.doe@jooxter.com",
  "userId": 344,
  "lastname": "Doe",
  "firstname": "John",
  "photo": "",
  "telephone": "0606060606"
 } ] } }}
Name Description Value Visibility
blueToothId Device Identifier for Android mobile (String) “info”, “infoLight” and “entered”
uuid Device Identifier for Iphone mobile (String) “info”, “infoLight” and “entered”
maxRssi Device Received signal strength indication (Integer) “info” and “entered”
tagCode Device Code (Integer) “info” and “entered”
resource Resource associated to the Device see Get Info > Output

if action equals "infoLight, the following data are not available in the Resource object :

action equals “closest”, “quitted”

The function returns an acknowledgement object.

Example

{
  "status": "SUCCESS",
  "data": {
  "statisticId": 63639
 }}
Name Description Value
statisticId Statistic Technical ID (Integer)

SendStats

The “sendStats” uri allows to get detailed real-time resources information using unique device (SENSORS) identifiers. This Web Service is used by Jooxter Android and iOS SDK.

Ex :

https://app.jooxter.com/sendStats

Function

When your mobile application detects a Jooxter sensor, it will notify Jooxter servers with events :

Your mobile application could enter, quit, identify it as the closest, or get information about Jooxter devices.

The service name, to call, is sendStats.

All inputs needs to be inserted in a POST request with form-data as content-type.

Input

Name Description Default Value Mandatory
userHash Authentication Token of the Requester (none) YES
api “true” YES
version version of the api (none) YES
data JSON array containing all information (none) YES

The data parameter is a JSON array containing JSON objects with the following parameters

Name Description Default Value Mandatory
bdi Device Identifier (none) YES
rawBle Indicates if the transmitter is an Android OS “true” / "false NO
beacon Indicates if the transmitter is an Iphone OS “true” / "false NO
major major IBeacon information (none) YES, if beacon is “true”
minor minor Ibeacon information (none) YES, if beacon is “true”
action Action to notify “info” / “infoLight” / “closest”/ “entered” / “quitted” YES

Output

The output depends on action value.

action equals “info”, “infoLight” or “entered”

The function returns the Resource linked to the Device.

Example

{
  "result" : [ {  "status": "SUCCESS",
  "data": {
  "bluetoothId": "EF004D7029F2",
  "uuid": "6F7E0FE4-93D5-4693-B42C-06E58A7FEBA9-101-900",
  "maxRssi": -200,
  "tagCode": 1,
  "resource": {
  "resourceId": 1,
  "grantedToCheck": false,
  "ownerName": "John Doe",
  "bookableFrom": "",
  "bookableTo": "",
  "description": "BPH",
  "capacity": 4,
  "isOnMAp": false,
  "isBookable": true,
  "resourceName": "Salle de réunion A",
  "people": [
 {  "title": "Mr",
  "email": "john.doe@jooxter.com",
  "userId": 344,
  "lastname": "Doe",
  "firstname": "John",
  "photo": "",
  "telephone": "0606060606"
 } ] } } }, {other JSON Objects ...} ]}
Name Description Value Visibility
blueToothId Device Identifier for Android mobile (String) “info”, “infoLight” and “entered”
uuid Device Identifier for Iphone mobile (String) “info”, “infoLight” and “entered”
maxRssi Device Received signal strength indication (Integer) “info” and “entered”
tagCode Device Code (Integer) “info” and “entered”
resource Resource associated to the Device see Get Info > Output

if action equals "infoLight, the following data are not available in the Resource object :

action equals “closest”, “quitted”

The function returns an acknowledgement object.

Example

{
  "result" : [ {  "status": "SUCCESS",
  "data": {
  "statisticId": 63639
 } },        {other JSON Objects ...}
 ]}
Name Description Value
statisticId Statistic Technical ID (Integer)

Error

In case of error, the bdi will be return to identify the error.

Example

{
  "result" : [ {  "status": "ERROR",
  "data": {
  "bluetoothId": "F4516128E80"
 },  "label": "RESOURCE NOT FOUND"
 },        {other JSON Objects ...}
 ]}