{"swagger":"2.0","info":{"version":"v1","title":"Rentals United REST API","description":"Access to Guest Communication API is restricted. To enable this feature for your integration and receive a custom quote, please contact the Rentals United Sales Team or your Account Manager."},"host":"api.rentalsunited.com","schemes":["https"],"paths":{"/api/errors/possible-errors":{"get":{"tags":["Errors"],"summary":"Lists possible types of error objects","operationId":"Errors_GetPossibleErrors","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/ErrorDto"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/messages/sender-types":{"get":{"tags":["Messages"],"summary":"Lists the possible types of the sender in the context of the reservation","operationId":"Messages_GetMessageSenderTypes","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"type":"string"}},"examples":["Undefined","Host","Guest","Cohost"]}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/messages":{"get":{"tags":["Messages"],"summary":"Lists all messages associated with a given thread parent object","operationId":"Messages_GetMessages","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"parentType","in":"query","description":"The type of the parent object the threads containing the messages are attached to","required":true,"type":"string","enum":["RUReservation","PMSReservation","Contact"]},{"name":"parentId","in":"query","description":"The ID of the parent object the threads containing the messages are attached to","required":true,"type":"string"},{"name":"newerThan","in":"query","description":"The date and time limiting the number of returned messages in UTC, only messages newer than this date will be returned","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/Message"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/messages/{id}":{"get":{"tags":["Messages"],"summary":"Gets the message by its ID","operationId":"Messages_GetMessage","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the message","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/messages/{id}/mark-as-read":{"put":{"tags":["Messages"],"summary":"Marks message as read","operationId":"Messages_MarkAsRead","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the message","required":true,"type":"integer","format":"int32"}],"responses":{"204":{"description":"NoContent","schema":{"$ref":"#/definitions/Void"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/event-types":{"get":{"tags":["Notifications"],"summary":"Lists the possible types of events the notification can describe","operationId":"Notifications_GetNotificationEventTypes","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"type":"string"}},"examples":["NewMessage","NewThread","ReadMessage","ModifiedMessage"]}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/data-types":{"get":{"tags":["Notifications"],"summary":"Lists the possible data types of the notification data object","operationId":"Notifications_GetNotificationDataTypes","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"type":"string"}},"examples":["Thread","Message"]}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/subscribe":{"put":{"tags":["Notifications"],"summary":"Subscribes to live notifications about messaging events","description":"With this method you can subscribe to live notifications about messaging events.\r\n            You will be notified about new threads and each new message that appears in the thread.\r\n            <br />\r\n            Note that due to the size limits, the attached file will not be included in the message notification. \r\n            You will be only notified about the attachment added to the message. In order to get the attached content, use <a href=\"https://api.rentalsunited.com/swagger/ui/index#!/Messages/Messages_GetMessages\">GET /api/messaging/messages</a> method.","operationId":"Notifications_Subscribe","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"payload","in":"body","description":"Data for subscribing to messaging events","required":true,"schema":{"$ref":"#/definitions/SubscriptionPayload"}}],"responses":{"204":{"description":"NoContent","schema":{"$ref":"#/definitions/Void"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/unsubscribe":{"put":{"tags":["Notifications"],"summary":"Unsubscribes from live notifications about messaging events","operationId":"Notifications_Unsubscribe","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"204":{"description":"NoContent","schema":{"$ref":"#/definitions/Void"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/examples/new-thread":{"get":{"tags":["Notifications"],"summary":"An example notification about a new thread in messaging","operationId":"Notifications_GetExampleNewThreadNotification","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Notification[Thread]"},"examples":{"NotificationEventType":"NewThread","NotificationDataType":"Thread","Data":{"ID":1,"ParentType":"RUReservation","ParentID":1,"RecipientName":"John Smith","RecipientRole":"Guest","Preview":"Hey, are pets allowed in the apartment?","LastMessageDate":"2019-01-10T12:34:55","HasAttachment":true,"NumberOfUnreadMessages":1}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/examples/new-message":{"get":{"tags":["Notifications"],"summary":"An example notification about a new message in messaging","operationId":"Notifications_GetExampleNewMessageNotification","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Notification[Message]"},"examples":{"NotificationEventType":"NewMessage","NotificationDataType":"Message","Data":{"ID":1,"ThreadID":1,"Body":"Hey, are pets allowed in the apartment?","CreateDate":"2019-01-10T12:34:55","IsIncoming":true,"SenderType":"Guest","SenderName":"John Smith","SenderInitials":"JS","Attachments":[{"ID":1,"MessageID":1,"Name":"cute-dog","Extension":"png","Size":1048576}],"Receivers":[]}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/examples/read-message":{"get":{"tags":["Notifications"],"summary":"An example notification about a message being read in messaging","operationId":"Notifications_GetExampleReadMessageNotification","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Notification[Message]"},"examples":{"NotificationEventType":"ReadMessage","NotificationDataType":"Message","Data":{"ID":1,"ThreadID":1,"Body":"Hey, are pets allowed in the apartment?","CreateDate":"2019-01-10T12:34:55","IsIncoming":true,"ReadDate":"2019-01-16T18:00:21","SenderType":"Guest","SenderName":"John Smith","SenderInitials":"JS","Attachments":[{"ID":1,"MessageID":1,"Name":"cute-dog","Extension":"png","Size":1048576}],"Receivers":[]}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/notifications/examples/modified-message":{"get":{"tags":["Notifications"],"summary":"An example notification about a message being modified in messaging","operationId":"Notifications_GetExampleModifiedMessageNotification","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Notification[Message]"},"examples":{"NotificationEventType":"ModifiedMessage","NotificationDataType":"Message","Data":{"ID":1,"ThreadID":1,"Body":"Hey, are pets allowed in the apartment? [modified body]","CreateDate":"2019-01-10T12:34:55","IsIncoming":true,"SenderType":"Guest","SenderName":"John Smith","SenderInitials":"JS","Attachments":[{"ID":1,"MessageID":1,"Name":"cute-dog","Extension":"png","Size":1048576}],"Receivers":[]}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/examples/review-structures":{"get":{"tags":["Reviews"],"summary":"Lists examples of review structures in the body of a message by sales channel","operationId":"Reviews_GetExampleReviewStructures","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"reviewChannel","in":"query","description":"Sales channel provider","required":true,"type":"string","enum":["Airbnb","BookingCom","Vrbo","Expedia"]}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/ReviewMessageStructure"}},"examples":[{"ReviewMessageType":"VrboHostReply","Structure":"{\"type\":\"GuestReviewReply\",\"body\":\"Test reply\",\"status\":\"Approved\"}"}]}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/thread/{reservationId}":{"get":{"tags":["Reviews"],"summary":"Gets the review thread associated with a given reservation","description":"The Guest Review thread becomes available within a few hours after the reservation has ended, depending on the processing time of the sales channel.","operationId":"Reviews_GetReviewThread","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"reservationId","in":"path","description":"The ID of the reservation object the review thread is attached to","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Thread"},"examples":{"ID":0,"ParentType":"RUReservation","ParentID":0,"CommunicationChannel":"GuestReview","RecipientName":"string","RecipientRole":"Unknown","Preview":"string","LastMessageDate":"2024-01-10T12:34:55","HasAttachment":false,"NumberOfUnreadMessages":0,"Contacts":[{"ID":0,"FirstName":"string","LastName":"string"}]}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/thread/{id}/messages":{"get":{"tags":["Reviews"],"summary":"Lists all messages under a given review thread","operationId":"Reviews_GetReviewMessages","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the review thread","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/Message"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/airbnb/review-category-tags":{"get":{"tags":["Reviews"],"summary":"Retrieves the available review categories and their corresponding tags for Airbnb","description":"Tags used for additional review category details in Airbnb reviews. Each object in the collection contains a review category type along with the review tags applicable to that category.\r\n\r\nNote that tags Value is what you should be sending to Airbnb.","operationId":"Reviews_GetAirbnbReviewCategoryTags","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/ReviewCategory"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/airbnb/review":{"post":{"tags":["Reviews"],"summary":"Sends an Airbnb review under a specified thread","description":"An Airbnb review can be submitted within 14 days, after this period the review window expires. Reviews sent after this timeframe will not be accepted by Airbnb. Note that Airbnb reviews are double-blind. This means that the review's content will only be available to you after the review is published on Airbnb. Reviews are published on Airbnb under the following conditions:\r\n- Two reviews have been submitted.\r\n- One review has been submitted, and the review period has ended.\r\n\r\nYou can use ReviewCategoryTags for additional details on review categories. To obtain the review category along with the applicable review tags for that category, use the <a href=\"https://api.rentalsunited.com/swagger/ui/index#!/Reviews/Reviews_GetAirbnbReviewCategoryTags\">GET /api/reviews/airbnb/review-category-tags</a> method.","operationId":"Reviews_SendAirbnbReview","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"sendAirbnbReviewPayload","in":"body","description":"Data for sending an Airbnb review","required":true,"schema":{"$ref":"#/definitions/SendAirbnbReviewPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/airbnb/review-reply":{"post":{"tags":["Reviews"],"summary":"Sends a reply to an Airbnb review under a specified thread","description":"You have a 30-day window to submit a response to a guest's review.","operationId":"Reviews_SendAirbnbReviewReply","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"sendAirbnbReviewReplyPayload","in":"body","description":"Data for sending a reply","required":true,"schema":{"$ref":"#/definitions/SendAirbnbReviewReplyPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/bcom/review-reply":{"post":{"tags":["Reviews"],"summary":"Sends a reply to a Booking.com review under a specified thread","description":"The Booking.com review thread accepts up to two messages: 1 x guest review, 1 x host reply. It is always the guest who writes the review first and the host can only submit the reply. This order cannot be changed. In case the guest provides only the rating, it is not possible to reply to such a review. If you exchange all the messages that are available for this thread or the review period passes, the thread becomes unavailable and will not accept any more messages.","operationId":"Reviews_SendBComReviewReply","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"sendBComReviewReplyPayload","in":"body","description":"Data for sending a reply","required":true,"schema":{"$ref":"#/definitions/SendBComReviewReplyPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/vrbo/review-reply":{"post":{"tags":["Reviews"],"summary":"Sends a reply to a Vrbo review under a specified thread","description":"See details of the workflow and channel specifics <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814556645917\">here</a>.","operationId":"Reviews_SendVrboReviewReply","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"sendVrboReviewReplyPayload","in":"body","description":"Data for sending a reply","required":true,"schema":{"$ref":"#/definitions/SendVrboReviewReplyPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/vrbo/rate-guest":{"post":{"tags":["Reviews"],"summary":"Sends a Vrbo guest rating under a specified thread","description":"A Vrbo review can be submitted within 365 days after the checkout date. However, if the guest has submitted a review of their stay, you have 14 days to review the guest.\r\n\r\nSee details of the workflow and channel specifics <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814556645917\">here</a>.","operationId":"Reviews_SendVrboGuestRating","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"sendVrboGuestRatingPayload","in":"body","description":"Data for sending guest rating","required":true,"schema":{"$ref":"#/definitions/SendVrboGuestRatingPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/reviews/expedia/review-reply":{"post":{"tags":["Reviews"],"summary":"Sends a reply to Expedia review under a specified thread","operationId":"Reviews_SendExpediaReviewReply","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"sendExpediaReviewReplyPayload","in":"body","description":"Data for sending a reply","required":true,"schema":{"$ref":"#/definitions/SendExpediaReviewReplyPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/airbnb/specialOffers":{"get":{"tags":["SpecialOffers"],"summary":"Gets collection of special offers that are linked with specific Guest Communication thread","operationId":"SpecialOffers_GetSpecialOffers","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"parentType","in":"query","description":"The type of the parent object of the thread","required":true,"type":"string","enum":["RUReservation","PMSReservation","Contact"]},{"name":"parentId","in":"query","description":"The ID of the parent object of the thread","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/GetSpecialOfferResult"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]},"put":{"tags":["SpecialOffers"],"summary":"Withdraws a special offer","operationId":"SpecialOffers_WithdrawSpecialOffer","consumes":["application/json","text/json","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"specialOfferPayload","in":"body","required":true,"schema":{"$ref":"#/definitions/WithdrawSpecialOfferPayload"}}],"responses":{"204":{"description":"NoContent","schema":{"$ref":"#/definitions/Void"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]},"post":{"tags":["SpecialOffers"],"summary":"Creates special offer in RU and Airbnb","operationId":"SpecialOffers_PostSpecialOffer","consumes":["application/json","text/json","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"specialOfferPayload","in":"body","required":true,"schema":{"$ref":"#/definitions/PostSpecialOfferPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/PostSpecialOfferResult"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/parent-types":{"get":{"tags":["Threads"],"summary":"Lists the possible types of objects a thread can be attached to","operationId":"Threads_GetThreadParentTypes","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"type":"string"}},"examples":["RUReservation","PMSReservation","Contact"]}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/recipient-roles":{"get":{"tags":["Threads"],"summary":"Lists the possible roles of a recipient in the context of reservation","operationId":"Threads_GetThreadRecipientRoles","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"type":"string"}},"examples":["Unknown","SalesChannel","Guest"]}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads":{"get":{"tags":["Threads"],"summary":"Lists all threads associated with a given parent object","operationId":"Threads_GetThreads","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"parentType","in":"query","description":"The type of the parent object the threads are attached to","required":true,"type":"string","enum":["RUReservation","PMSReservation","Contact"]},{"name":"parentId","in":"query","description":"The ID of the parent object the threads are attached to","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/Thread"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]},"post":{"tags":["Threads"],"summary":"Creates an Email thread with a single recipient","description":"This method always creates an Email thread for the given recipient. A valid recipient e-mail address is required.","operationId":"Threads_CreateThread","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"payload","in":"body","description":"Data for creating a thread","required":true,"schema":{"$ref":"#/definitions/CreateThreadPayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Thread"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/latest":{"get":{"tags":["Threads"],"summary":"Retrieve latest threads:\r\nuse this method to retrieve threads that have messages created within the specified date and time, or empty threads that were created during this period.","description":"Recommended use: call this method every 5 minutes, with “newerThan” and “olderThan” defining a 10-minute window. Longer date ranges should be used only in case of synchronization outage or initial import. Threads with messages older than 24 hours won't be retrieved.","operationId":"Threads_GetLatestThreads","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"newerThan","in":"query","description":"Filters threads with messages created after specific date and time. The field accepts the timestamp from the last 24-hour range (from the current time in UTC). Only threads with messages newer than this timestamp will be returned. The date must follow the YYYY-MM-DD HH:MM:SS format.","required":true,"type":"string","format":"date-time"},{"name":"olderThan","in":"query","description":"(optional) - Filters threads with messages created before a specific date and time. If not provided, it defaults to the current UTC time. The field accepts the timestamp from the last 24-hour range (from the current time in UTC). The date must follow the YYYY-MM-DD HH:MM:SS format.","required":false,"type":"string","format":"date-time"},{"name":"isUnread","in":"query","description":"(optional) - Indicates whether to return only threads with unread messages. If not provided, it defaults to false.","required":false,"type":"boolean"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/LatestThread"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/{id}":{"get":{"tags":["Threads"],"summary":"Gets the thread by its ID","operationId":"Threads_GetThread","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the thread","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Thread"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/{id}/messages":{"get":{"tags":["Threads"],"summary":"Lists all messages under a given thread","description":"For more information on Guest Communication, see https://api.rentalsunited.com/swagger/ui/index#!/Threads/Threads_SendMessage\r\n\r\nExample messages from thread with host review, guest review, host response, guest response\r\n\r\n    GET threads/{id}/messages?messageLimit=4\r\n    [\r\n        {\r\n            \"ID\": 48573,\r\n            \"ThreadID\": 51558,\r\n            \"Body\": \"{\\\"Creator\\\":\\\"host\\\",\\\"CategoryRatingsExtended\\\":[{\\\"Category\\\":\\\"cleanliness\\\",\\\"Rating\\\":4,\\\"Comment\\\":\\\"This is a test comment\\\",\\\"ReviewCategoryTags\\\":[\\\"HOST_REVIEW_GUEST_POSITIVE_NEAT_AND_TIDY\\\",\\\"HOST_REVIEW_GUEST_POSITIVE_KEPT_IN_GOOD_CONDITION\\\",\\\"HOST_REVIEW_GUEST_POSITIVE_TOOK_CARE_OF_GARBAGE\\\",\\\"CLEANLINESS_OTHER\\\"]},{\\\"Category\\\":\\\"respect_house_rules\\\",\\\"Rating\\\":4,\\\"ReviewCategoryTags\\\":[\\\"HOST_REVIEW_GUEST_NEGATIVE_ARRIVED_EARLY\\\",\\\"HOST_REVIEW_GUEST_NEGATIVE_STAYED_PAST_CHECKOUT\\\"]},{\\\"Category\\\":\\\"communication\\\",\\\"Rating\\\":4,\\\"Comment\\\":\\\"It is a test comment\\\",\\\"ReviewCategoryTags\\\":[\\\"HOST_REVIEW_GUEST_POSITIVE_HELPFUL_MESSAGES\\\",\\\"HOST_REVIEW_GUEST_POSITIVE_RESPECTFUL\\\",\\\"COMMUNICATION_OTHER\\\",\\\"HOST_REVIEW_GUEST_POSITIVE_ALWAYS_RESPONDED\\\"]}],\\\"IsPublished\\\":true,\\\"IsReviewRecommended\\\":true,\\\"IsExpired\\\":false,\\\"Message\\\":\\\"This is a review from api\\\",\\\"Mode\\\":\\\"review\\\",\\\"PrivateFeedback\\\":\\\"This is a private feedback from api\\\"}\",\r\n            \"CreateDate\": \"2022-01-20T09:10:29.5615997\",\r\n            \"IsIncoming\": false,\r\n            \"ReadDate\": \"2022-01-20T09:12:06.2171032\",\r\n            \"SenderType\": \"Host\",\r\n            \"SenderName\": \"Sample Airbnb Owner RU\",\r\n            \"SenderInitials\": \"SAOR\",\r\n            \"Attachments\": [],\r\n            \"Sender\": {\r\n                \"ID\": 63418,\r\n                \"FirstName\": \"Sample Airbnb Owner\",\r\n                \"LastName\": \"RU\"\r\n            },\r\n            \"Receivers\": [\r\n                {\r\n                    \"ID\": 254814,\r\n                    \"FirstName\": \"\",\r\n                    \"LastName\": \"\"\r\n                }\r\n            ]\r\n        },\r\n        {\r\n            \"ID\": 48574,\r\n            \"ThreadID\": 51558,\r\n            \"Body\": \"{\\\"Creator\\\":\\\"guest\\\",\"OverallRating\":5,\\\"CategoryRatings\\\":{\\\"accuracy\\\":1,\\\"value\\\":5,\\\"communication\\\":5,\\\"location\\\":5,\\\"checkin\\\":5,\\\"cleanliness\\\":1},\\\"CategoryRatingsExtended\\\":[{\\\"Category\\\":\\\"accuracy\\\",\\\"Rating\\\":1,\\\"Comment\\\":\\\"itIsATestComment\\\",\\\"ReviewCategoryTags\\\":[\\\"GUEST_REVIEW_HOST_NEGATIVE_UNEXPECTED_NOISE\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_SMALLER_THAN_EXPECTED\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_DID_NOT_MATCH_PHOTOS\\\",\\\"ACCURACY_OTHER\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_UNEXPECTED_FEES\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_INACCURATE_LOCATION\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_NEEDS_MAINTENANCE\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_EXCESSIVE_RULES\\\"]},{\\\"Category\\\":\\\"value\\\",\\\"Rating\\\":5,\\\"ReviewCategoryTags\\\":[]},{\\\"Category\\\":\\\"communication\\\",\\\"Rating\\\":5,\\\"ReviewCategoryTags\\\":[]},{\\\"Category\\\":\\\"location\\\",\\\"Rating\\\":5,\\\"Comment\\\":\\\"itIsATestComment\\\",\\\"ReviewCategoryTags\\\":[\\\"LOCATION_OTHER\\\"]},{\\\"Category\\\":\\\"checkin\\\",\\\"Rating\\\":5,\\\"Comment\\\":\\\"itIsATestComment\\\",\\\"ReviewCategoryTags\\\":[\\\"GUEST_REVIEW_HOST_POSITIVE_EASY_TO_GET_INSIDE\\\",\\\"GUEST_REVIEW_HOST_POSITIVE_FLEXIBLE_CHECK_IN\\\",\\\"CHECK_IN_OTHER\\\",\\\"GUEST_REVIEW_HOST_POSITIVE_RESPONSIVE_HOST\\\",\\\"GUEST_REVIEW_HOST_POSITIVE_EASY_TO_FIND\\\",\\\"GUEST_REVIEW_HOST_POSITIVE_FELT_AT_HOME\\\",\\\"GUEST_REVIEW_HOST_POSITIVE_CLEAR_INSTRUCTIONS\\\"]},{\\\"Category\\\":\\\"cleanliness\\\",\\\"Rating\\\":1,\\\"ReviewCategoryTags\\\":[\\\"GUEST_REVIEW_HOST_NEGATIVE_STAINS\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_DIRTY_OR_DUSTY\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_DIRTY_BATHROOM\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_NOTICEABLE_SMELL\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_MESSY_KITCHEN\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_HAIR_OR_PET_HAIR\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_EXCESSIVE_CLUTTER\\\",\\\"GUEST_REVIEW_HOST_NEGATIVE_TRASH_LEFT_BEHIND\\\"]}],\\\"IsPublished\\\":true,\\\"PublishDate\\\":\\\"2022-01-20T09:11:52.8013941Z\\\",\\\"IsExpired\\\":false,\\\"Message\\\":\\\"test review from the guest\\\",\\\"Mode\\\":\\\"review\\\",\\\"PrivateFeedback\\\":\\\"test private feedback\\\"}\",\r\n            \"CreateDate\": \"2022-01-20T09:14:32.846\",\r\n            \"IsIncoming\": true,\r\n            \"ReadDate\": \"2022-01-20T09:12:06.2171032\",\r\n            \"SenderType\": \"Guest\",\r\n            \"SenderName\": \"Traveller\",\r\n            \"SenderInitials\": \"T\",\r\n            \"Attachments\": [],\r\n            \"Sender\": {\r\n                \"ID\": 254814,\r\n                \"FirstName\": \"\",\r\n                \"LastName\": \"\"\r\n            },\r\n            \"Receivers\": [\r\n                {\r\n                    \"ID\": 63418,\r\n                    \"FirstName\": \"Sample Airbnb Owner\",\r\n                    \"LastName\": \"RU\"\r\n                }\r\n            ]\r\n        },\r\n        {\r\n            \"ID\": 48575,\r\n            \"ThreadID\": 51558,\r\n            \"Body\": \"{\\\"Creator\\\":\\\"host\\\",\\\"IsPublished\\\":true,\\\"IsExpired\\\":false,\\\"Message\\\":\\\"test response\\\",\\\"Mode\\\":\\\"reply\\\"}\",\r\n            \"CreateDate\": \"2022-01-20T09:12:58.3667698\",\r\n            \"IsIncoming\": false,\r\n            \"ReadDate\": \"2022-01-20T09:12:59.8331378\",\r\n            \"SenderType\": \"Host\",\r\n            \"SenderName\": \"Sample Airbnb Owner RU\",\r\n            \"SenderInitials\": \"SAOR\",\r\n            \"Attachments\": [],\r\n            \"Sender\": {\r\n                \"ID\": 63418,\r\n                \"FirstName\": \"Sample Airbnb Owner\",\r\n                \"LastName\": \"RU\"\r\n            },\r\n            \"Receivers\": [\r\n                {\r\n                    \"ID\": 254814,\r\n                    \"FirstName\": \"\",\r\n                    \"LastName\": \"\"\r\n                }\r\n            ]\r\n        },\r\n        {\r\n            \"ID\": 48576,\r\n            \"ThreadID\": 51558,\r\n            \"Body\": \"{\\\"Creator\\\":\\\"guest\\\",\\\"IsPublished\\\":true,\\\"IsExpired\\\":false,\\\"Message\\\":\\\"response as a guest\\\",\\\"Mode\\\":\\\"reply\\\"}\",\r\n            \"CreateDate\": \"2022-01-20T09:16:35\",\r\n            \"IsIncoming\": true,\r\n            \"ReadDate\": \"2022-01-21T12:45:19.3152868\",\r\n            \"SenderType\": \"Guest\",\r\n            \"SenderName\": \"Traveller\",\r\n            \"SenderInitials\": \"T\",\r\n            \"Attachments\": [],\r\n            \"Sender\": {\r\n                \"ID\": 254814,\r\n                \"FirstName\": \"\",\r\n                \"LastName\": \"\"\r\n            },\r\n            \"Receivers\": [\r\n                {\r\n                    \"ID\": 63418,\r\n                    \"FirstName\": \"Sample Airbnb Owner\",\r\n                    \"LastName\": \"RU\"\r\n                }\r\n            ]\r\n        }\r\n    ]","operationId":"Threads_GetMessages","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the thread","required":true,"type":"integer","format":"int32"},{"name":"messageLimit","in":"query","description":"The number of messages to retrieve","required":true,"type":"integer","format":"int32"},{"name":"olderThan","in":"query","description":"The date and time of the oldest previously fetched message in UTC, only messages older than this date will be returned","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/Message"}}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]},"post":{"tags":["Threads"],"summary":"Creates a new message under the specified thread","description":"Guest Communication is a messaging feature dedicated for clients who would like to quickly and easily communicate with their potential and confirmed clients. You can use this to read and write messages and send and receive attachments.\r\n\r\nMessage - it is the text communication exchanged between the host and guest. It does not contain any specific parameters. The Message type of thread can carry attachments.\r\n\r\nYou can add attachment to your message and send it together at once, but you can also send the attachment with no message.\r\n\r\n**Request: Send the Message with attachment**\r\n    \r\n    POST threads/{id}/messages\r\n    {\r\n        \"Body\": \"message text\",\r\n        \"AddAttachmentsPayload\": [\r\n            {\r\n                \"Name\": \"string\",\r\n                \"Content\": \"string\"\r\n            },\r\n            {\r\n                \"Name\": \"string\",\r\n                \"Content\": \"string\"\r\n            }\r\n        ]\r\n    }\r\n\r\n    Body - The text of the Message in the HTML format.\r\n    AddAttachmentsPayload - The collection of files that are attached to the message.\r\n    Name - The name of the attached file with extension.\r\n    Content - The content of the attached file as the Base64-encoded text.\r\n    \r\nThere may be some format and size requirements when sending attachments due to limitations on the sales channels side. Note that it is entirely up to the channels and Rentals United cannot do anything about it. In such a case, you will receive a relevant notification via API.  You can check possible errors by using the <a href=\"https://api.rentalsunited.com/swagger/ui/index#!/Errors/Errors_GetPossibleErrors\">GET /api/errors/possible-errors method.</a>\r\n    \r\nGo to <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814556645917\">Use &amp; Manage via API</a> to read more about communication channels that support attachments as well as format and size limits.<br /><br />\r\n\r\n\r\nGuest Reviews is the next feature that can be used through Rentals United REST API. With this solution, you can start writing and receiving the reviews directly via API. You will no longer need to log into the Airbnb dashboard to check for new reviews or respond to them.\r\n\r\nNote: Guest Reviews come as separate threads and should not be mistaken with Guest Communication. \r\n\r\nGuest Review thread becomes available in a few hours after the reservation has ended, depending on the Airbnb processing time. \r\n\r\nReview - first message (from host and guest) in the Guest Review thread, consisting of the mandatory Review and CategoryRatings fields. Review can be sent within 14 days, then the review period expires. Reviews sent after that time frame will not be accepted by Airbnb. Note that reviews in Airbnb are double-blind. This means that the review's content will be available for you only after the review is published in Airbnb. The reviews are published in Airbnb if: \r\n a) two reviews were submitted,    \r\n b) one review was submitted and the review period has ended. \r\n\r\n**Request: Send the Review**\r\n    \r\n    POST threads/{id}/messages\r\n    {\r\n        \"Body\": \"{\\\"Review\\\":\\\"this is review from api\\\",\\\"PrivateFeedback\\\":\\\"this is private feedback from api\\\",\\\"CategoryRatings\\\":{\\\"cleanliness\\\":1,\\\"communication\\\":2,\\\"respect_house_rules\\\":3},\\\"IsReviewRecommended\\\":true}\"\r\n    }\r\n    \r\n    Body - Container object for Review.\r\n    Review - Text of the public review to be published on Airbnb.\r\n    PrivateFeedback - Private feedback available only for the guest and host.\r\n    CategoryRatings - Container object for standard Airbnb rating categories used to rate the stay.\r\n    cleanliness - Category rating type.\r\n    communication - Category rating type.\r\n    respect_house_rules - Category rating type.\r\n    IsReviewRecommended - Information if you recommend this guest.\r\n\r\nFor Airbnb Host Reply, the expected payload contains single \"Reply\" field:\r\n\r\n**Request: Send the Reply**\r\n            \r\n    POST threads/{id}/messages\r\n    {\r\n        \"Body\": \"{\\\"Reply\\\":\\\"response from api\\\"}\"\r\n    }\r\n    \r\n    Body - Container object for Reply.\r\n    Reply - Text of the public reply to be published on Airbnb as a response to Review.\r\n    \r\nAll fields presented in the sample in both Airbnb Host Review and Reply are mandatory. \r\nNot providing any of those fields will result in an error.","operationId":"Threads_SendMessage","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the thread","required":true,"type":"integer","format":"int32"},{"name":"payload","in":"body","description":"Data for sending a message","required":true,"schema":{"$ref":"#/definitions/SendMessagePayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/{id}/messages/mark-as-read":{"put":{"tags":["Threads"],"summary":"Marks all messages under a given thread as read","operationId":"Threads_MarkAsRead","consumes":[],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the thread","required":true,"type":"integer","format":"int32"}],"responses":{"204":{"description":"NoContent","schema":{"$ref":"#/definitions/Void"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}},"/api/messaging/threads/{id}/messages/as-cohost/{cohostAccountId}":{"post":{"tags":["Threads"],"summary":"Creates a new message in the specified thread on behalf of a co-host account","description":"Before you use this method, you need to grant Rentals United access to a co-host account in Rentals United. You need to do this in the Rentals United &gt; Guest Planner &gt; <a href=\"https://new.rentalsunited.com/My/GuestPlanner/ControlPanel\">Control Panel</a>.\r\n\r\nRead the detailed instructions <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814557100573\">here</a> and make sure to follow all prerequisites.\r\n\r\n<b>Error explanations:</b>\r\n\r\n- “The Airbnb co-host credentials are invalid. Please check your co-host account connections or contact support.”\r\n\r\nError message when the access is not granted. Go to <a href=\"https://new.rentalsunited.com/My/GuestPlanner/ControlPanel\">Control Panel</a> and grant us access to the co-host account. See <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814557100573\">here</a>.\r\n\r\n- “The Airbnb account does not have the required permissions to perform this action. Please check co-host permissions in Airbnb or contact support.”\r\n\r\nError when the co-host does not have permission for an Airbnb listing. Check <a href=\"https://www.airbnb.com/help/article/1244\">this Airbnb article</a>. \r\n\r\n- “The provided co-host account with ID {CohostAccountID} was not found. Please check your co-host account connections or contact support.”\r\n\r\nError when a co-host with the specified CohostAccountID is not found. Make sure the CohostAccountID you provided in the message matches the CohostAccountID added in <a href=\"https://new.rentalsunited.com/My/GuestPlanner/ControlPanel\">Control Panel</a>.","operationId":"Threads_SendMessageByCohost","consumes":["application/json","text/json","application/xml","text/xml","application/x-www-form-urlencoded"],"produces":["application/json","text/json","application/xml","text/xml"],"parameters":[{"name":"id","in":"path","description":"The ID of the thread","required":true,"type":"integer","format":"int32"},{"name":"cohostAccountId","in":"path","description":"The Airbnb co-host account ID","required":true,"type":"string"},{"name":"payload","in":"body","description":"","required":true,"schema":{"$ref":"#/definitions/SendMessagePayload"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Message"}}},"security":[{"accessKey":[],"secretKey":[]},{"basic":[]}]}}},"definitions":{"ErrorDto":{"title":"ErrorDto","type":"object","properties":{"ErrorCode":{"format":"int32","type":"integer"},"ErrorMessage":{"type":"string"}}},"Message":{"title":"Message","description":"A message in a thread","required":["ID","ThreadID","Body","CreateDate","IsIncoming","SenderName","SenderInitials","Sender","Receivers"],"type":"object","properties":{"ID":{"format":"int32","description":"The ID of the message","type":"integer"},"ThreadID":{"format":"int32","description":"The ID of the thread containing the message","type":"integer"},"Body":{"description":"The body of the message in HTML format","type":"string"},"CreateDate":{"format":"date-time","description":"The date and time of when the message was created in UTC","type":"string"},"IsIncoming":{"description":"Whether the message is incoming as opposed to being sent by the user","type":"boolean"},"ReadDate":{"format":"date-time","description":"The date and time of when the message was read by the user in UTC. Can be empty","type":"string"},"SenderType":{"description":"Represents the type of the sender in the context of the reservation","enum":["Undefined","Host","Guest","Cohost"],"type":"string"},"SenderName":{"description":"The full name of the sender","type":"string"},"SenderInitials":{"description":"The initials of the sender","type":"string"},"Attachments":{"description":"A collection of attachments associated with the message","type":"array","items":{"$ref":"#/definitions/Attachment"}},"Sender":{"$ref":"#/definitions/Contact","description":"The sender of the message"},"Receivers":{"description":"The list of receivers the message was sent to","type":"array","items":{"$ref":"#/definitions/Contact"}}}},"Attachment":{"title":"Attachment","description":"An attachment under a message","required":["ID","MessageID","Name","Extension","Size"],"type":"object","properties":{"ID":{"format":"int32","description":"The ID of the attachment","type":"integer"},"MessageID":{"format":"int32","description":"The ID of the message containing the attachment","type":"integer"},"Name":{"description":"The name of the attached file with extension","type":"string"},"Extension":{"description":"The extension of the attached file","type":"string"},"Size":{"format":"int32","description":"The size of the attached file in bytes","type":"integer"},"Content":{"description":"The content of the attached file as the Base64-encoded text","type":"string"}}},"Contact":{"title":"Contact","description":"A contact representing a participant in a thread","required":["ID","FirstName","LastName"],"type":"object","properties":{"ID":{"format":"int64","description":"The ID of the contact","type":"integer"},"FirstName":{"description":"The first name of the contact","type":"string"},"LastName":{"description":"The last name of the contact","type":"string"}}},"Void":{"title":"Void","type":"object","properties":{}},"SubscriptionPayload":{"title":"SubscriptionPayload","description":"Data for subscribing to messaging events","required":["Url"],"type":"object","properties":{"Url":{"description":"An HTTPS endpoint to which messaging events will be pushed","type":"string"}}},"Notification[Thread]":{"title":"Notification`1","description":"Live notification about an event in Rentals United","required":["NotificationEventType","NotificationDataType","Data"],"type":"object","properties":{"NotificationEventType":{"description":"The type of event the notification describes","enum":["NewMessage","NewThread","ReadMessage","ModifiedMessage"],"type":"string"},"NotificationDataType":{"description":"The data type of the notification data object","enum":["Thread","Message"],"type":"string"},"Data":{"$ref":"#/definitions/Thread","description":"The notification data object"}}},"Thread":{"title":"Thread","description":"A thread containing messages","required":["ID","ParentType","ParentID","CommunicationChannel","RecipientRole","Preview","HasAttachment","NumberOfUnreadMessages","Contacts"],"type":"object","properties":{"ID":{"format":"int32","description":"The ID of the thread","type":"integer"},"ParentType":{"description":"The type of object the thread is attached to","enum":["RUReservation","PMSReservation","Contact"],"type":"string"},"ParentID":{"format":"int32","description":"The ID of the object the thread is attached to","type":"integer"},"CommunicationChannel":{"description":"The communication channel messages in thread will be sent over.\r\nFor dedicated channels this is the channel name (e.g. \"Airbnb\", \"BookingCom\", \"Email\");\r\nfor generic PULL sales channels it is the sales channel name.","type":"string"},"RecipientName":{"description":"The recipient's first name followed by last name (if provided)","type":"string"},"RecipientRole":{"description":"The role of the recipient in the context of the reservation","enum":["Unknown","SalesChannel","Guest"],"type":"string"},"Preview":{"description":"The first 100 characters of the thread subject or the first 100 characters of the latest message (if subject is not applicable)","type":"string"},"LastMessageDate":{"format":"date-time","description":"The date and time of the latest message in the thread in UTC","type":"string"},"HasAttachment":{"description":"Indicates whether the thread has any messages that contain attachments","type":"boolean"},"NumberOfUnreadMessages":{"format":"int32","description":"The number of unread messages in the thread","type":"integer"},"Contacts":{"description":"The list of contacts appearing in the thread","type":"array","items":{"$ref":"#/definitions/Contact"}}}},"Notification[Message]":{"title":"Notification`1","description":"Live notification about an event in Rentals United","required":["NotificationEventType","NotificationDataType","Data"],"type":"object","properties":{"NotificationEventType":{"description":"The type of event the notification describes","enum":["NewMessage","NewThread","ReadMessage","ModifiedMessage"],"type":"string"},"NotificationDataType":{"description":"The data type of the notification data object","enum":["Thread","Message"],"type":"string"},"Data":{"$ref":"#/definitions/Message","description":"The notification data object"}}},"ReviewMessageStructure":{"title":"ReviewMessageStructure","type":"object","properties":{"ReviewMessageType":{"enum":["AirbnbGuestReview","AirbnbHostReview","AirbnbGuestReply","AirbnbHostReply","VrboGuestRating","VrboGuestReview","VrboHostReply","VrboGuestRatingAlreadyExists","BookingComGuestReview","BookingComHostReply","ExpediaGuestReview","ExpediaHostReply"],"type":"string"},"Structure":{"type":"string"}}},"ReviewCategory":{"title":"ReviewCategory","description":"The review category along with the review tags applicable for that category","required":["Category","Tags"],"type":"object","properties":{"Category":{"description":"Category rating type","type":"string"},"Description":{"description":"Category rating type description","type":"string"},"Tags":{"description":"Tags used for additional review category details","type":"array","items":{"$ref":"#/definitions/CategoryTag"}}}},"CategoryTag":{"title":"CategoryTag","required":["Value"],"type":"object","properties":{"Value":{"description":"The name of the tag","type":"string"},"Description":{"description":"Description of the tag","type":"string"}}},"SendAirbnbReviewPayload":{"title":"SendAirbnbReviewPayload","description":"Data for sending an Airbnb review","required":["ThreadId","Review","IsRevieweeRecommended","CategoryRatings"],"type":"object","properties":{"ThreadId":{"format":"int32","description":"The ID of the review thread","type":"integer"},"Review":{"description":"Text of the public review to be published on Airbnb","type":"string"},"IsRevieweeRecommended":{"description":"Information if you recommend this guest","type":"boolean"},"PrivateFeedback":{"description":"Private feedback available only for the guest and host","type":"string"},"CategoryRatings":{"description":"List of all category ratings","type":"array","items":{"$ref":"#/definitions/CategoryRatingPayload"}}}},"CategoryRatingPayload":{"title":"CategoryRatingPayload","description":"Container object for standard Airbnb rating categories used to rate the stay","required":["Category","Rating"],"type":"object","properties":{"Category":{"description":"Category rating type, on of `cleanliness`, `communication`, `respect_house_rules`","type":"string"},"Rating":{"format":"int32","description":"A rating from scale of one to five","type":"integer"},"Comment":{"description":"Explanation for the category rating (max. 50 characters)","type":"string"},"ReviewCategoryTags":{"description":"Additional tags to provide review category details. Note: a negative tag for the category must be specified if the rating is negative (&lt; 5 stars for `respect_house_rules` or &lt; 4 stars for all other categories)","type":"array","items":{"type":"string"}}}},"SendAirbnbReviewReplyPayload":{"title":"SendAirbnbReviewReplyPayload","description":"Data for sending a reply","required":["ThreadId","Reply"],"type":"object","properties":{"ThreadId":{"format":"int32","description":"The ID of the review thread","type":"integer"},"Reply":{"description":"Text of the public reply to be published on Airbnb as a response to review","type":"string"}}},"SendBComReviewReplyPayload":{"title":"SendBComReviewReplyPayload","description":"Data for sending a reply","required":["ThreadId","Reply"],"type":"object","properties":{"ThreadId":{"format":"int32","description":"The ID of the review thread","type":"integer"},"Reply":{"description":"Text content of the reply message","type":"string"}}},"SendVrboReviewReplyPayload":{"title":"SendVrboReviewReplyPayload","description":"Data for sending a reply","required":["ThreadId","Reply"],"type":"object","properties":{"ThreadId":{"format":"int32","description":"The ID of the review thread","type":"integer"},"Reply":{"description":"Text content of the reply message","type":"string"}}},"SendVrboGuestRatingPayload":{"title":"SendVrboGuestRatingPayload","description":"Data for sending guest rating","required":["ThreadId","RecommendGuest","StarRatings"],"type":"object","properties":{"ThreadId":{"format":"int32","description":"The ID of the review thread","type":"integer"},"RecommendGuest":{"description":"Information if you recommend this guest","type":"boolean"},"StarRatings":{"description":"Rating categories and ratings","type":"array","items":{"$ref":"#/definitions/RatingPayload"}}}},"RatingPayload":{"title":"RatingPayload","required":["Category","Value"],"type":"object","properties":{"Category":{"description":"Category rating type, on of `overall`, `cleanliness`, `house_rules`, `communication`","type":"string"},"Value":{"description":"Value of the rating, from 1 (terrible) to 5 (excellent)","type":"string"}}},"SendExpediaReviewReplyPayload":{"title":"SendExpediaReviewReplyPayload","description":"Data for sending a reply","required":["ThreadId","Reply"],"type":"object","properties":{"ThreadId":{"format":"int32","description":"The ID of the review thread","type":"integer"},"Reply":{"description":"Text content of the reply message","type":"string"}}},"PostSpecialOfferPayload":{"title":"PostSpecialOfferPayload","required":["OfferType","ThreadID"],"type":"object","properties":{"OfferType":{"description":"Special offer type","enum":["PreApproval"],"type":"string","readOnly":true},"ThreadID":{"format":"int32","description":"Rentals United ThreadId to which we want to add special offer","type":"integer","readOnly":true}}},"PostSpecialOfferResult":{"title":"PostSpecialOfferResult","required":["SpecialOfferID"],"type":"object","properties":{"SpecialOfferID":{"format":"int32","description":"Special Offer ID of newly created offer","type":"integer"}}},"GetSpecialOfferResult":{"title":"GetSpecialOfferResult","required":["ID","ThreadID","CreateDate","ExpireDate","SpecialOfferType","IsActive"],"type":"object","properties":{"ID":{"format":"int32","description":"Special offer ID","type":"integer"},"ThreadID":{"format":"int32","description":"Rentals United Guest Communication Thread ID","type":"integer"},"CreateDate":{"format":"date-time","description":"Special offer create date","type":"string"},"ExpireDate":{"format":"date-time","description":"Special offer's expiry date","type":"string"},"RescindedDate":{"format":"date-time","description":"Special offer's withdrawal date. Null, if the offer wasn't withdrawn","type":"string"},"SpecialOfferType":{"description":"Special offer's type","enum":["PreApproval"],"type":"string"},"IsActive":{"description":"Specifies if the special offer is active","type":"boolean"}}},"WithdrawSpecialOfferPayload":{"title":"WithdrawSpecialOfferPayload","required":["SpecialOfferId"],"type":"object","properties":{"SpecialOfferId":{"format":"int32","description":"Special offer ID","type":"integer","readOnly":true}}},"CreateThreadPayload":{"title":"CreateThreadPayload","description":"Data for creating a thread","required":["ParentType","ParentID","FirstName","LastName"],"type":"object","properties":{"ParentType":{"description":"The type of the parent object","enum":["RUReservation","PMSReservation","Contact"],"type":"string"},"ParentID":{"description":"The ID of the parent object","type":"string"},"FirstName":{"description":"Recipient's first name. May be overwritten if a user with provided e-mail address exists in the system","type":"string"},"LastName":{"description":"Recipient's last name. May be overwritten if a user with provided e-mail address exists in the system","type":"string"},"EmailAddress":{"description":"Recipient's e-mail address","type":"string"}}},"LatestThread":{"title":"LatestThread","type":"object","properties":{"ID":{"format":"int32","description":"ID of the thread","type":"integer"},"ParentType":{"description":"Type of object the thread is attached to","enum":["RUReservation","PMSReservation","Contact"],"type":"string"},"ParentID":{"format":"int32","description":"ID of the object the thread is attached to","type":"integer"},"LastMessageID":{"format":"int32","description":"ID of the last message in the thread","type":"integer"},"LastMessageDate":{"format":"date-time","description":"Date and time of the last message in the thread","type":"string"}}},"SendMessagePayload":{"title":"SendMessagePayload","description":"Data for sending a message","required":["Body"],"type":"object","properties":{"Body":{"description":"The body of the message in HTML format","type":"string"},"AddAttachmentsPayload":{"description":"The collection of files that are attached to the message","type":"array","items":{"$ref":"#/definitions/AddAttachmentPayload"}}}},"AddAttachmentPayload":{"title":"AddAttachmentPayload","description":"Data for adding attachment to the message","required":["Name","Content"],"type":"object","properties":{"Name":{"description":"The name of the attached file with extension. Go to <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814556645917\">Use &amp; Manage via API</a> to read more about format and size limits","type":"string"},"Content":{"description":"The content of the attached file as the Base64-encoded text. Go to <a href=\"https://docs.rentalsunited.com/hc/en-gb/articles/33814556645917\">Use &amp; Manage via API</a> to read more about format and size limits","type":"string"}}}},"securityDefinitions":{"basic":{"type":"basic"},"accessKey":{"type":"apiKey","description":"RU API Access Key (X-RU-AccessKey)","name":"X-RU-AccessKey","in":"header"},"secretKey":{"type":"apiKey","description":"RU API Secret Key (X-RU-SecretKey)","name":"X-RU-SecretKey","in":"header"}}}