Guestroom Block Tutorial

Let's get started

If you are looking to build a solution to update Guestroom Block in S&C system, then you have come to the right place.

Primary workflow you need to develop is to get OAuth 2.0 token from AHWS via the Authentication API and send Guestroom Block updates to Guestroom Block API. Once you send updates to Guestroom Block API, the integration will process your request asynchronously and generate the result notification(s) for you.

Second workflow you need to develop is to poll for generated result notification from Amadeus Hospitality Event Notification Service (AHENS) via the Notification Receive API.

Final workflow you need to develop is to commit result notification by calling Notification Commit API once you complete processing of received result notification. If the vendor system does not send a commit, then according to the retry settings, AHENS will make the result notification reappear in its result notification queue. When the Vendor application next calls the Notification Receive API, the result notification that was not committed will be sent again.

How it works

During initial set up with Amadeus Hospitality Web Services (AHWS), you must be registered as a Publisher & Subscriber in Amadeus Hospitality Event Notification Services (AHENS) to send Guestroom Block updates and to poll for generated result notification messages.

Once you are registered with AHENS, next step is to get a subscription for the "Guestroom Block" product.

This subscription will allow you to make calls to any of the Guestroom Block APIs.

High Level Workflow

The Guestroom Block APIs are designed to support the following workflow:

  1. You call Amadeus Hospitality Authentication API to request an authentication token.
  2. Using the authentication token received, you call the Guestroom Block Patch API with Guestroom Block data updates. You will receive a synchronous response indicating whether the payload was accepted for processing or not.
  3. This request will be validated and processed asynchronously. Once request is processed, a result notification will be generated.
  4. You can poll for result notifications by using the Notification API.
  5. Once notifications have been processed and persisted on your end, you will need to commit the result using the Commit API.
  6. Activity can be created in AS&EM - Advanced through Activity API. You can specify if the activity should be acted upon by the Booking Sales Manager, Booking Owner or the Default Lead Coordinator.

Product Flow Diagram:

AHWS Authentication

AHWS provides an authentication service which allows vendors to access all the other APIs. This document outlines the steps a client application would use to interact with all APIs in AHWS. You call Amadeus Hospitality authentication API to get authentication token.

 

Authenticating in for the first time

To start, you will need to authenticate with AHWS to receive an access token and a refresh token. An application needs the following items in order to interact with the authentication API:

  • client_id - Provided by Amadeus Hospitality
  • client_secret - Provided by Amadeus Hospitality
  • password - This is the password of the Amadeus Hospitality User Not your API Management password
  • username - This is the username of the Amadeus Hospitality User Not your API Management username

In order to perform the client operations, there are up to three possible actions:

  1. Acquire an access token and a refresh token
  2. Call the service while presenting the access token
  3. Refresh the access token when it expires or becomes invalid

Acquire an access token and a refresh token

In order to acquire a token, you first have to call the Authentication API with a POST request. Amadeus Hospitality recommends always passing your subscription key as a header attribute in all calls made that require it.

Type: HTTP POST

Request URL

https://api.newmarketinc.com/2.0/OAuth2/AccessToken

Request header example

    Content-Type: application/json
    Ocp-Apim-Subscription-Key: [Your-Subscription-Key]
        

Request body example (JSON)

{                     
	"client_id": "[clientidvalue]",
	"client_secret": "[clientsecretvalue]",
	"grant_type": "password",
	"password": "[passwordvalue]",
	"username": "[usernamevalue]"
}
					

