PowerReviews · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the PowerReviews Write API

8 actions 8 updates security extends openapi/powerreviews-writeservices-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-versionschemessecurityDefinitionssecurity

Targets 6

$.info
$
$.definitions.WriteAReviewB2BPostRequest.properties.iovation_black_box
$.paths['/api/b2b/writereview/submit_review'].post
$.paths..post
$.definitions.BaseReviewField«object»

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the PowerReviews Write API
  version: 1.0.0
extends: openapi/powerreviews-writeservices-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: >-
  Enhancements derived from the PowerReviews developer portal (Write API use
  cases, iOvation integration, third-party campaign integration) on 2026-08-13.
  The harvested Swagger 2.0 document at openapi/_original/ is never mutated.
actions:
  - target: $.info
    description: Record provenance and correct the empty version string on the record.
    update:
      x-apievangelist-provider: powerreviews
      x-apievangelist-harvested: '2026-08-13'
      x-apievangelist-source: https://developers.powerreviews.com/Content/reference/api-specs/writeservices.yaml
      x-spec-version: swagger-2.0
      x-apievangelist-note: >-
        info.version is declared as 0.0.0 and has never been incremented. The
        surface carries no version segment in the path and no version header.
  - target: $
    description: The document omits schemes; the live surface is HTTPS only.
    update:
      schemes:
        - https
  - target: $
    description: >-
      Declare the apiKey scheme the WriteServices surface enforces. The
      WriteServices key is a SEPARATE credential from the ReadServices key.
    update:
      securityDefinitions:
        apikey:
          type: apiKey
          name: apikey
          in: query
          description: >-
            Merchant-scoped WriteServices API key, requested from
            support@powerreviews.com (or sampling@powerreviews.com for agency
            campaign integrations). Distinct from the ReadServices key.
      security:
        - apikey: []
  - target: $.definitions.WriteAReviewB2BPostRequest.properties.iovation_black_box
    description: Mark the device fingerprint as required by policy even though the schema does not.
    update:
      x-apievangelist-required-by-policy: true
      x-apievangelist-note: >-
        iOvation device fingerprint information is a required field for review
        submission through the API. The value is the BlackBox string returned by
        ioGetBlackbox().blackbox after loading snare.js in the browser
        (https://mpsnare.iesnare.com/snare.js in production,
        https://ci-mpsnare.iovation.com/snare.js for test accounts). A headless
        integration cannot generate one.
      x-apievangelist-source: https://developers.powerreviews.com/Content/Write%20API/iOvation.htm
  - target: $.paths['/api/b2b/writereview/submit_review'].post
    description: Record the moderation and template-first operating rules.
    update:
      x-apievangelist-note: >-
        Only pending-status reviews are accepted; submitted content is moderated
        before it appears. Call startReviewUsingGET immediately before every
        submission so the field set matches the current template for the page id
        and locale rather than a cached copy.
      x-apievangelist-source: https://developers.powerreviews.com/Content/Write%20API/Use%20Cases.htm
  - target: $.paths..post
    description: >-
      Flag the absence of an idempotency contract on every write operation — the
      most consequential gap on this surface for an automated caller.
    update:
      x-idempotency:
        supported: false
        key_header: null
        note: >-
          No idempotency key, no request-id echo, and no replay semantics. A
          retry after a timeout can create duplicate user-generated content.
          De-duplicate client-side on merchant_question_id or unique_review_id.
  - target: $.definitions.BaseReviewField«object»
    description: Flag the polymorphic field model whose subtypes carry no properties.
    update:
      x-apievangelist-note: >-
        SimpleReviewField, CompositeReviewField and CollectionReviewField are
        declared in this document with no type and no properties, so the concrete
        shape of a template field cannot be resolved from the contract. Read the
        live startReviewUsingGET response instead.
  - target: $.info
    description: Record the mandatory campaign fields published for third-party integrations.
    update:
      x-apievangelist-required-campaign-fields:
        - headline
        - rating
        - comments
        - location
        - nickname
      x-apievangelist-source: https://developers.powerreviews.com/Content/Getting%20Started%20APIs/Third%20Party%20API%20Integration.htm