Offision External Api (v1)
Download OpenAPI specification:Download
Offision External API allow developers to interact with their team's data (such as locations, spaces, presence, etc.) and build third-party applications to extend Offision's capabilities.
This API documents is an reference for integration with Offision server. These External APIs allow third party application to access Bookings one for data communication. There are serval scenarios that will highly depend on the Offision API integration, such as IoT sensor integration, access control integration, data analytics etc.
All these API are running in HTTPs RESTful request.
Offision offers authentication through the API authentication:
Navigate to Management console -> Settings -> API authentication
, and create the API access token for authentication.
The Offision APIs use this access token to authenticate incoming requests. You can view and manage your access token in the Offision Management console.
Find out how to create access token for API authentication.
These access tokens contain many privileges, thus make sure to keep them secure and do not share these access token in public accessible site such as GitHub, client-side code, and so forth.
Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. You do not need to provide a password.
If you need to authenticate via bearer auth (e.g. for a cross-origin request), use
-H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXX".
All API requests must be made over HTTPS. Calls made over plain HTTP will be auto redirect to HTTPS. API requests without authentication will be treated as fail and return 401 errors. Example:
curl -v -L -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json" "https://{your bookings one server address}/API/external/system/v1/information"
There are serval security practices that can be done to protect your application from vicious network attack on the Offision integration:
Access token will only show once when it is generated, and it will not be shown again in anywhere and anytime afterwards. After you refresh the page, if you have lost the key, you need to go back to the management console to regenerate a new token for replacement.
If you have more than 1 application which would like to connect to Offision, you can create new keys for each application. Please do not use the same key for different applications.
You can restrict the access by limiting the sender IP address. Following are the valid format:
- 225.154.33.1
- 225.154.33.1-100
- 225.154.33.3, 225.154.33.100
- 225.154.33.0/24
You can also set expire time to make sure the authentication key will not be effective for certain period of time.
If you find out that the existing APIs are not enough for your use case, please send a email to hello@ones.software and provide further information of your case, we will consider to add new APIs to Offision to fit your story.
This section of APIs provide the communication interface for information of visitor.
Get visitor badge information
Getting the visitor badge information by id / uid
path Parameters
id required | string |
Responses
Response samples
- 200
{- "id": 1,
- "uid": "string",
- "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "registrationCode": "FJUEIW",
- "state": 0,
- "visitor": {
- "id": 0,
- "emailAddress": "john.smith@ones.software",
- "displayName": "John Smith",
- "mobileNumber": {
- "countryCode": "string",
- "number": "string"
}
}, - "checkInDate": "2021-01-03T12:00:00+08:00",
- "checkOutDate": "2021-01-03T14:00:00+08:00"
}
Search visitor badge information
Search the visitor badge information
query Parameters
id | string ID of Visitor badge, accept multiple separate by ',' e.g. 1,2,3 |
uid | string UID of Visitor badge, accept multiple separate by ',' |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
registrationCode | string Registration code of Visitor badge, accept multiple separate by ',' e.g. ABCDEF,BCDEFG |
buildingId | string BuildingId of Visitor badge, accept multiple separate by ',' e.g. 1,2,3 |
state | string State of Visitor badge, accept multiple separate by ',' e.g. initial,noShow,visited,visiting |
page | integer <int32> |
row | integer <int32> |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 1,
- "uid": "string",
- "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "registrationCode": "FJUEIW",
- "state": 0,
- "visitor": {
- "id": 0,
- "emailAddress": "john.smith@ones.software",
- "displayName": "John Smith",
- "mobileNumber": {
- "countryCode": "string",
- "number": "string"
}
}, - "checkInDate": "2021-01-03T12:00:00+08:00",
- "checkOutDate": "2021-01-03T14:00:00+08:00"
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
This section of APIs provide the communication interface for information of visiting appointment.
Search visitor appointment information
Search the visitor appointment information
query Parameters
id | string ID of Appointments, accept multiple separate by ',' |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
invitingUserId | string ID of appointment inviter, accept multiple separate by ',' , e.g. 1,2,3 |
searchText | string Search by the appointment subject and content |
bookingState | string Specify the booking state, return all if this is not provided. accept multiple separate by ',' , e.g. booked,using,waitingCheckIn |
bookableResourceId | string ID of Bookable resource, accept multiple separate by ',' , e.g. 1,2,3 |
buildingId | string ID of building, accept multiple separate by ',' , e.g. 1,2,3 |
visitorId | string ID of visitor, accept multiple separate by ',' , e.g. 1,2,3 |
bookingId | string ID of booking, accept multiple separate by ',' , e.g. 1,2,3 |
page | integer <int32> page |
row | integer <int32> row |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "string",
- "subject": "string",
- "isAllDay": true,
- "textBody": "string",
- "appearanceType": 0,
- "bookableResources": [
- {
- "id": 3,
- "name": [
- {
- "language": "string",
- "text": "string"
}
], - "type": 0
}
], - "buildings": [
- {
- "id": 3,
- "name": [
- {
- "language": "string",
- "text": "string"
}
]
}
], - "invitingUser": {
- "id": 3,
- "displayName": "Room 101",
- "emailAddress": "string"
}, - "visitors": [
- {
- "id": 3,
- "displayName": "Room 101"
}
], - "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "booking": {
- "id": 3,
- "masterBookingId": 0,
- "bookingState": 0,
- "iCalUid": "string"
}
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
Response samples
- 200
{- "id": 0,
- "displayName": "string",
- "emailAddress": "string",
- "userName": "string",
- "activateStatus": 0,
- "userGroups": [
- {
- "id": 0,
- "name": "string"
}
], - "actualPermissions": [
- "string"
], - "isDeleted": true
}
Search users by pagination
query Parameters
id | string Service item ids specified, e.g. 1,2,3 |
userGroupId | string Search by the user group id id e.g. 1,2,3 |
searchText | string Search by the bookable resource name |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "displayName": "string",
- "emailAddress": "string",
- "userName": "string",
- "activateStatus": 0,
- "userGroups": [
- {
- "id": 0,
- "name": "string"
}
], - "actualPermissions": [
- "string"
], - "isDeleted": true
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
This section of APIs provide the communication interface for information of service item.
Search service items by pagination
query Parameters
id | string Service item ids specified, e.g. 1,2,3 |
type | string Service item type, accept multiple separate by ',' , e.g. betweenBooking,afterBooking |
servicePlanId | string Search by the service plan id id e.g. 1,2,3 |
searchText | string Search by the bookable resource name |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "type": 0,
- "isDeleted": true,
- "actualAssignedUsers": [
- {
- "id": 0,
- "displayName": "string",
- "emailAddress": "string"
}
]
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
This section of APIs provide the communication interface for information of iot device.
Search iot devices by pagination
query Parameters
id | string Iot device ids specified, e.g. 1,2,3 |
accessId | string Iot device accessIds specified e.g. Room101,Desk101 |
searchText | string Search by the iot device name |
bookableResourceId | string Search by the bookable resource id e.g. 1,2,3 or null |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "accessId": "string",
- "name": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isDeleted": true
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
Post environment sensor data
Update the environment sensor environment information
Request Body schema:
Sensor data
accessId required | string non-empty Access ID of the related Iot Device |
timestamp | string or null <date-time> Time of the data collected by sensor. If empty, system will use the time data received by the system. |
temperature | number or null <double> |
temperatureUnit | integer <int32> (Server.Domain.Features.InternetOfThings.IotSensorData.TemperatureUnit) Enum: 0 1 |
humidity | number or null <double> |
humidityUnit | integer <int32> (Server.Domain.Features.InternetOfThings.IotSensorData.HumidityUnit) Value: 0 |
hasMotion | boolean or null |
hcho | number or null <double> |
cO2 | number or null <double> |
detectedLUX | number or null <double> |
detectedKelvin | number or null <double> |
actualLUX | number or null <double> |
actualKelvin | number or null <double> |
tvoc | number or null <double> |
pM25 | number or null <double> |
pM10 | number or null <double> |
barometricPressure | number or null <double> |
powerConsumption | number or null <double> |
powerConsumptionUnit | integer <int32> (Server.Domain.Features.InternetOfThings.IotSensorData.PowerConsumptionUnit) Value: 0 |
noiseLevel | number or null <double> |
Responses
Request samples
- Payload
{- "accessId": "4GHUG6",
- "timestamp": "2022-01-12T12:23:02+08:00",
- "temperature": 0.1,
- "temperatureUnit": 0,
- "humidity": 0.1,
- "humidityUnit": 0,
- "hasMotion": true,
- "hcho": 0.1,
- "cO2": 0.1,
- "detectedLUX": 0.1,
- "detectedKelvin": 0.1,
- "actualLUX": 0.1,
- "actualKelvin": 0.1,
- "tvoc": 0.1,
- "pM25": 0.1,
- "pM10": 0.1,
- "barometricPressure": 0.1,
- "powerConsumption": 0.1,
- "powerConsumptionUnit": 0,
- "noiseLevel": 0.1
}
Response samples
- 200
{- "isSuccess": true
}
This section of APIs provide the communication interface for information of iot device.
Search iot devices by pagination
query Parameters
id | string Iot device ids specified, e.g. 1,2,3 |
accessId | string Iot device accessIds specified e.g. Room101,Desk101 |
searchText | string Search by the iot device name |
bookableResourceId | string Search by the bookable resource id e.g. 1,2,3 or null |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "accessId": "string",
- "name": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isDeleted": true
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
Create iot device
Request Body schema:
Iot device to be create
id | integer <int32> Bookable resource Id |
accessId | string or null Access Id |
name | string or null IotDevice name |
object (Server.ExternalInterface.Features.Sensor.OccupancySensorViewModel+BookableResourceViewModel) | |
isDeleted | boolean Is the iot device deleted |
Responses
Request samples
- Payload
{- "id": 0,
- "accessId": "string",
- "name": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isDeleted": true
}
Response samples
- 200
{- "id": 0,
- "accessId": "string",
- "name": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isDeleted": true
}
Update iot device
path Parameters
id required | string Iot device ids specified, e.g. 1,2,3 |
Request Body schema:
Iot device to be create
id | integer <int32> Bookable resource Id |
accessId | string or null Access Id |
name | string or null IotDevice name |
object (Server.ExternalInterface.Features.Sensor.OccupancySensorViewModel+BookableResourceViewModel) | |
isDeleted | boolean Is the iot device deleted |
Responses
Request samples
- Payload
{- "id": 0,
- "accessId": "string",
- "name": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isDeleted": true
}
Response samples
- 200
{- "id": 0,
- "accessId": "string",
- "name": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isDeleted": true
}
Post occupancy sensor data
Update the occupancy sensor occupancy information
Request Body schema:
Sensor data
accessId required | string non-empty Access ID of the related Iot Device |
timestamp | string or null <date-time> Time of the data collected by sensor. If empty, system will use the time data received by the system. |
hasMotion | boolean |
Responses
Request samples
- Payload
{- "accessId": "4GHUG6",
- "timestamp": "2022-01-12T12:23:02+08:00",
- "hasMotion": true
}
Response samples
- 200
{- "isSuccess": true
}
Search locker by pagination
query Parameters
id | string Locker ids specified, e.g. 1,2,3 |
searchText | string Search by the locker name |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 1,
- "name": "Locker 1",
- "locker": {
- "id": 0,
- "name": "string",
- "floor": {
- "id": 0,
- "name": "string"
}
}, - "isDeleted": true
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
This section of APIs provide the communication interface for information of building.
Response samples
- 200
{- "id": 1,
- "name": "EPaperController 1",
- "displayLanguage": "en-US",
- "tags": [
- {
- "id": "string",
- "externalKey": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isLicenseValid": true
}
]
}
Search building by pagination
query Parameters
id | string EPaperController ids specified, e.g. 1,2,3 |
type | string E Paper controller type, accept multiple separate by ',' , e.g. qbicGateway or MinewServer |
searchText | string Search by the building name |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 1,
- "name": "EPaperController 1",
- "displayLanguage": "en-US",
- "tags": [
- {
- "id": "string",
- "externalKey": "string",
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "isLicenseValid": true
}
]
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
Search building by pagination
Request Body schema:
Update e-paper tag status request
batteryLevel | number or null <double> Battery Level of the device |
screenSize | number or null <double> ScreenSize |
isOnline | boolean Is the tag online |
ePaperTagId | string or null Id of e paper tag |
Responses
Request samples
- Payload
{- "batteryLevel": 99,
- "screenSize": 4,
- "isOnline": true,
- "ePaperTagId": "true"
}
Response samples
- 200
{- "isSuccess": true
}
This section of APIs provide the communication interface for information of various data analytics on dashboard.
Get daily visitor analytics result
Getting the daily visitor analytics result of Offision
query Parameters
date required | string <date-time> Date contain two information Since Offision are running in global server, it will not have information which the request's timezone are, it is necessary to specify the offset of your request timezone.
Example: |
Responses
Response samples
- 200
{- "numberOfInitial": 10,
- "numberOfVisiting": 15,
- "numberOfVisited": 6,
- "numberOfNoShow": 3
}
Get daily visitor analytics result
Getting the daily visitor analytics result of Offision
query Parameters
date required | string <date-time> Date contain two information Since Offision are running in global server, it will not have information which the request's timezone are, it is necessary to specify the offset of your request timezone.
Example: |
Responses
Response samples
- 200
{- "numberOfInitial": 10,
- "numberOfVisiting": 15,
- "numberOfVisited": 6,
- "numberOfNoShow": 3
}
Search building by pagination
query Parameters
id | string Building ids specified, e.g. 1,2,3 |
searchText | string Search by the building name |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 1,
- "name": "Building 1",
- "address": "string",
- "floors": [
- {
- "id": 0,
- "name": "string",
- "order": 0
}
], - "isDeleted": true
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
This section of APIs provide the communication interface for booking information of bookable resource.
Get resource appointments
Getting the appointment of bookable resources in Offision
query Parameters
id | string ID of Appointments, accept multiple separate by ',' |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
organizerUserId | string ID of appointment organizer, accept multiple separate by ',' , e.g. 1,2,3 |
searchText | string Search by the appointment subject and content |
bookingState | string Specify the booking state, return all if this is not provided. accept multiple separate by ',' , e.g. booked,using,waitingCheckIn |
bookableResourceId | string ID of Bookable resource, accept multiple separate by ',' , e.g. 1,2,3 |
bookableResourceType | string Type of Bookable resource, accept multiple separate by ',', e.g. room, desk |
bookingId | string ID of booking, accept multiple separate by ',' , e.g. 1,2,3 |
excludePreparation | boolean Exclude preparation appointments |
page | integer <int32> page |
row | integer <int32> row |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "string",
- "subject": "string",
- "isAllDay": true,
- "textBody": "string",
- "appearanceType": 0,
- "bookableResource": {
- "id": 3,
- "name": "Room 101",
- "type": 0
}, - "organizer": {
- "userId": 3,
- "displayName": "Room 101",
- "emailAddress": "string"
}, - "attendees": [
- {
- "userId": 3,
- "displayName": "Room 101",
- "role": "Organizer"
}
], - "isPreparationAppointment": 12,
- "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "booking": {
- "id": 3,
- "masterBookingId": 0,
- "bookingState": 0,
- "iCalUid": "string"
}, - "services": [
- {
- "id": "123321",
- "status": 0,
- "serviceItem": {
- "id": 0,
- "name": "string"
}, - "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}
}
]
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
Export bookings by bookable resource to Excel
If no time zone is specified, UTC time is used
Following API is still under construction. Will be released in coming version and the format may be changed based on development..
query Parameters
From | string <date-time> Example: From=2021-10-11T11:00:00+08:00 Start time of the period |
To | string <date-time> Example: To=2021-10-11T14:00:00+08:00 End time of the period |
TimeZone | string Example: TimeZone=Asia/Hong_Kong Time zone name |
OrganizerEmailDomain | string Example: OrganizerEmailDomain=gmail.com Organizer email domain name |
Responses
/api/external/booking
Request Body schema:
subject | string or null |
htmlBody | string or null |
textBody | string or null |
object (Server.Domain.Core.DateTime.DateTimeZoneRange) | |
resources | Array of strings or null |
organizer | string or null |
requiredAttendees | Array of strings or null |
optionalAttendees | Array of strings or null |
isAllDay | boolean |
withOnlineMeeting | boolean |
Responses
Request samples
- Payload
{- "subject": "string",
- "htmlBody": "string",
- "textBody": "string",
- "period": {
- "start": "2019-08-24T14:15:22Z",
- "startTimeZone": "string",
- "end": "2019-08-24T14:15:22Z",
- "endTimeZone": "string"
}, - "resources": [
- "string"
], - "organizer": "string",
- "requiredAttendees": [
- "string"
], - "optionalAttendees": [
- "string"
], - "isAllDay": true,
- "withOnlineMeeting": true
}
Response samples
- 200
{- "id": 3,
- "masterBookingId": 0,
- "bookingState": 0,
- "iCalUid": "string"
}
This section of APIs provide the communication interface for information of bookable resource.
Response samples
- 200
{- "id": 0,
- "accessId": "string",
- "name": "string",
- "type": 0,
- "category": {
- "id": 0,
- "name": "string"
}, - "description": "string",
- "actualServiceItems": [
- {
- "id": 0,
- "name": "string"
}
], - "floor": {
- "id": 0,
- "name": "string",
- "building": {
- "id": 0,
- "name": "string"
}
}, - "capacity": 0,
- "isDeleted": true
}
Search bookable resources by pagination
query Parameters
id | string Bookable resource ids specified, e.g. 1,2,3 |
type | string Bookable resource type, accept multiple separate by ',' , e.g. room,desk,equipment |
categoryId | string Bookable resource category, accept multiple separate by ',' ,e.g. 1,2,3 |
accessId | string Bookable resource accessIds specified e.g. Room101,Desk101 |
searchText | string Search by the bookable resource name |
floorId | string Search by the floor id e.g. 1,2,3 or null |
minCapacity | integer <int32> Search where the capacity are larger than the value provided |
maxCapacity | integer <int32> Search where the capacity are less than the value provided |
page | integer <int32> Pages of request. If this is not provided, will return first page |
row | integer <int32> Number of rows for each page. If this is not provided, default value will be 50. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "accessId": "string",
- "name": "string",
- "type": 0,
- "category": {
- "id": 0,
- "name": "string"
}, - "description": "string",
- "actualServiceItems": [
- {
- "id": 0,
- "name": "string"
}
], - "floor": {
- "id": 0,
- "name": "string",
- "building": {
- "id": 0,
- "name": "string"
}
}, - "capacity": 0,
- "isDeleted": true
}
], - "metaData": {
- "total": 0,
- "row": 0,
- "page": 0
}
}
Subscribe resource appointment change
Subscribe any booking change on the booking resource
Request Body schema:
Specify the ID of Bookable resource. e.g. 1,2,3
ids required | string non-empty Specify the ID to subscribe |
callbackUrl required | string non-empty The url that will call back when there are any update from system |
expireTime required | integer <int32> Expire time in minutes. Default value is 60, maximum value is 1440 (1day) |
Responses
Request samples
- Payload
{- "ids": "1,2,3",
- "callbackUrl": "string",
- "expireTime": 0
}
Response samples
- 200
"string"
This section of APIs provide the communication interface for information of bookable resource.
Search bookable resources by pagination
query Parameters
id | string Bookable resource ids specified, e.g. 1,2,3 |
Responses
Response samples
- 200
[- {
- "status": 0,
- "suggestColor": 0,
- "bookableResource": {
- "id": 0,
- "name": "string",
- "type": 0,
- "capacity": 0,
- "amenities": [
- {
- "id": 0,
- "name": "string"
}
]
}, - "currentAppointment": {
- "id": "string",
- "subject": "string",
- "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "organizerDisplayName": "string"
}, - "nextAppointment": {
- "id": "string",
- "subject": "string",
- "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "organizerDisplayName": "string"
}, - "statusWording": "string",
- "upcomingAppointments": [
- {
- "id": "string",
- "subject": "string",
- "period": {
- "start": "2021-10-11T11:00:00+08:00",
- "end": "2021-10-11T14:00:00+08:00"
}, - "organizerDisplayName": "string"
}
]
}
]
Subscribe resource appointment change
Subscribe any booking change on the booking resource
Request Body schema:
Specify the ID of Bookable resource. e.g. 1,2,3
ids required | string non-empty Specify the ID to subscribe |
callbackUrl required | string non-empty The url that will call back when there are any update from system |
expireTime required | integer <int32> Expire time in minutes. Default value is 60, maximum value is 1440 (1day) |
Responses
Request samples
- Payload
{- "ids": "1,2,3",
- "callbackUrl": "string",
- "expireTime": 0
}
Response samples
- 200
"string"
This section of APIs provide the communication interface for information of bookable resource.
Search bookable resources by pagination
query Parameters
bookableResourceId | string Bookable resource ids specified, e.g. 1,2,3 |
type | string Specify the type e.g. oneTime,static,daily |
Responses
Response samples
- 200
[- {
- "type": 0,
- "bookableResource": {
- "id": 0
}, - "accessUrl": "string"
}
]
Subscribe resource appointment change
Subscribe daily access key change on the booking resource
Request Body schema:
Specify the ID of Bookable resource. e.g. 1,2,3
ids required | string non-empty Specify the ID to subscribe |
callbackUrl required | string non-empty The url that will call back when there are any update from system |
expireTime required | integer <int32> Expire time in minutes. Default value is 60, maximum value is 1440 (1day) |
Responses
Request samples
- Payload
{- "ids": "1,2,3",
- "callbackUrl": "string",
- "expireTime": 0
}
Response samples
- 200
"string"
Subscribe resource appointment change
Subscribe daily access key change on the booking resource
Request Body schema:
Specify the ID of Bookable resource. e.g. 1,2,3
ids required | string non-empty Specify the ID to subscribe |
callbackUrl required | string non-empty The url that will call back when there are any update from system |
expireTime required | integer <int32> Expire time in minutes. Default value is 60, maximum value is 1440 (1day) |
Responses
Request samples
- Payload
{- "ids": "1,2,3",
- "callbackUrl": "string",
- "expireTime": 0
}
Response samples
- 200
"string"
Search booking usage group by bookable resource
query Parameters
bookableResourceId | string bookable resource ids specified, e.g. 1,2,3 |
floorId | string floor ids specified, e.g. 1,2,3 |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
Responses
Response samples
- 200
[- {
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "usageCount": 0,
- "usedTimeInMinutes": 0.1,
- "usedTimeInPercentage": 0.1
}
]
Search occupancy data group by bookable resource
query Parameters
bookableResourceId | string bookable resource ids specified, e.g. 1,2,3 |
floorId | string floor ids specified, e.g. 1,2,3 |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
Responses
Response samples
- 200
[- {
- "bookableResource": {
- "id": 0,
- "name": "string"
}, - "usageCount": 0,
- "usedTimeInMinutes": 0.1,
- "usedTimeInPercentage": 0.1
}
]
Search booking usage group by time
query Parameters
bookableResourceId | string bookable resource ids specified, e.g. 1,2,3 |
floorId | string floor ids specified, e.g. 1,2,3 |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
groupPeriodBy | string Specify group data by: FiveMinutes,FifteenMinutes,Hourly,Daily,Weekly,Monthly,HalfHour, default is Daily |
Responses
Response samples
- 200
[- {
- "dateTime": "2019-08-24T14:15:22Z",
- "usageCount": 0,
- "usedTimeInMinutes": 0.1,
- "usedTimeInPercentage": 0.1
}
]
Search booking usage group by time
query Parameters
bookableResourceId | string bookable resource ids specified, e.g. 1,2,3 |
floorId | string floor ids specified, e.g. 1,2,3 |
from | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
to | string Specify the start time to search resource appointment, accept ISO 8601 (2015-01-01T08:00:00+08:00) or string 'now' |
groupPeriodBy | string Specify group data by: FiveMinutes,FifteenMinutes,Hourly,Daily,Weekly,Monthly,HalfHour, default is Daily |
Responses
Response samples
- 200
[- {
- "dateTime": "2019-08-24T14:15:22Z",
- "usageCount": 0,
- "usedTimeInMinutes": 0.1,
- "usedTimeInPercentage": 0.1
}
]