Response body example (JSON)

          
{
"access_token": "1cBZBtY4Nfcrx/PlVf+nmGgiUbZdMPLWM0g4Qh4r5y5KQOoVhshYRNihi4/ja6p+CZ2hNEih2t/YR7UL6pn7iw0QisRDZKD032dSzB70DKiOWREYX+hH+IRphp8E/Ip
DUhDVHr8acEj6TH0sPoHMQr7F06WTbzcCBjomrY8YOcBs1h9pdyFS9nYXb1RARxoicX24QjkRWfjfbXmJvaJ3Rg9kNVGAVIboZWDZ6n176MSazjM0WteAs5UdsmB70qB6HHmzbF5+jmoKcqQ
1UHpjLfqxUvcOO3HyIz71tR04gldO3/e1mfOMSPTeesoAXU3quYcjcGeY2s+gf5jlURnZWosB4xyPtacXwEV0bdL+3ppi+iQRFhiDK0cvbdo/DgkwRzJm0KfJWl31WL9EsHYe2I0jv3xMByo
oIco7LH6DKsYRqW7RAXA5bZX4pFf+aVRCgV6vjXWg5WIUbnAOZnzpPUtMSJIKnEVal63e8+UHS4R9ToEI1bm7wNPxgk9O1Bf4Cw8DlsuQWTuhhXg/mVMeIMZuWlQBUkU3nZYZWtSGCZ+CRIS
BMySgFIMadxF/AVJd9Xo0uy9nck20tlBQRuprssxPd9VZI5GPOCOQkgBTOZGNdanAdVt9emZYYANnYRt5",
"expires_in": 900,
"refresh_token": "GXwOwRlXc54zVafcV8NyscDS1AvIUTHBifQwv8TDZsX3mEq1hEKjoWegwgErlhnJftoTA+FrBwb70Am07kQzD572h+mAbN\/XTMu\/eVHtQ4vwQhp7fkPwyCitAVhMs
GviQjfV4Y8AiQGIAVXPhvBVXzX7RLEds64jtBdGriNbG9twFUFfLIuBEYZuspTs3AIeUrhVjQzP8f5kYMKtir+XH4+ogrdDIMQ4u8YXuc91oseH77tS+8s0qRclDJeGVcysSR2n3gxI6TvsHW
DRI\/AEJ\/Haq\/XE5eoS1QxpDkk+kn5ciAOGd2BY58pgJnd5LwSb\/N1uFEj\/1pB4J5F1oxUt5Ruq68w\/qvVGdWorPyngKyPNKe4DjZ++SyJFbQqN75as6NCEUjdzpU\/7zyXXD5+57Okh
JFAaliraXfAz2jzUD4PW3yeEtQuIIOwL8kmjcsIm10OGfWuvl+6nLo6gg4wF+sY4MWct0Jt\/J6Mog65W4bSed8q5r2QLNrOClEJp+pwAEh9qkbtvDgVTfTJzhDrDvr0U7dyqdQEYqo4lmqGR
BJIC7QhCYN31tbYsJAVAp+UM+0G4bKY6FxlIrB7mKg\/Zm+RvUx4cBVlyuw1UtWzxV3DEwHP4pAoLFEzs6CWkgFECx8a3\/ETd86ivlMcM15Wy0mm9uXoW6Qcr3Y5hrmho\/BU9SKk2Fyq0fY
8r0hhiCGl55TU6rF8yLAEEvIdxSsHEiLynywGUhD6xAhyKYKyzk5wbp\/XzE8eneezEFWuRmUJJ",
"token_type": "bearer"
}
				

The JSON payload in the response body contains 4 elements:

  • access_token – the access token value
  • expires_in – the number of seconds until the token expires
  • token_type – this will always be “bearer”
  • refresh_token – the refresh token value

From the JSON payload, extract the access_token and refresh_token values to use with your requests to the secured service. If you are caching the token for multiple calls, use the expires_in value as the cache expiration.

Call the service while presenting the token

In order to call the service with the token, extract the access_token value from the response and pass it in the Authorization header in your request to the secured service like this OAuth [access_token].

Request header sample


    Content-Type: application/json
    Ocp-Apim-Subscription-Key: [Your-Subscription-Key]
	Authorization: OAuth 1cBZBtY4Nfcrx/PlVf+nmGgiUbZdMPLWM0g4Qh4r5y5KQOoVhshYRNihi4/ja6p+CZ2hNEih2t/YR7UL6pn7iw0QisRDZKD032dSzB70DKiOWREYX+
	hH+IRphp8E/IpDUhDVHr8acEj6TH0sPoHMQr7F06WTbzcCBjomrY8YOcBs1h9pdyFS9n
	YXb1RARxoicX24QjkRWfjfbXmJvaJ3Rg9kNVGAVIboZWDZ6n176MSazjM0WteAs5UdsmB70qB6HHmzbF5+jmoKcqQ1UHpjLfqxUvcOO3HyIz71tR04gldO3/e1mfOMSP
	TeesoAXU3quYcjcGeY2s+gf5jlURnZWosB4xyPtacXwEV0bdL+3ppi+iQRFhiDK0cvbdo/DgkwRz
	Jm0KfJWl31WL9EsHYe2I0jv3xMByooIco7LH6DKsYRqW7RAXA5bZX4pFf+aVRCgV6vjXWg5WIUbnAOZnzpPUtMSJIKnEVal63e8+UHS4R9ToEI
	1bm7wNPxgk9O1Bf4Cw8DlsuQWTuhhXg/mVMeIMZuWlQBUkU3nZYZWtSGCZ
	+CRISBMySgFIMadxF/AVJd9Xo0uy9nck20tlBQRuprssxPd9VZI5GPOCOQkgBTOZGNdanAdVt9emZYYANnYRt5
					

