Guestmeter API
Guestmeter API enables users and partners to send SMS or Email Survey to recent guests, encouraging a review of their experiences.
To use this API, you need to get an apiKey and secretKey. Please sign up or login to Guestmeter. To get your own API key, go to Channels > Integration page. If you did not find your API key or request a test apiKey and secretKey, please contact us at support@guestmeter.com.
Authentication
HTTP Header Sample apiKey: "71e8b143-44a4-4acc-be14-2bef282dbaed" secretKey: "112fb4af-fd26-4427-a8a2-1da22a64d095"
All requests must contain 2 mandatory HTTP Header
parameter for authentication. These keys are apiKey
and secretKey
for authorization and authentication.
Test Property Data: You can request a test apiKey and secretKey special for you. To facilitate testing, there are major differences between the test and production keys. Calls with the test apiKey and secretKey will not generate an actual SMS or Email to a guest.
Send Survey
Used to send guest satisfaction survey via SMS or Email. Must be a POST request with a JSON-formatted list of the following parameters as the request body. The ID of the created request(s) will be returned after a successful call - see Response below. You need to make a POST call to the following url :
https://www.guestmeter.com/api/sendSurvey
# Here is a curl example curl \ -X POST https://www.guestmeter.com/api/sendSurvey \ -F 'guestEmail=test@test.com' \ -F 'guestName=test test' \ -F 'roomNumber=101' \ -F 'languageCode=en'
EXAMPLE EMAIL SURVEY REQUEST : https://www.guestmeter.com/api/sendSurvey?guestEmail=test@test.com&guestName=test&roomNumber=101&languageCode=en EXAMPLE SMS SURVEY REQUEST : https://www.guestmeter.com/api/sendSurvey?guestPhone=+134234234234&guestName=test&languageCode=en EXAMPLE SUCCESS RESPONSE : { "statusList": [ { "status": "SUCCESS", "statusCode": "guestID:4b0da1ba-fd20-4b67-9b3c-6dfe8c7c220d", "statusMessage": "Guest satisfaction survey will be sent to test@test.com at 24.03.2020. Monthly SMS & Email usage: 11/5000 (XLARGE Plan)" } ] } EXAMPLE FAILED RESPONSE : { "statusList": [ { "status": "ERROR", "statusCode": "BUS0003", "statusMessage": "A guest satisfaction survey already been sent to test@test.com in last 30 days! You're allowed to send only 1 survey in one month per guest" } ] }
REQUEST PARAMETERS
Field | Type | Description |
---|---|---|
guestEmail | String | Guest email address. |
guestPhone | String | Guest mobile number. |
guestName | String | Guest full name |
roomNumber | String | Guest room number or table number |
integrationID | String | Reference integration value of guest in client system. Ex: customerID... |
primarySendMethod | String | (optional) Possible values: "email" or "sms". Default is "sms". If both guestEmail and guestPhone parameters exist you can choose the primary survey send method. |
languageCode | String | (optional) You can set survey language. 2 character language codes, ex: "en", "es", "fr", "de", "tr"... |
checkoutDate | Date | (optional) You can send survey after guest checkout date. Date format: "DD.MM.YYYY" or "DD-MM-YYYY" |
RESPONSE PARAMETERS
Field | Type | Description |
---|---|---|
status | String | Status of your request. Values: "SUCCESS" or "ERROR" |
statusCode | String | If status="SUCCESS" you can get guestID in this parameter. If status="ERROR" you can find error code. |
statusMessage | String | Status code description. |
Get Guest
Used to get guest and rating details by guestID parameter. Must be a GET request with a JSON-formatted list of the following parameters as the request body. You need to make a GET call to the following url :
https://www.guestmeter.com/api/getGuest
# Here is a curl example curl \ -X POST https://www.guestmeter.com/api/getGuest \ -F 'guestID=4b0da1ba-fd20-4b67-9b3c-6dfe8c7c220d'
EXAMPLE REQUEST : https://www.guestmeter.com/api/getGuest?guestID=9d77b4cc-cdaa-4768-9aa9-94a0d772f222 EXAMPLE RESPONSE : [ { "guestID": "9d77b4cc-cdaa-4768-9aa9-94a0d772f222", "guestName": "", "roomNumber": "101", "contactInfo": "+905324681111", "contactType": "sms", "countryCode": "tr", "integrationID": "", "propertyName": "Pera Palace Hotel İstanbul", "rating": "6", "ratingType": "detractors", "feedback": "its not a good hotel", "mainChannel": "DASHBOARD", "status": "SENT", "statusDetail": "", "languageCode": "en", "sentDate": "06.03.2020 00:35:00", "clickedDate": "06.03.2020 00:36:00", "ratedDate": "06.03.2020 00:36:00", "creationDate": "06.03.2020 00:35:00" } ]
REQUEST PARAMETERS
Field | Type | Description |
---|---|---|
guestID | String | Guest ID number in uuid format. Ex: 9d77b4cc-cdaa-4768-9aa9-94a0d772f222 |
RESPONSE PARAMETERS
Field | Type | Description |
---|---|---|
guestID | String | Same guestID number in your request. |
contactType | String | Guest contact and survey send method. Values: "sms" or "email". |
contactInfo | String | If contactType="SMS" value is guest mobile number. If contactType="email" value is guest email address. |
guestName | String | Guest full name. |
roomNumber | String | Guest room number or table number |
integrationID | String | Reference integration value of guest in client system. Ex: customerID... |
rating | String | Rating value sent by guest. If ratedDate is not empty you can check this field. |
feedback | String | Guest feedback message sent with rating. If ratedDate is not empty you can check this field. |
ratingType | String | NPS rating type, possibe values= "detractors", "passives", "promoters". If rating value is between 1-6 value "detractors", between "7-8" value "passives" or between "9-10" value "promoters". If ratedDate is not empty you can check this field. |
propertyName | String | Name of your property. |
propertyName | String | Name of your property. |
languageCode | String | Survey language that guest show. 2 character language code, Ex: "en", "es", "fr", "de", "tr"... |
countryCode | String | Detected country code of guest. 2 character country code, Ex: "us", "es", "fr", "de", "tr"... |
maiChannel | String | Guest added on this channel. Possible values= "DASHBOARD", "INTEGRATION", "QRCODE", "KIOSK" |
status | String | Survey delivery status. Possible values= "SENT", "FAILED", "PLANNED", "QUEUED" |
statusMessage | String | Survey delivery status description. If status="FAILED" check this field. |
sentDate | DateTime | Survey sent date. |
clickedDate | DateTime | Survey clicked date. |
ratedDate | DateTime | Survey rated date. |
creationDate | DateTime | Guest creation date. |
Get Guest List
Used to get guest list of your property. There is no request parameters for this method. Must be a GET request with a JSON-formatted list of the following parameters as the request body. You need to make a GET call to the following url :
https://www.guestmeter.com/api/getGuestList
# Here is a curl example curl \ -X POST https://www.guestmeter.com/api/getGuestList
EXAMPLE REQUEST : https://www.guestmeter.com/api/getGuestList EXAMPLE RESPONSE : [ { "guestID": "d426a1e3-7dd3-55e1-b061-46123fb0b06e", "guestName": "test", "contactInfo": "+1342342342", "contactType": "sms", "countryCode": "", "propertyName": "Pera Palace Hotel İstanbul", "rating": "", "ratingType": "", "feedback": "", "mainChannel": "INTEGRATION", "status": "PLANNED", "statusDetail": "", "languageCode": "en", "sentDate": "14.04.2020 19:10:00", "clickedDate": "", "ratedDate": "", "creationDate": "14.04.2020 19:10:00" }, { "guestID": "4b0da1ba-fd20-4b67-9b3c-6dfe8c72210d", "guestName": "test name", "contactInfo": "test@test.com", "contactType": "email", "countryCode": "", "propertyName": "Pera Palace Hotel İstanbul", "rating": "", "ratingType": "", "feedback": "", "mainChannel": "INTEGRATION", "status": "PLANNED", "statusDetail": "", "languageCode": "es", "sentDate": "14.04.2020 19:16:00", "clickedDate": "", "ratedDate": "", "creationDate": "14.04.2020 19:16:00" }, { "guestID": "11cc872c-124a-49af-ba41-7124a878c895", "guestName": "test 4", "roomNumber": "101", "contactInfo": "test3@test.com", "contactType": "email", "countryCode": "", "integrationID": "", "propertyName": "Pera Palace Hotel İstanbul", "rating": "", "ratingType": "", "feedback": "", "mainChannel": "INTEGRATION", "status": "PLANNED", "statusDetail": "", "languageCode": "es", "sentDate": "14.04.2020 19:25:00", "clickedDate": "", "ratedDate": "", "creationDate": "14.04.2020 19:25:00" } ]
REQUEST PARAMETERS
Field | Type | Description | ||
---|---|---|---|---|
No request parameter for this method | String | Your API key. |
RESPONSE PARAMETERS
Field | Type | Description |
---|---|---|
guestID | String | Same guestID number in your request. |
contactType | String | Guest contact and survey send method. Values: "sms" or "email". |
contactInfo | String | If contactType="SMS" value is guest mobile number. If contactType="email" value is guest email address. |
guestName | String | Guest full name. |
roomNumber | String | Guest room number or table number |
integrationID | String | Reference integration value of guest in client system. Ex: customerID... |
rating | String | Rating value sent by guest. If ratedDate is not empty you can check this field. |
feedback | String | Guest feedback message sent with rating. If ratedDate is not empty you can check this field. |
ratingType | String | NPS rating type, possibe values= "detractors", "passives", "promoters". If rating value is between 1-6 value "detractors", between "7-8" value "passives" or between "9-10" value "promoters". If ratedDate is not empty you can check this field. |
propertyName | String | Name of your property. |
propertyName | String | Name of your property. |
languageCode | String | Survey language that guest show. 2 character language code, Ex: "en", "es", "fr", "de", "tr"... |
countryCode | String | Detected country code of guest. 2 character country code, Ex: "us", "es", "fr", "de", "tr"... |
maiChannel | String | Guest added on this channel. Possible values= "DASHBOARD", "INTEGRATION", "QRCODE", "KIOSK" |
status | String | Survey delivery status. Possible values= "SENT", "FAILED", "PLANNED", "QUEUED" |
statusMessage | String | Survey delivery status description. If status="FAILED" check this field. |
sentDate | DateTime | Survey sent date. |
clickedDate | DateTime | Survey clicked date. |
ratedDate | DateTime | Survey rated date. |
creationDate | DateTime | Guest creation date. |
OTA_HotelResNotifRQ / OTA_HotelResNotifRS PUSH ENDPOINT
Every time a reservation / modification / cancellation is made, the entire reservation can be pushed from the booking source, such as Global Distribution System (GDS) or Central Reservation System (CRS) to the Guestmeter. Must be a POST request with a XML-formatted list of the following parameters as the request body. You need to make a POST call to the following url :
https://www.guestmeter.com/api/OTA_HotelResNotifRQ
# Here is a curl example
curl \
-X POST https://www.guestmeter.com/api/OTA_HotelResNotifRQ
Errors
The Guestmeter API uses the following error codes:
Error Code | Meaning |
---|---|
SYS0001 |
AUTHENTICATION: apiKey should not be empty! Check HTTP header authentication keys.
|
SYS0002 |
AUTHENTICATION: secretKey should not be empty! Check HTTP header authentication keys.
|
SYS0003 |
AUTHENTICATION: Wrong secretKey ! Check HTTP header authentication keys. Login to Guestmeter panel and swith to Channel > Integration from menu to get your secretKey.
|
SYS0004 |
AUTHENTICATION: Wrong apiKey ! Check HTTP header authentication keys. Login to Guestmeter panel and swith to Channel > Integration from menu to get your apiKey.
|
SYS0005 | Your trial end. Please select a plan to continue your service or ask OWNER team member! |
SYS0006 | Your subscription status is not Active now. Please check Subscription and Payments. |
SYS0008 | Undefined method! Check your method name. Possible values: "sendSurvey", "getGuest" and "getGuestList" |
SYS0011 | Request Type should be POST for this method! You may request with GET method. |
BUS0001 | Monthly SMS & Email survey limit exceeded for your plan! Please upgrade your plan or wait till next month. |
BUS0002 | A guest satisfaction survey already been sent to mobile number or email in last 30 days! You're allowed to send only 1 survey in one month per guest |
DATA0003 | Guest mobile number or email address should not be empty! |
DATA0002 | primarySendMethod must be 'email' or 'sms'! |
DATA0004 | Email address format is wrong! Ex: xxx@xxx.com. |
DATA0006 | Guest mobile number is not valid! |
DATA0021 | No guest exists! Please add some guest from panel or API. |
API FAQ
Frequently Asked Questions about Guestmeter API
Q: Which API key should I use?
A: To use this API, you need to get your apiKey and secretKey. Please sign up or login Guestmeter to get your own API key. Go to Channel > Integration page to get your keys. If you did not find your API key, please contact us at support@guestmeter.com.
Q: What is the test environment vs the production environment?
A: You can request a test apiKey and secretKey special for you. To facilitate testing, there are major differences between the test and production keys. Calls with the test apiKey and secretKey will not generate an actual SMS or Email to a guest. The single API environment uses https://www.guestmeter.com/api.
Q: I added a guest, the checkout date has passed but no sms or e-mail has been sent. Why?
A: This could happen for a number of reasons:
1- The SMS or Email recipient has submitted a review for this business within the past 90 days (for accommodations or attractions) or 30 days (for restaurants)
2- A Guestmeter SMS or Email was sent to this guest within the past 30 days
3- The SMS or Email recipient has unsubscribed from Guestmeter
<