Hello Retail Recommendations API

Managed and unmanaged product recommendation requests.

OpenAPI Specification

hello-retail-recommendations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Hello Retail Customer Bias Recommendations API
  description: Hello Retail provides REST APIs for personalized product recommendations, on-site search, page-driven product listings, and customer bias retrieval. Endpoints are served from the core.helloretail.com host and accept JSON request bodies. Most endpoints expect a Bearer token issued from the My Hello Retail dashboard. The API powers e-commerce personalization use cases including product discovery, behavioral tracking, and merchandising.
  version: '1.0'
  contact:
    name: Hello Retail
    url: https://developer.helloretail.com/
  license:
    name: Proprietary
    url: https://www.helloretail.com/terms
servers:
- url: https://core.helloretail.com
  description: Hello Retail core serving host
tags:
- name: Recommendations
  description: Managed and unmanaged product recommendation requests.
paths:
  /serve/recoms:
    post:
      operationId: getRecommendations
      summary: Request product recommendations
      description: Returns one or more recommendation result sets, supporting both managed (pre-configured) and unmanaged (custom) recommendation requests. A single user identifier (trackingUserId, email, or customerId) may accompany the request to enable personalization.
      tags:
      - Recommendations
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecomRequest'
      responses:
        '200':
          description: Recommendation results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecomResponse'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
components:
  schemas:
    RecomRequest:
      type: object
      required:
      - requests
      properties:
        websiteUuid:
          type: string
          description: Identifies the website in Hello Retail.
        trackingUserId:
          type: string
          description: Hello Retail-generated tracking user ID.
        email:
          type: string
          format: email
        customerId:
          type: string
        includeRetailMediaInReview:
          type: boolean
        requests:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/ManagedRecomRequest'
            - $ref: '#/components/schemas/UnmanagedRecomRequest'
    UnmanagedRecomRequest:
      type: object
      required:
      - trackingKey
      - count
      - sources
      properties:
        trackingKey:
          type: string
          pattern: ^[0-9a-zA-Z-]{1,100}$
        count:
          type: integer
          minimum: 1
        sources:
          type: array
          items:
            $ref: '#/components/schemas/ProductSource'
        fields:
          type: array
          items:
            type: string
        hideAdditionalVariants:
          type: boolean
          default: true
        context:
          type: object
          additionalProperties: true
    ProductSource:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - TOP
          - MOST_BOUGHT
          - MOST_VIEWED
          - ALTERNATIVES
          - BOUGHT_TOGETHER
          - RETARGETED
          - RECENTLY_BOUGHT
        context:
          type: object
          additionalProperties: true
    ManagedRecomRequest:
      type: object
      required:
      - key
      - format
      properties:
        key:
          type: string
          description: Recom box identifier configured in My Hello Retail.
        format:
          type: string
          enum:
          - html
          - json
        fields:
          type: array
          items:
            type: string
        context:
          type: object
          additionalProperties: true
        deviceType:
          type: string
          enum:
          - DESKTOP
          - MOBILE
    Product:
      type: object
      properties:
        title:
          type: string
        productNumber:
          type: string
        imgUrl:
          type: string
          format: uri
        price:
          type: number
        inStock:
          type: boolean
        extraData:
          type: object
          additionalProperties: true
        extraDataNumber:
          type: object
          additionalProperties:
            type: number
        extraDataList:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    RecomResponse:
      type: object
      properties:
        success:
          type: boolean
        responses:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              trackingKey:
                type: string
              success:
                type: boolean
              products:
                type: array
                items:
                  $ref: '#/components/schemas/Product'
              html:
                type: string
              code:
                type: string
              message:
                type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
externalDocs:
  description: Hello Retail Developer Documentation
  url: https://developer.helloretail.com/