Best Buy Recommendations API

Customer behavior-based product recommendations

OpenAPI Specification

best-buy-recommendations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Best Buy Products Recommendations API
  description: Access over one million current and historical Best Buy products with real-time pricing, availability, specifications, images, customer reviews, and categorization data. Supports detailed queries by SKU, keyword search, and filtering across all product attributes.
  version: 1.0.0
  contact:
    url: https://developer.bestbuy.com
  x-generated-from: documentation
servers:
- url: https://api.bestbuy.com/v1
  description: Best Buy API v1
security:
- apiKey: []
tags:
- name: Recommendations
  description: Customer behavior-based product recommendations
paths:
  /products/trendingViewed:
    get:
      operationId: getTrendingProducts
      summary: Best Buy Get Trending Products
      description: Returns the top 10 products with the highest view velocity over a rolling 3-hour window. Requires a minimum of 50 page views per hour to qualify.
      tags:
      - Recommendations
      parameters:
      - name: apiKey
        in: query
        required: true
        description: Your Best Buy developer API key.
        schema:
          type: string
        example: YourAPIKey
      - name: categoryId
        in: query
        required: false
        description: Filter trending products to a specific category.
        schema:
          type: string
        example: abcat0500000
      - name: format
        in: query
        required: false
        description: Response format - json only for recommendations.
        schema:
          type: string
          default: json
        example: json
      responses:
        '200':
          description: Successful response with trending products.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationsResponse'
              examples:
                GetTrendingProducts200Example:
                  summary: Default getTrendingProducts 200 response
                  x-microcks-default: true
                  value:
                    metadata:
                      resultSet:
                        count: 10
                    results:
                    - sku: 1234567
                      names:
                        title: Sample Laptop 15" 16GB RAM
                      images:
                        standard: https://pisces.bbystatic.com/image2/BestBuy_US/images/products/1234/1234567_sd.jpg
                      prices:
                        regular: 999.99
                        current: 849.99
                      links:
                        product: https://api.bestbuy.com/v1/products/1234567.json
                        web: https://www.bestbuy.com/site/sample-laptop/1234567.p
                        addToCart: https://www.bestbuy.com/cart/api/v1/addToCart
                      rank: 1
        '401':
          description: Unauthorized - missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /products/mostViewed:
    get:
      operationId: getMostViewedProducts
      summary: Best Buy Get Most Viewed Products
      description: Returns the top 10 most frequently viewed products. Data is refreshed every 2 hours using a 48-hour accumulation window.
      tags:
      - Recommendations
      parameters:
      - name: apiKey
        in: query
        required: true
        description: Your Best Buy developer API key.
        schema:
          type: string
        example: YourAPIKey
      - name: categoryId
        in: query
        required: false
        description: Filter most viewed products to a specific category.
        schema:
          type: string
        example: abcat0500000
      - name: format
        in: query
        required: false
        description: Response format - json only.
        schema:
          type: string
          default: json
        example: json
      responses:
        '200':
          description: Successful response with most viewed products.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationsResponse'
              examples:
                GetMostViewedProducts200Example:
                  summary: Default getMostViewedProducts 200 response
                  x-microcks-default: true
                  value:
                    metadata:
                      resultSet:
                        count: 10
                    results:
                    - sku: 2345678
                      names:
                        title: Sample Smartphone 128GB
                      images:
                        standard: https://pisces.bbystatic.com/image2/BestBuy_US/images/products/2345/2345678_sd.jpg
                      prices:
                        regular: 799.99
                        current: 699.99
                      links:
                        product: https://api.bestbuy.com/v1/products/2345678.json
                        web: https://www.bestbuy.com/site/sample-smartphone/2345678.p
                        addToCart: https://www.bestbuy.com/cart/api/v1/addToCart
                      rank: 1
        '401':
          description: Unauthorized - missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /products/{sku}/alsoViewed:
    get:
      operationId: getAlsoViewedProducts
      summary: Best Buy Get Also Viewed Products
      description: Returns products browsed alongside a specific SKU, based on a 30-day behavioral window of co-viewing patterns.
      tags:
      - Recommendations
      parameters:
      - name: sku
        in: path
        required: true
        description: The SKU number to get also-viewed recommendations for.
        schema:
          type: integer
        example: 1234567
      - name: apiKey
        in: query
        required: true
        description: Your Best Buy developer API key.
        schema:
          type: string
        example: YourAPIKey
      - name: format
        in: query
        required: false
        description: Response format - json only.
        schema:
          type: string
          default: json
        example: json
      responses:
        '200':
          description: Successful response with also-viewed products.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationsResponse'
              examples:
                GetAlsoViewedProducts200Example:
                  summary: Default getAlsoViewedProducts 200 response
                  x-microcks-default: true
                  value:
                    metadata:
                      resultSet:
                        count: 5
                    results:
                    - sku: 3456789
                      names:
                        title: Sample Laptop Bag 15"
                      prices:
                        regular: 49.99
                        current: 39.99
                      rank: 1
        '404':
          description: No recommendations found for the given SKU.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /products/{sku}/alsoBought:
    get:
      operationId: getAlsoBoughtProducts
      summary: Best Buy Get Also Bought Products
      description: Returns products purchased together with a specific SKU, based on a 30-day purchase history window.
      tags:
      - Recommendations
      parameters:
      - name: sku
        in: path
        required: true
        description: The SKU number to get also-bought recommendations for.
        schema:
          type: integer
        example: 1234567
      - name: apiKey
        in: query
        required: true
        description: Your Best Buy developer API key.
        schema:
          type: string
        example: YourAPIKey
      - name: format
        in: query
        required: false
        description: Response format - json only.
        schema:
          type: string
          default: json
        example: json
      responses:
        '200':
          description: Successful response with also-bought products.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationsResponse'
              examples:
                GetAlsoBoughtProducts200Example:
                  summary: Default getAlsoBoughtProducts 200 response
                  x-microcks-default: true
                  value:
                    metadata:
                      resultSet:
                        count: 5
                    results:
                    - sku: 4567890
                      names:
                        title: Sample Laptop Charger
                      prices:
                        regular: 79.99
                        current: 59.99
                      rank: 1
        '404':
          description: No recommendations found for the given SKU.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    RecommendedProduct:
      title: RecommendedProduct
      type: object
      description: A recommended product with essential display attributes.
      properties:
        sku:
          type: integer
          description: Product SKU number.
          example: 1234567
        names:
          type: object
          description: Product name variations.
          properties:
            title:
              type: string
              description: Product display title.
              example: Sample Laptop 15" 16GB RAM
        images:
          type: object
          description: Product image URLs.
          properties:
            standard:
              type: string
              description: Standard product image URL.
              example: https://pisces.bbystatic.com/image2/BestBuy_US/images/products/1234/1234567_sd.jpg
        prices:
          type: object
          description: Product pricing information.
          properties:
            regular:
              type: number
              format: double
              description: Regular price in USD.
              example: 999.99
            current:
              type: number
              format: double
              description: Current (sale) price in USD.
              example: 849.99
        links:
          type: object
          description: Related URLs for the product.
          properties:
            product:
              type: string
              description: API URL for full product data.
              example: https://api.bestbuy.com/v1/products/1234567.json
            web:
              type: string
              description: URL of the product page on bestbuy.com.
              example: https://www.bestbuy.com/site/sample-laptop/1234567.p
            addToCart:
              type: string
              description: URL for adding to cart.
              example: https://www.bestbuy.com/cart/api/v1/addToCart
        rank:
          type: integer
          description: Rank position in the recommendation list.
          example: 1
    ErrorResponse:
      title: ErrorResponse
      type: object
      description: Error response returned when a request fails.
      properties:
        status:
          type: integer
          description: HTTP status code.
          example: 400
        error:
          type: string
          description: Error type or code.
          example: Bad Request
        message:
          type: string
          description: Human-readable description of the error.
          example: Invalid query parameter provided.
    RecommendationsResponse:
      title: RecommendationsResponse
      type: object
      description: Response containing recommended product list.
      properties:
        metadata:
          type: object
          description: Metadata about the result set.
          properties:
            resultSet:
              type: object
              properties:
                count:
                  type: integer
                  description: Number of results returned.
                  example: 10
        results:
          type: array
          description: Array of recommended product objects.
          items:
            $ref: '#/components/schemas/RecommendedProduct'
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: apiKey
      description: API key obtained by registering at developer.bestbuy.com.