Judge.me Reviews API

List and create product and store reviews.

OpenAPI Specification

judge-me-reviews-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Judge.me Products Reviews API
  description: REST API for the Judge.me product reviews platform for Shopify and other e-commerce storefronts. Endpoints let you list and create reviews, resolve products, send review request emails, and fetch ready-to-render review widget HTML. Requests are authenticated with a shop_domain and an api_token query parameter. A public api_token may be used for GET widget calls in public JavaScript environments; a private api_token grants read/write access and must be used server-side only.
  termsOfService: https://judge.me/terms
  contact:
    name: Judge.me Support
    url: https://judge.me/api/docs
    email: support@judge.me
  version: '1.0'
servers:
- url: https://judge.me/api/v1
  description: Judge.me API v1
security:
- shopDomain: []
  apiToken: []
tags:
- name: Reviews
  description: List and create product and store reviews.
paths:
  /reviews:
    get:
      operationId: listReviews
      tags:
      - Reviews
      summary: List reviews
      description: Retrieve published reviews for the store, optionally filtered by product, rating, or published status, with pagination. If product_id is omitted, all product and store reviews are returned. The response does not include video URLs or replies to reviews.
      parameters:
      - name: shop_domain
        in: query
        required: true
        description: The store's myshopify.com domain, e.g. example.myshopify.com.
        schema:
          type: string
      - name: api_token
        in: query
        required: true
        description: Public or private Judge.me API token.
        schema:
          type: string
      - name: product_id
        in: query
        required: false
        description: Internal Judge.me product id to scope reviews to one product.
        schema:
          type: integer
      - name: page
        in: query
        required: false
        description: Page number for pagination.
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        required: false
        description: Number of reviews per page.
        schema:
          type: integer
          default: 10
      - name: rating
        in: query
        required: false
        description: Filter reviews by star rating (1-5).
        schema:
          type: integer
          minimum: 1
          maximum: 5
      responses:
        '200':
          description: A paginated list of reviews.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewList'
        '401':
          description: Missing or invalid api_token / shop_domain.
    post:
      operationId: createReview
      tags:
      - Reviews
      summary: Create a review
      description: Programmatically import or create a review for a product or the store. Requires a private api_token. Reviews created through the API cannot be marked verified or deleted via the API.
      parameters:
      - name: shop_domain
        in: query
        required: true
        description: The store's myshopify.com domain.
        schema:
          type: string
      - name: api_token
        in: query
        required: true
        description: Private Judge.me API token.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReviewRequest'
      responses:
        '200':
          description: The created review.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Review'
        '401':
          description: Missing or invalid private api_token.
        '422':
          description: Validation error in the review payload.
components:
  schemas:
    Review:
      type: object
      properties:
        id:
          type: integer
          description: Internal Judge.me review id.
        title:
          type: string
        body:
          type: string
        rating:
          type: integer
          minimum: 1
          maximum: 5
        product_external_id:
          type: string
          description: External (platform) product id the review belongs to.
        reviewer:
          $ref: '#/components/schemas/Reviewer'
        source:
          type: string
          description: Origin of the review (e.g. web, api, import).
        curated:
          type: string
          description: Curation/publish status of the review.
        published:
          type: boolean
        hidden:
          type: boolean
        verified:
          type: string
          description: Verification status of the buyer.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        pictures:
          type: array
          items:
            type: object
            properties:
              urls:
                type: object
                additionalProperties:
                  type: string
    ReviewList:
      type: object
      properties:
        current_page:
          type: integer
        per_page:
          type: integer
        reviews:
          type: array
          items:
            $ref: '#/components/schemas/Review'
    CreateReviewRequest:
      type: object
      required:
      - name
      - email
      - rating
      properties:
        name:
          type: string
          description: Reviewer display name.
        email:
          type: string
          description: Reviewer email address.
        rating:
          type: integer
          minimum: 1
          maximum: 5
        title:
          type: string
        body:
          type: string
        platform:
          type: string
          description: Source platform, e.g. shopify.
        id:
          type: string
          description: External product id the review is for; omit for a store review.
        url:
          type: string
          description: Product URL.
        picture_urls:
          type: array
          items:
            type: string
    Reviewer:
      type: object
      properties:
        id:
          type: integer
        external_id:
          type: string
        email:
          type: string
        name:
          type: string
        phone:
          type: string
        accepts_marketing:
          type: boolean
        unsubscribed_at:
          type: string
          format: date-time
          nullable: true
        tags:
          type: string
  securitySchemes:
    apiToken:
      type: apiKey
      in: query
      name: api_token
      description: Public or private Judge.me API token passed as a query parameter.
    shopDomain:
      type: apiKey
      in: query
      name: shop_domain
      description: The store's myshopify.com domain passed as a query parameter.