This header should be coupled with a body that meets the requirements of that API you are accessing. With this header, AHWS will allow you access to the products you subscribe to. This access token will expire after the expires_in timeframe is exceeded. At this point you will receive a 403 - Forbidden response from AHWS and will be required to retrieve a new access token.

Http Authorization Headers are an industry standard and adhere to the following format:

Authorization: [type] [credential]

Note that in the header we are specifying an Authorization Type of OAuth and our credential in this case is the access_token from the response payload.

If the refresh token is invalid or expired, you will receive a 403 - Forbidden. In this case, you need to present your full credentials again.

Guestroom Block API

Summary

Guestroom Block API provides Patch API to update room quantity & rate on existing Guestroom Block in S&C system. This API can be called by using the AHWS Authentication token retrieved from the Authentication API

API Contracts

PATCH API

Request

Request URL

Please refer Guestroom Block API page for more details.

Request Headers

Content-Type* String Media type of the body sent to the API. It should be "application/json" or "application/json-patch+json" for this PATCH request.
Ocp-Apim-Subscription-Key String Subscription key which provides access to this API.
Authorization* String OAuth 2.0 access token obtained from Authentication API.
Ama-CorrelationId* String (Optional) Unique correlationId is used to track entire PATCH request and to poll & commit its result notifications.

Request Body

Guestroom Block Patch request should contain only required fields which need to be updated in S&C system.

Following fields are required for each Patch API call:

  • LocationId
  • BookingId
  • StartDate
  • EndDate
  • RecordStatus

Following is a sample request body:

{
	"RecordStatus": "Active",
	"BookingId": {"Id": "a0L6F00001GI37V"},
	"LocationId": {"Id": "a186F000004IAa5QAG"},
	"StartDate": "2019-04-12",
	"EndDate": "2019-04-17",
	"GroupCode": "SRP-Code",
	"GuestRoomNights":[
	{
		"RecordStatus": "Active",
		"LocationId": {"Id": "a186F000004IAa5QAG"},
		"GuestRoomBlockId": {"Id": "a0H6F00000UUaXcUAL"},
		"PatternDate": "2019-04-12",
		"GuestRoomAbbreviation": "ROH",
		"Quantity": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Quantity":10
		}				
		],
		"Rate": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Rate":500.50
		}
		]
	},
	{
		"RecordStatus": "Active",
		"LocationId": {"Id": "a186F000004IAa5QAG"},
		"GuestRoomBlockId": {"Id": "a0H6F00000UUaXcUAL"},
		"PatternDate": "2019-04-13",
		"GuestRoomAbbreviation": "ROH",
		"Quantity": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Quantity":10
		}
		],
		"Rate": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Rate": null
		}
		]
	},
	{
		"RecordStatus": "Active",
		"LocationId": {"Id": "a186F000004IAa5QAG"},
		"GuestRoomBlockId": {"Id": "a0H6F00000UUaXcUAL"},
		"PatternDate": "2019-04-14",
		"GuestRoomAbbreviation": "ROH",
		"Quantity": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Quantity": null
		}
		],
		"Rate": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Rate":500.50
		}
		]
	},
	{
		"RecordStatus": "Active",
		"LocationId": {"Id": "a186F000004IAa5QAG"},
		"GuestRoomBlockId": {"Id": "a0H6F00000UUaXcUAL"},
		"PatternDate": "2019-04-15",
		"GuestRoomAbbreviation": "ROH",
		"Quantity": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Quantity": 0
		}
		],
		"Rate": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Rate":500.50
		}
		]
	},
	{
		"RecordStatus": "Active",
		"LocationId": {"Id": "a186F000004IAa5QAG"},
		"GuestRoomBlockId": {"Id": "a0H6F00000UUaXcUAL"},
		"PatternDate": "2019-04-16",
		"GuestRoomAbbreviation": "ROH",
		"Quantity": [
		{
			"GuestRoomBlockDataType": "Pickup",
			"GuestRoomOccupancyType": "Single",
			"Quantity": 10
		}
		],
		"Rate": null
	}
	]
} 

