PowerReviews · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the PowerReviews Read API

9 actions 9 updates security extends openapi/powerreviews-readservices-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for PowerReviews's API. It is a proposal applied on top of the contract, not a document PowerReviews publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-sourcex-apievangelist-notex-apievangelist-providerx-apievangelist-harvestedx-spec-versionx-contact-emailschemessecurityDefinitions

Targets 7

$.info
$
$.definitions.QueryResponse.properties.results
$.paths['/m/{merchantId}/l/{locale}/product/{pageId}/reviews'].get.parameters[?(@.name=='sort')]
$.paths..get.parameters[?(@.name=='paging.size')]
$.paths..get.parameters[?(@.name=='updated_date_query')]
$.paths..get.responses['401']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the PowerReviews Read API
  version: 1.0.0
extends: openapi/powerreviews-readservices-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: >-
  Enhancements derived from the PowerReviews developer portal and live probes on
  2026-08-13. The harvested Swagger 2.0 document at openapi/_original/ is never
  mutated; everything the pipeline learned that the provider did not declare is
  captured here as actions.
actions:
  - target: $.info
    description: Record provenance and the API Evangelist rating context.
    update:
      x-apievangelist-provider: powerreviews
      x-apievangelist-harvested: '2026-08-13'
      x-apievangelist-source: https://developers.powerreviews.com/Content/reference/api-specs/readservices.yaml
      x-spec-version: swagger-2.0
      x-contact-email: support@powerreviews.com
  - target: $
    description: >-
      The document declares host and basePath but omits schemes; the live surface
      is HTTPS only. Declared here rather than in the original.
    update:
      schemes:
        - https
  - target: $
    description: >-
      Every operation carries an apikey query parameter but the document declares
      no securityDefinitions. Add the scheme the API actually enforces, verified
      by a live 401 on 2026-08-13.
    update:
      securityDefinitions:
        apikey:
          type: apiKey
          name: apikey
          in: query
          description: >-
            Merchant-scoped ReadServices API key, requested from
            support@powerreviews.com. Sent as a query parameter; a request
            without it returns 401 with body
            {"url":"...","message":"api key is required for authentication","status_code":401}.
      security:
        - apikey: []
  - target: $.definitions.QueryResponse.properties.results
    description: >-
      Flag the untyped results array so a consumer knows the read shape is not in
      the contract rather than assuming it was simply omitted.
    update:
      x-apievangelist-note: >-
        Untyped array. The Review, Question, Answer and Snippet response shapes
        are not declared anywhere in this document; they must be learned from a
        live response. This is the single largest contract gap on the Read API.
  - target: $.paths['/m/{merchantId}/l/{locale}/product/{pageId}/reviews'].get.parameters[?(@.name=='sort')]
    description: Document the enumerated sort values published on the Read API use-cases page.
    update:
      x-apievangelist-enum:
        - HighestRating
        - LowestRating
        - MostHelpful
        - Oldest
        - Newest
      x-apievangelist-source: https://developers.powerreviews.com/Content/Read%20API/Use%20Cases.htm
  - target: $.paths..get.parameters[?(@.name=='paging.size')]
    description: Document the published page-size bounds.
    update:
      minimum: 1
      maximum: 25
      x-apievangelist-note: >-
        paging.size must be between 1 and 25, and paging.size + paging.from must
        not exceed 10000. Exceeding either returns an error.
      x-apievangelist-source: https://developers.powerreviews.com/Content/Read%20API/Use%20Cases.htm
  - target: $.paths..get.parameters[?(@.name=='updated_date_query')]
    description: Explain the incremental-sync semantics documented for CRM integration.
    update:
      x-apievangelist-note: >-
        When true, the required `date` parameter (epoch milliseconds) is applied
        to the last-updated timestamp rather than the created timestamp. This is
        the documented pattern for feeding review content into a CRM.
  - target: $.paths..get.responses['401']
    description: Attach the real error envelope observed live.
    update:
      x-apievangelist-example:
        url: /m/512774/l/en_US/product/7751057291/reviews
        message: api key is required for authentication
        status_code: 401
      x-apievangelist-observed: '2026-08-13'
  - target: $.info
    description: Record the published rate limit, which appears nowhere in the contract.
    update:
      x-rate-limit:
        scope: ip-address
        limit: 1800
        window: 5 minutes
        enforcement: ip-block for 5 minutes, extended while traffic stays above threshold
        headers: none
        effective: '2019-11-04'
        source: https://developers.powerreviews.com/Content/Read%20API/Use%20Cases.htm