openapi: 3.2.0 info: title: Revinate Porter Review Sites 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: Review Sites paths: /reviewsites: get: tags: - Review Sites summary: Get Review Sites description: Retrieve a list view of review sites. This resource supports pagination. operationId: listReviewSites 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: [] /reviewsites/{reviewSiteId}: get: tags: - Review Sites summary: Get a Review Site description: Retrieve a review site resource by primary review site id. operationId: getReviewSite parameters: - name: reviewSiteId in: path required: true description: identifier of Review Site schema: type: integer format: int64 description: identifier of Review Site 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.