openapi: 3.2.0 info: title: Revinate Porter Hotel Sets API version: '1.0' description: 'Revinate''s structured review data API. Provides access to hotel reviews across 100+ review sites, with key metrics (review counts, average ratings), sentiment analysis, competitor review streams and survey email statistics. Two review streams exist and they are not interchangeable: the Review Stream (/reviews, /hotels/{hotelId}/reviews) is for offline analysis and its content may NOT be used for display, while the Widget Review Stream (/widgetreviews) is licensed for display/republishing but excludes TripAdvisor and Yelp content under content-licensing agreements with those partners. CONVERSION NOTE: Revinate publishes this contract as Swagger 1.2 at https://porter.revinate.com/api-docs. This OpenAPI 3.1.0 document is a faithful mechanical conversion of the six published Swagger 1.2 resource declarations by API Evangelist; the verbatim originals are preserved in openapi/_original/. Operation IDs were made unique (the published nickname "get" is reused across all six resources).' contact: name: Revinate Support email: support@revinate.com url: https://www.revinate.com/support/ license: name: Revinate API License url: https://www.revinate.com/website-terms-of-use/ servers: - url: https://porter.revinate.com description: Revinate Porter API production base URL security: - porterUsername: [] porterTimestamp: [] porterKey: [] porterEncoded: [] tags: - name: Hotel Sets paths: /hotelsets: get: tags: - Hotel Sets summary: Get Hotel Sets description: Returns a collection of hotel sets. Hotel sets are only available for corporate or group customers. A hotel set is a subset of the properties belonging to the group and configurable in the Revinate Reputation application. Pagination is supported by this resource. operationId: listHotelSets parameters: - name: page in: query required: false description: page number schema: type: integer description: page number - name: size in: query required: false description: number of elements to show per page schema: type: integer description: number of elements to show per page - name: sort in: query required: false description: sort field and direction (eg. ?sort=name,ASC) schema: type: string description: sort field and direction (eg. ?sort=name,ASC) responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found security: - porterUsername: [] porterTimestamp: [] porterKey: [] porterEncoded: [] /hotelsets/{hotelSetId}: get: tags: - Hotel Sets summary: Get a Hotel Set description: Returns a specific hotel set operationId: getHotelSet parameters: - name: hotelSetId in: path required: true description: hotelSetId schema: type: integer format: int64 description: hotelSetId responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found security: - porterUsername: [] porterTimestamp: [] porterKey: [] porterEncoded: [] /hotelsets/{hotelSetId}/hotels: get: tags: - Hotel Sets summary: Get Hotels belonging to a Hotel Set description: Returns the list of member hotels for a given hotel set. Pagination is available on this resource. operationId: getHotelsForHotelSet parameters: - name: hotelSetId in: path required: true description: hotelSetId schema: type: integer format: int64 description: hotelSetId responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found security: - porterUsername: [] porterTimestamp: [] porterKey: [] porterEncoded: [] /hotelsets/{hotelSetId}/reviews: get: tags: - Hotel Sets summary: Get reviews for all hotels in a hotel set description: Retrieve the latest reviews associated with the hotel set resource identified by hotelSetId. This endpoint supports pagination and sorting if your API key is configured for it. If not configured, the response will be an error if exceeding the review limit. In addition, this endpoint supports additional query parameter filters (ratings, feedback, and languageSlug) operationId: getReviewsForHotelSet parameters: - name: hotelSetId in: path required: true description: identifier of Hotel set schema: type: integer format: int64 description: identifier of Hotel set - name: ratings in: query required: false description: list of ratings (1-5) to filter the results by (eg. rating=4,5) schema: type: array items: type: integer format: int32 description: list of ratings (1-5) to filter the results by (eg. rating=4,5) - name: feedback in: query required: false description: type of feedback to filter results by. Valid values are [positive, neutral, negative] schema: type: string description: type of feedback to filter results by. Valid values are [positive, neutral, negative] - name: response in: query required: false description: response status to filter results by. Valid values are [none, posted] schema: type: string description: response status to filter results by. Valid values are [none, posted] - name: languageSlug in: query required: false description: slug of the language to filter results by. Valid values are from the '/languages' endpoint schema: type: string description: slug of the language to filter results by. Valid values are from the '/languages' endpoint - name: reviewSiteSlug in: query required: false description: slug of the review site to filter results by. Valid values are from the '/reviewsites' endpoint schema: type: string description: slug of the review site to filter results by. Valid values are from the '/reviewsites' endpoint - name: dateCollected in: query required: false description: Filter reviews using dateCollected field with an epoch seconds date range of format {start}..{end} (eg. 1389402398..1420938399). This query parameter is only available for Revinate customers schema: type: string description: Filter reviews using dateCollected field with an epoch seconds date range of format {start}..{end} (eg. 1389402398..1420938399). This query parameter is only available for Revinate customers - name: updatedAt in: query required: false description: Filter reviews using updatedAt field with an epoch seconds date range of format {start}..{end} (eg. 1389402398..1420938399). This query parameter is only available for Revinate customers schema: type: string description: Filter reviews using updatedAt field with an epoch seconds date range of format {start}..{end} (eg. 1389402398..1420938399). This query parameter is only available for Revinate customers - name: page in: query required: false description: page number schema: type: integer description: page number - name: size in: query required: false description: number of elements to show per page schema: type: integer description: number of elements to show per page - name: sort in: query required: false description: sort field and direction (eg. ?sort=rating,desc) schema: type: string description: sort field and direction (eg. ?sort=rating,desc) responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found security: - porterUsername: [] porterTimestamp: [] porterKey: [] porterEncoded: [] components: securitySchemes: porterUsername: type: apiKey in: header name: X-Revinate-Porter-Username description: Username with access to the requested resources and to the API key used. porterTimestamp: type: apiKey in: header name: X-Revinate-Porter-Timestamp description: Epoch-seconds timestamp; must be within 5 minutes (before or after) of the request. porterKey: type: apiKey in: header name: X-Revinate-Porter-Key description: API key issued by Revinate (contact your sales rep or account manager). porterEncoded: type: apiKey in: header name: X-Revinate-Porter-Encoded description: HMAC_SHA256(apiSecret, username + timestamp), hex-encoded.