Ingram Micro Reseller API

The Ingram Micro Reseller API provides REST API access to product catalog, pricing, discounts, stock levels, order management, and order status for IT resellers. It uses OAuth 2.0 authentication and provides a sandbox environment for testing.

OpenAPI Specification

ingram-micro-reseller-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Ingram Micro Reseller API
  description: >-
    The Ingram Micro Reseller API provides REST API access to product catalog,
    pricing, discounts, stock levels, and order management for IT resellers.
  version: 1.0.0
  contact:
    name: Ingram Micro
    url: https://developer.ingrammicro.com/
servers:
  - url: https://api.ingrammicro.com/resellers/v6
    description: Production
paths:
  /catalog:
    get:
      operationId: getCatalog
      summary: Search Product Catalog
      description: Search the Ingram Micro product catalog.
      tags:
        - Catalog
      parameters:
        - name: keyword
          in: query
          schema:
            type: string
        - name: category
          in: query
          schema:
            type: string
        - name: pageSize
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductCatalog'
  /catalog/{ingramPartNumber}:
    get:
      operationId: getProductDetails
      summary: Get Product Details
      description: Get details for a specific product by Ingram part number.
      tags:
        - Catalog
      parameters:
        - name: ingramPartNumber
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
  /orders:
    post:
      operationId: createOrder
      summary: Create Order
      description: Create a new order with Ingram Micro.
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '201':
          description: Order created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /orders/{orderId}:
    get:
      operationId: getOrderStatus
      summary: Get Order Status
      description: Retrieve the status of a specific order.
      tags:
        - Orders
      parameters:
        - name: orderId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /pricing:
    post:
      operationId: getPricing
      summary: Get Pricing
      description: Retrieve pricing and availability for products.
      tags:
        - Pricing
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PricingRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PricingResponse'
tags:
  - name: Catalog
    description: Product catalog operations
  - name: Orders
    description: Order management operations
  - name: Pricing
    description: Pricing and availability operations
components:
  schemas:
    Product:
      type: object
      properties:
        ingramPartNumber:
          type: string
        vendorPartNumber:
          type: string
        description:
          type: string
        category:
          type: string
        vendorName:
          type: string
        upc:
          type: string
        availability:
          type: object
          properties:
            available:
              type: boolean
            totalAvailability:
              type: integer
    ProductCatalog:
      type: object
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        totalCount:
          type: integer
    Order:
      type: object
      properties:
        orderId:
          type: string
        status:
          type: string
        lines:
          type: array
          items:
            type: object
            properties:
              ingramPartNumber:
                type: string
              quantity:
                type: integer
              unitPrice:
                type: number
        createdAt:
          type: string
          format: date-time
    OrderRequest:
      type: object
      properties:
        customerOrderNumber:
          type: string
        shipTo:
          type: object
          properties:
            name:
              type: string
            address:
              type: string
            city:
              type: string
            state:
              type: string
            zip:
              type: string
        lines:
          type: array
          items:
            type: object
            properties:
              ingramPartNumber:
                type: string
              quantity:
                type: integer
    PricingRequest:
      type: object
      properties:
        products:
          type: array
          items:
            type: object
            properties:
              ingramPartNumber:
                type: string
    PricingResponse:
      type: object
      properties:
        products:
          type: array
          items:
            type: object
            properties:
              ingramPartNumber:
                type: string
              retailPrice:
                type: number
              customerPrice:
                type: number
              availability:
                type: boolean