Response

  1. 202 Accepted

    Accepted

    Response Header

    Ama-CorrelationId String Same CorrelationId that you have sent in request header in "Ama-CorrelationId" parameter.
    If a correlation Id was not supplied in the request header, AHENS will generate a new correlation Id to track this request

    Response Body

    						
    {
      "correlationId": "a92027d6-a6ea-4729-9b89-4065d9c095ef"
    }
    

Rest of the responses can be found in "Errors & Troubleshooting" section

Legacy Activity API

Summary

Legacy Activity API allows you to create an activity in “Amadeus Sales & Event Management – Advanced”.

Activities are simple reminders that notify the user when they are logged into the application. The activity contains a few important details such as:

  • Location Id - This is AS&EM - Advanced location Id to which requested user is associated to.
  • Assigned To - This is AS&EM - Advanced Id of user being assigned the task.
  • Subject - A brief description of the Activity (i.e. "Your booking report is ready", Call cus-tomer", "Confirm booking", etc)
  • Status - This should always be "Not Started".
  • Priority - This is the priority level of the task ("Low", "Medium", "High").
  • Related To - This is the Id of the entity the activity is associated to. For example, if the activity is a notification that Guestroom Block cannot be updated, you could provide AS&EM - Advanced booking Id here.

Here is an example of what a task may look like: example of what a task may look like

Where to find User Ids?

In order to keep your personal information secure user information is not made directly available. There are number of fields on the associated resources that are AS&EM - Advanced user Ids.

User Id Fields

  • Booking Service Manager - The Booking Service Manager for this business.
  • Booking Owner (If Service Manager is not available/Inactive) - The Booking Owner for this business.
  • Property's Default Lead Coordinator (If both Service Manager/Booking Owner are not available/inactive) - The Default Lead Coordinator for this business.

Notifications

Summary

Once your Guestroom Block Patch request is processed, a result notification will be generated by Guestroom Block API. You can poll for this result notification through Amadeus Hospitality Event Notification Services (AHENS) Notification Receive API.

High Level Work Flow

A typical workflow for receiving result notifications from AHENS is given below:

  • Call Notification Receive API to retrieve result notification generated by Guestroom Block API.
  • Once you have successfully received and processed result notification, make a call to Notification Commit API to inform AHENS that the received Notifications have been processed.
  • See Notification Restaging below for details on Notification restaging.

EntityType

Endpoint

Summary

Notification ahens/notification/receive

A call to the Notification Receive API returns a list of result notifications to the caller. The result will return empty if there are no result available.

Notification ahens/notification/commit

The Commit method is called with a collection of NotificationIds. These are Notification identifiers present in Notifications received by the subscriber system.

Receiving Result Notification

To receive result notification, call Notification Receive API and you will be given a list of Notifications available for you.

Here are the details on this API:

API: Notification Receive

Type: POST

Request URL

https://api.newmarketinc.com/api/AHENS/Notification/Receive

Request Body

The body of the request must be in a valid format acceptable by AHENS.

resourceType* String ResourceType is the only parameter which is mandatory. You have to send it as "Result" to get Guestroom Block API related result notifications.
limit Integer limit is an optional parameter in case you want to limit number of result notifications to be received.
correlationId String CorrelationId is an optional parameter for you to uniquely identify the request. If CorrelationId is not provided in the request, AHENS will assign a unique identifier and return the same in the HTTP response header.
NOTE: This correlationId is different from the Notification’s correlationId.

In case there are more than 5000 result notifications available to the caller, a maximum of 5000 Notifications will be returned at each call. A continuation token will be made available in the response header for retrieval of the remaining Notification batches. The mentioned token can be provided in the request body as a field.

[
  {
    "resourceType": "Result",
    "limit": 100,
    "correlationId": "6f508869-5d35-4f45-b735-b73e1cb50c39"
  }
]

Response

A call to the Notification Receive API returns a list of available Notifications to the caller. The result will return empty if there are no updates available. Below you may find a sample response to the mentioned API.

[
  {
    "id": "5cc823e6583b4102c0263328",
    "eventId": "5cc823e6583b4102c0263327",
    "pubSubMapId": "2586544_999195_GuestRoomBlock_2548585_0_GuestRoomBlock_Get",
    "eventDetail": {
	  "resourceId": "RoomblockID",
	  "resourceType": "Result",
	  "locationId": "92e7a75csdfl23904d",
	  "subject": "Guestroom Block Subject",
	  "eventData": {
	    "Data": {
	        "id": "a0H0o00000fLGf5EAG",
	        "href": "https://roomblock-global.amadeus-hospitality.com/v1/GuestRoomBlocks/a0H0o00000fLGf5EAG"
	    },
	    "Dictionaries": null,
	    "Errors": null,
	    "Included": null,
	    "Meta": null,
	    "Warnings": null,
	    "CorrelationId": null
	  },
	  "publishedOn": "2019-04-30T10:31:02.551Z"
    },
    "correlationId": "92e7a75c-decf-4ece-ae25-02922e8bbaee",
    "status": "Received",
    "lastStatusChangeOn": "2019-04-30T13:50:28.647Z",
    "lastSubscribedOn": "2019-04-30T13:50:28.647Z",
    "receivedCount": 2,
    "trackingId": "f4472a31-d342-46f8-a880-06c285c743e3",
    "createdOn": "2019-04-30T10:31:02.57Z",
    "modifiedOn": "2019-04-30T13:50:28.647Z",
    "updateId": "38302e8bbaee-ae25-4ece-decf-92e7a75c",
    "recordStatus": "Active"
  }
]
Notification Receive Diagram

Confirm that result notifications have been received and processed

When you have finished processing the result notifications, you’ll need to confirm this with AHENS, so that those notifications won’t be delivered to you second time. To do this you will need to commit the Notifications you received earlier. Simply post the Notifications you received back to the Notification Commit API to commit them, indicating that all processing is complete.

The commit request is treated as an explicit acknowledgment by the subscriber system that Notifications has been received successfully.

Commit Result Notification

API: Notification Commit

TYPE: HTTP POST

Request URL

https://api.newmarketinc.com/api/AHENS/Notification/Commit

Request Body

Notification commit request contains identifiers of notifications that are to be committed. These identifiers can be found in the notifications received by the subscriber.

{
  "notificationIds": [
    "string"
  ],
  "correlationId": "string"
}

The Commit method is called with a collection of NotificationIds. These are Notification identifiers present in Notifications received by the subscriber system. Collection of Notification identifiers (List required): Notification subscriber must supply a collection of Notifications identifiers.

Restage Notification

When the Recieve API method is called, the Notifications are put in the Received state. If after a period of time (configured during initial setup) these Notifications have not been Commited, these Notifications will be restaged to the New state, allowing them to be Received again. Only Notifications in the New state can be Received via Notification Receive API.

Each time a Notification is Received, the Notification ReceivedCount is incremented. If you Receive a Notification with a ReceivedCount greater than one, that Notification has gone through the restage workflow due to not being Committed before the Restage Check timer has expired.

If the ReceivedCount is incremented more than the maximum allowed (defaults to five), the Notification will be put in a Failed state. These Notifications can no longer be Received, and will no longer be processed in the Notification workflow. If you would like Receive your Failed Notifications, contact your Amadeus Partner Success representative and they will restage them for you.

Included APIs

What's Included

The following APIs are included in Guestroom Block Product

  1. Authentication
  2. Guestroom Block
  3. Activity
  4. Notification (AHENS)
  5. Guestroom Block Heartbeat
  6. Activity Heartbeat

You must be logged in with an active Azure API Management subscription to the Guestroom Block APIs.

What about Security?

Authorization is managed through an internal identifier called SystemId. All integrated Amadeus Sales & Event Management instances are assigned a unique SystemId which is used to isolate and secure data.

All Guestroom Block APIs require AHWS authentication. See the Authentication API section for details.

Heartbeat API

Guestroom Block Heartbeat API

You can check the availibility of the Guestroom Block API endpoints using this Heartbeat API. There are certain limits enforced on this API, e.g. you can only call this API certain times every minute. Please look at "Rate Limits" section for more information.

Request

Request URL

https://api.newmarketinc.com/api/GuestRoomBlockHeartbeatService/Heartbeat

Request Type: GET

Response

The response body will contain basic Heartbeat "Thump. Thump." along with UTC date and time information.

{
    "data": "Thump. Thump. 5/14/2019 1:45:32 PM +00:00",
    "correlationId": "a01b4847-5408-4bd7-8385-27af6e048a1e"
}
  

Activity Heartbeat API

You can check the availibility of the Activity API endpoints using this Heartbeat API. There are certain limits enforced on this API, e.g. you can only call this API certain times every minute. Please look at "Rate Limits" section for more information.

Request

Request URL

https://api.newmarketinc.com/api/ActivityHeartbeatService/Heartbeat

Request Type: GET

Response

The response body will contain basic Heartbeat "Thump. Thump." along with UTC date and time information.

"Thump. Thump. 5/14/2019 1:45:32 PM +00:00"
  

Rest of the responses can be found in "Errors & Troubleshooting" section.

Errors & Troubleshooting

When calling the Guestroom Block API, if the request is being made using the correct credentials and if the message passes the prerequisite schema validations you will receive HTTP 200 - OK / 202 - Accepted status codes in the synchronous response.

If anything goes wrong with the Guestroom Block API or the Activity API, you can inspect the Http Status Code and the request body to determine what failed and how to correct your API call.

HTTP Status Codes

Reason

202 Accepted - request has been accepted but the resource change has not been applied.
400 The request could not be understood. Please check the response for additional information.
401 The request did not include the correct authentication.
403 The server understood the request but is not able to fulfill because of insufficient permission.
404 The requested resource, i.e. Guestroom Block was not found.
405 The requested method is not allowed.
409 The request could not be completed due to a conflict with the current state of the target resource.
413 The requested payload sent is too large i.e. too many bytes.
422 There are validation failures with the payload. (ex. 'status' must not be empty). Please check response status for information identifying the field that caused the validation failure.
500 The server has encountered a problem, please try again.
503 The service is temporarily unavailable. If the length of the delay is known a Retry-After header is given. It is recommended that you delay for this interval before sending another request to the service. If no Retry-After is provided you should handle as a 500 error.

Troubleshoot Authentication API Call

The most common error status code you will get from the Authentication API is a 403 - Forbidden. The error property in the response body will tell you what was not accepted.

  • access_denied means you have an incorrect Username and Password pair. The user might not exist or the password provided was wrong.

  • unauthorized_client means there is incorrect information in the client_id and client_secret fields. Ensure you are using the correct values that you received from Amadeus Hospitality when you acquired your credentials.

You may also get a 405 - Method Not Allowed if you call OAuth endpoints with the GET verb instead of POST.

In the rare event you get a 500 or 503 status code, simply retry the action later.

For more information about OAuth refer to our Authentication API section.

General Troubleshooting

Most of the time Http 500 status codes are temporary, and normal service should return after a few seconds or minutes. You should retry a call in these instances.

Rate Limits and Usage Quotas

Rate Limits

Guestroom Block Heartbeat API

API calls to Guestroom Block Heartbeat API are limited to 4 calls every 60 seconds per subscription. If this limit is reached subsequent calls will be rejected with a status of 429 with the below response body:

{ 
    "statusCode": 429, 
    "message": "Rate limit is exceeded. Try again in {Remaining Seconds} seconds." 
}
            

Activity Heartbeat API

API calls to Activity Heartbeat API are limited to 4 calls every 60 seconds per subscription. If this limit is reached subsequent calls will be rejected with a status of 429 with the below response body:

{ 
    "statusCode": 429, 
    "message": "Rate limit is exceeded. Try again in {Remaining Seconds} seconds." 
}
            

Guestroom Block API

Limitations for this API are yet to be decided. Once decided, limits will be updated on this page for your reference.