Shell Lubricants Order Management API

The Shell Lubricants Order Management API enables business customers and distributors to place and manage orders for Shell lubricants products. Supports order creation, status tracking, delivery scheduling, and product catalogue queries.

OpenAPI Specification

shell-lubricants-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Shell Lubricants API
  description: >-
    The Shell Lubricants API enables business customers and distributors to
    place and manage orders for Shell lubricants products, query the product
    catalogue, manage delivery schedules, and track orders.
  version: '1.0.0'
  contact:
    name: Shell Developer Portal
    url: https://developer.shell.com/
    email: [email protected]
  license:
    name: Shell API Terms
    url: https://www.shell.com/terms-and-conditions
  x-date: '2026-05-02'
servers:
  - url: https://api.shell.com/lubricants/v1
    description: Shell Lubricants API
security:
  - OAuth2: []
tags:
  - name: Orders
    description: Manage lubricants orders
  - name: Products
    description: Browse lubricants product catalogue
  - name: Accounts
    description: Manage customer accounts
paths:
  /orders:
    get:
      operationId: listOrders
      summary: List Orders
      description: Returns a list of lubricants orders for the account.
      tags:
        - Orders
      parameters:
        - name: accountNumber
          in: query
          required: true
          schema:
            type: string
        - name: status
          in: query
          description: Filter by order status
          schema:
            type: string
            enum: [Pending, Confirmed, Processing, Shipped, Delivered, Cancelled]
        - name: fromDate
          in: query
          schema:
            type: string
            format: date
        - name: toDate
          in: query
          schema:
            type: string
            format: date
        - name: page
          in: query
          schema:
            type: integer
        - name: pageSize
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: A list of orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
    post:
      operationId: placeOrder
      summary: Place Order
      description: Places a new lubricants order.
      tags:
        - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateRequest'
      responses:
        '201':
          description: Order placed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /orders/{orderId}:
    get:
      operationId: getOrder
      summary: Get Order
      description: Returns details for a specific lubricants order.
      tags:
        - Orders
      parameters:
        - name: orderId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /products:
    get:
      operationId: listProducts
      summary: List Products
      description: Returns the Shell lubricants product catalogue.
      tags:
        - Products
      parameters:
        - name: category
          in: query
          description: Filter by product category (engine oil, gear oil, hydraulic, etc.)
          schema:
            type: string
        - name: application
          in: query
          description: Filter by application type
          schema:
            type: string
        - name: page
          in: query
          schema:
            type: integer
        - name: pageSize
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: Product catalogue
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductListResponse'
  /products/{productId}:
    get:
      operationId: getProduct
      summary: Get Product
      description: Returns details for a specific lubricants product.
      tags:
        - Products
      parameters:
        - name: productId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Product details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
  /accounts/{accountNumber}:
    get:
      operationId: getAccount
      summary: Get Account
      description: Returns details for a lubricants customer account.
      tags:
        - Accounts
      parameters:
        - name: accountNumber
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LubricantsAccount'
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.shell.com/oauth/token
          scopes:
            lubricants.orders: Manage lubricants orders
            lubricants.products: Access product catalogue
  schemas:
    Order:
      type: object
      properties:
        orderId:
          type: string
        accountNumber:
          type: string
        status:
          type: string
          enum: [Pending, Confirmed, Processing, Shipped, Delivered, Cancelled]
        orderDate:
          type: string
          format: date-time
        expectedDeliveryDate:
          type: string
          format: date
        deliveryAddress:
          type: object
          properties:
            name:
              type: string
            street:
              type: string
            city:
              type: string
            postalCode:
              type: string
            country:
              type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        totalAmount:
          type: number
          format: float
        currency:
          type: string
        tracking:
          type: object
    OrderItem:
      type: object
      properties:
        productId:
          type: string
        productName:
          type: string
        quantity:
          type: number
          format: float
        unit:
          type: string
          enum: [litre, kg, drum, pail, can]
        unitPrice:
          type: number
          format: float
        totalPrice:
          type: number
          format: float
    OrderCreateRequest:
      type: object
      required:
        - accountNumber
        - deliveryAddress
        - items
      properties:
        accountNumber:
          type: string
        poNumber:
          type: string
          description: Customer purchase order number
        requestedDeliveryDate:
          type: string
          format: date
        deliveryAddress:
          type: object
        items:
          type: array
          items:
            type: object
            properties:
              productId:
                type: string
              quantity:
                type: number
              unit:
                type: string
        notes:
          type: string
    OrderListResponse:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'
        totalCount:
          type: integer
        currentPage:
          type: integer
        pageCount:
          type: integer
    Product:
      type: object
      properties:
        productId:
          type: string
        name:
          type: string
        brand:
          type: string
        category:
          type: string
        application:
          type: string
        viscosity:
          type: string
        description:
          type: string
        packagingOptions:
          type: array
          items:
            type: object
            properties:
              unit:
                type: string
              size:
                type: number
              price:
                type: number
        specifications:
          type: array
          items:
            type: string
        approvals:
          type: array
          items:
            type: string
    ProductListResponse:
      type: object
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        totalCount:
          type: integer
        currentPage:
          type: integer
        pageCount:
          type: integer
    LubricantsAccount:
      type: object
      properties:
        accountNumber:
          type: string
        companyName:
          type: string
        accountType:
          type: string
        creditLimit:
          type: number
        availableCredit:
          type: number
        currency:
          type: string
        paymentTerms:
          type: string
        primaryContact:
          type: object
          properties:
            name:
              type: string
            email:
              type: string
            phone:
              type: string