Rackspace Offer API

The Rackspace Offer API (2.0) exposes the catalog of product offers and their metadata.

OpenAPI Specification

rackspace-offer.yaml Raw ↑
openapi: 3.0.3
info:
  title: Rackspace Offer API
  version: '2.0'
  description: >-
    The Rackspace Offer API (v2) exposes the Rackspace offerings catalog,
    including offerings, products, currency, and pricing grids (commit grids,
    volume grids). It supports listing offerings by line-of-business and
    status, retrieving products, and computing discounts via commit and
    volume grids.
  contact:
    name: Rackspace Technology
    url: https://www.rackspace.com/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  x-generated-from: documentation
  x-source-url: https://github.com/rackerlabs/docs-offerings
  x-last-validated: '2026-05-05'
servers:
  - url: https://offerings.api.rackspacecloud.com
    description: Rackspace Offerings API endpoint.
security:
  - AuthToken: []
tags:
  - name: Offerings
    description: Offering catalog operations.
  - name: Products
    description: Product catalog operations.
  - name: Currency
    description: Currency lookup.
  - name: Pricing
    description: Commit and volume pricing grid operations.
paths:
  /v2/offerings:
    get:
      operationId: getOfferings
      summary: Get Offerings
      description: Lists Rackspace offerings available in the product catalog.
      tags: [Offerings]
      parameters:
        - $ref: '#/components/parameters/LineOfBusiness'
        - $ref: '#/components/parameters/Status'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Marker'
      responses:
        '200':
          description: Offerings returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/OfferingList' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/products:
    get:
      operationId: getProducts
      summary: Get Products
      description: Lists Rackspace products under an offering.
      tags: [Products]
      parameters:
        - in: query
          name: offeringCode
          schema: { type: string }
        - in: query
          name: offeringVersion
          schema: { type: integer }
        - $ref: '#/components/parameters/Status'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Marker'
      responses:
        '200':
          description: Products returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/ProductList' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/products/{productCode}:
    parameters:
      - in: path
        name: productCode
        required: true
        schema: { type: string }
    get:
      operationId: getProduct
      summary: Get Product
      description: Returns a single product by its product code.
      tags: [Products]
      responses:
        '200':
          description: Product returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Product' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/currencies/{currencyCode}:
    parameters:
      - in: path
        name: currencyCode
        required: true
        description: ISO-4217 currency code.
        schema: { type: string, minLength: 3, maxLength: 3 }
    get:
      operationId: getCurrency
      summary: Get Currency
      description: Returns currency metadata.
      tags: [Currency]
      responses:
        '200':
          description: Currency returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Currency' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/commitGrids:
    get:
      operationId: getCommitGrids
      summary: Get Commit Grids
      description: Lists commit-pricing grids.
      tags: [Pricing]
      parameters:
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Marker'
      responses:
        '200':
          description: Commit grids returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CommitGridList' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/commitGrids/{gridId}:
    parameters:
      - in: path
        name: gridId
        required: true
        schema: { type: string }
    get:
      operationId: getCommitGrid
      summary: Get Commit Grid
      tags: [Pricing]
      responses:
        '200':
          description: Commit grid returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CommitGrid' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/volumeGrids:
    get:
      operationId: getVolumeGrids
      summary: Get Volume Grids
      description: Lists volume-pricing grids.
      tags: [Pricing]
      responses:
        '200':
          description: Volume grids returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/VolumeGridList' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/volumeGrids/{gridId}:
    parameters:
      - in: path
        name: gridId
        required: true
        schema: { type: string }
    get:
      operationId: getVolumeGrid
      summary: Get Volume Grid
      tags: [Pricing]
      responses:
        '200':
          description: Volume grid returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/VolumeGrid' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v2/calculate/discount:
    post:
      operationId: calculateDiscount
      summary: Calculate Discount
      description: Computes the discounted price for a quantity given the applicable commit/volume grids.
      tags: [Pricing]
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/DiscountCalculationRequest' }
      responses:
        '200':
          description: Discount calculation result returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/DiscountCalculationResponse' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
components:
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
  parameters:
    LineOfBusiness:
      in: query
      name: lineOfBusiness
      required: false
      description: The Rackspace line of business associated with the offering (for example, US_CLOUD).
      schema: { type: string }
    Status:
      in: query
      name: status
      required: false
      schema: { type: string, enum: [ACTIVE, INACTIVE], default: ACTIVE }
    Limit:
      in: query
      name: limit
      required: false
      schema: { type: integer, default: 100, maximum: 100 }
    Marker:
      in: query
      name: marker
      required: false
      description: Pagination marker (the starting point for the next batch of items).
      schema: { type: string }
  schemas:
    Offering:
      title: Offering
      type: object
      properties:
        offeringCode: { type: string }
        offeringVersion: { type: integer }
        name: { type: string }
        description: { type: string }
        status: { type: string, enum: [ACTIVE, INACTIVE] }
        lineOfBusiness: { type: string }
        startDate: { type: string, format: date }
        endDate: { type: string, format: date }
    OfferingList:
      title: OfferingList
      type: object
      properties:
        offerings:
          type: array
          items: { $ref: '#/components/schemas/Offering' }
        links:
          type: array
          items: { $ref: '#/components/schemas/Link' }
    Product:
      title: Product
      type: object
      properties:
        productCode: { type: string }
        productVersion: { type: integer }
        name: { type: string }
        description: { type: string }
        offeringCode: { type: string }
        offeringVersion: { type: integer }
        status: { type: string, enum: [ACTIVE, INACTIVE] }
        unitOfMeasure: { type: string }
        currency: { type: string }
        listPrice: { type: number, format: float }
    ProductList:
      title: ProductList
      type: object
      properties:
        products:
          type: array
          items: { $ref: '#/components/schemas/Product' }
        links:
          type: array
          items: { $ref: '#/components/schemas/Link' }
    Currency:
      title: Currency
      type: object
      properties:
        code: { type: string }
        name: { type: string }
        symbol: { type: string }
    CommitGrid:
      title: CommitGrid
      type: object
      properties:
        id: { type: string }
        name: { type: string }
        currency: { type: string }
        tiers:
          type: array
          items:
            type: object
            properties:
              minCommit: { type: number }
              maxCommit: { type: number }
              discountPercent: { type: number }
    CommitGridList:
      title: CommitGridList
      type: object
      properties:
        commitGrids:
          type: array
          items: { $ref: '#/components/schemas/CommitGrid' }
    VolumeGrid:
      title: VolumeGrid
      type: object
      properties:
        id: { type: string }
        name: { type: string }
        currency: { type: string }
        tiers:
          type: array
          items:
            type: object
            properties:
              minVolume: { type: number }
              maxVolume: { type: number }
              discountPercent: { type: number }
    VolumeGridList:
      title: VolumeGridList
      type: object
      properties:
        volumeGrids:
          type: array
          items: { $ref: '#/components/schemas/VolumeGrid' }
    DiscountCalculationRequest:
      title: DiscountCalculationRequest
      type: object
      required: [productCode, quantity]
      properties:
        productCode: { type: string }
        quantity: { type: number }
        currency: { type: string }
        commitGridId: { type: string }
        volumeGridId: { type: string }
    DiscountCalculationResponse:
      title: DiscountCalculationResponse
      type: object
      properties:
        productCode: { type: string }
        quantity: { type: number }
        listPrice: { type: number }
        discountPercent: { type: number }
        finalPrice: { type: number }
        currency: { type: string }
    Link:
      title: Link
      type: object
      properties:
        rel: { type: string }
        href: { type: string, format: uri }