Rackspace Customer Service API

The Rackspace Customer Service API (4.24.0) manages customer accounts, contacts, and service relationships keyed by Rackspace Customer Number (RCN).

OpenAPI Specification

rackspace-customer-service.yaml Raw ↑
openapi: 3.0.3
info:
  title: Rackspace Customer Service API
  version: '1.0'
  description: >-
    The Rackspace Customer Service API exposes customer account, contact, and
    metadata operations. It lets internal users and integrations look up
    customer accounts the caller has access to (via tenant assignment),
    inspect account and customer history, and read service-level metadata
    associated with a customer resource.
  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-customer-service
  x-last-validated: '2026-05-05'
servers:
  - url: https://accounts.api.rackspacecloud.com
    description: Rackspace Customer Service production endpoint.
security:
  - AuthToken: []
tags:
  - name: CustomerAccounts
    description: Customer-account lookup and history operations.
  - name: Contacts
    description: Customer contact operations.
  - name: Metadata
    description: Resource-level customer metadata.
paths:
  /v1/customer_accounts:
    get:
      operationId: getListOfCustomerAccounts
      summary: Get List Of Customer Accounts
      description: Returns the list of customer accounts the caller has access to based on their tenants.
      tags: [CustomerAccounts]
      responses:
        '200':
          description: Customer accounts returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerAccountList' }
        '400': { $ref: '#/components/responses/BadRequest' }
        '401': { $ref: '#/components/responses/Unauthorized' }
        '403': { $ref: '#/components/responses/Forbidden' }
        '404': { $ref: '#/components/responses/NotFound' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/customer_accounts/{rcn}:
    parameters:
      - $ref: '#/components/parameters/RCN'
    get:
      operationId: getCustomerAccount
      summary: Get Customer Account
      description: Returns details about a single customer account.
      tags: [CustomerAccounts]
      responses:
        '200':
          description: Customer account returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerAccount' }
        '404': { $ref: '#/components/responses/NotFound' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/customer_accounts/{rcn}/status_history:
    parameters:
      - $ref: '#/components/parameters/RCN'
    get:
      operationId: getListOfCustomerAccountStatusHistory
      summary: Get List Of Customer Account Status History
      description: Returns the status-change history for the customer account.
      tags: [CustomerAccounts]
      responses:
        '200':
          description: Status history returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/AccountStatusHistory' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/customer_accounts/{rcn}/history:
    parameters:
      - $ref: '#/components/parameters/RCN'
    get:
      operationId: getListOfCustomerAccountHistory
      summary: Get List Of Customer Account History
      description: Returns the change history for the customer account.
      tags: [CustomerAccounts]
      responses:
        '200':
          description: Account history returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/AccountHistory' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/customers/{customerId}/history:
    parameters:
      - $ref: '#/components/parameters/CustomerId'
    get:
      operationId: getListOfCustomerHistory
      summary: Get List Of Customer History
      description: Returns the change history for the customer.
      tags: [CustomerAccounts]
      responses:
        '200':
          description: Customer history returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerHistory' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/customer_accounts/{rcn}/contacts:
    parameters:
      - $ref: '#/components/parameters/RCN'
    get:
      operationId: getListOfContacts
      summary: Get List Of Contacts
      description: Returns the list of contacts associated with the customer account.
      tags: [Contacts]
      responses:
        '200':
          description: Contacts returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/ContactList' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/customer_accounts/{rcn}/contacts/{contactId}:
    parameters:
      - $ref: '#/components/parameters/RCN'
      - in: path
        name: contactId
        required: true
        schema: { type: string }
    get:
      operationId: getContact
      summary: Get Contact
      description: Returns a single contact by ID.
      tags: [Contacts]
      responses:
        '200':
          description: Contact returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Contact' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/{resourceType}/{resourceId}/metadata:
    parameters:
      - $ref: '#/components/parameters/ResourceType'
      - $ref: '#/components/parameters/ResourceId'
    get:
      operationId: getListOfAllMetadataForResource
      summary: Get List Of All Metadata For Resource
      description: Returns all metadata key-value pairs attached to the specified resource.
      tags: [Metadata]
      responses:
        '200':
          description: Metadata returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/MetadataList' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/{resourceType}/{resourceId}/metadata/{key}:
    parameters:
      - $ref: '#/components/parameters/ResourceType'
      - $ref: '#/components/parameters/ResourceId'
      - in: path
        name: key
        required: true
        schema: { type: string }
    get:
      operationId: getSpecificMetadata
      summary: Get Specific Metadata
      description: Returns the metadata entry identified by the supplied key.
      tags: [Metadata]
      responses:
        '200':
          description: Metadata entry returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Metadata' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
  /v1/{resourceType}/{resourceId}/metadata/{key}/details:
    parameters:
      - $ref: '#/components/parameters/ResourceType'
      - $ref: '#/components/parameters/ResourceId'
      - in: path
        name: key
        required: true
        schema: { type: string }
    get:
      operationId: getDetailsForSpecificMetadata
      summary: Get Details For Specific Metadata
      description: Returns extended detail about the metadata entry, including who created it and when.
      tags: [Metadata]
      responses:
        '200':
          description: Metadata details returned.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/MetadataDetails' }
      x-microcks-operation: { delay: 0, dispatcher: FALLBACK }
components:
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
  parameters:
    RCN:
      in: path
      name: rcn
      required: true
      description: The Rackspace Customer Number (RCN) identifying the customer account.
      schema: { type: string }
    CustomerId:
      in: path
      name: customerId
      required: true
      schema: { type: string }
    ResourceType:
      in: path
      name: resourceType
      required: true
      description: Resource type the metadata is attached to (for example, customer_accounts).
      schema: { type: string }
    ResourceId:
      in: path
      name: resourceId
      required: true
      schema: { type: string }
  responses:
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema: { $ref: '#/components/schemas/Fault' }
    Unauthorized:
      description: Unauthorized.
      content:
        application/json:
          schema: { $ref: '#/components/schemas/Fault' }
    Forbidden:
      description: Forbidden.
      content:
        application/json:
          schema: { $ref: '#/components/schemas/Fault' }
    NotFound:
      description: Not found.
      content:
        application/json:
          schema: { $ref: '#/components/schemas/Fault' }
  schemas:
    CustomerAccount:
      title: CustomerAccount
      type: object
      properties:
        rcn: { type: string, description: Rackspace Customer Number. }
        name: { type: string }
        status: { type: string }
        createdAt: { type: string, format: date-time }
        updatedAt: { type: string, format: date-time }
        customerSegment: { type: string }
        billingCountry: { type: string }
        contacts:
          type: array
          items: { $ref: '#/components/schemas/Contact' }
        metadata:
          type: array
          items: { $ref: '#/components/schemas/Metadata' }
    CustomerAccountList:
      title: CustomerAccountList
      type: object
      properties:
        customer_accounts:
          type: array
          items: { $ref: '#/components/schemas/CustomerAccount' }
        totalEntries: { type: integer }
    Contact:
      title: Contact
      type: object
      properties:
        id: { type: string }
        firstName: { type: string }
        lastName: { type: string }
        email: { type: string, format: email }
        phone: { type: string }
        roles:
          type: array
          items: { type: string }
        primary: { type: boolean }
    ContactList:
      title: ContactList
      type: object
      properties:
        contacts:
          type: array
          items: { $ref: '#/components/schemas/Contact' }
    Metadata:
      title: Metadata
      type: object
      properties:
        key: { type: string }
        value: { type: string }
        category: { type: string }
    MetadataList:
      title: MetadataList
      type: object
      properties:
        metadata:
          type: array
          items: { $ref: '#/components/schemas/Metadata' }
    MetadataDetails:
      title: MetadataDetails
      allOf:
        - $ref: '#/components/schemas/Metadata'
        - type: object
          properties:
            createdAt: { type: string, format: date-time }
            createdBy: { type: string }
            updatedAt: { type: string, format: date-time }
            updatedBy: { type: string }
    AccountStatusHistory:
      title: AccountStatusHistory
      type: object
      properties:
        history:
          type: array
          items:
            type: object
            properties:
              status: { type: string }
              changedAt: { type: string, format: date-time }
              changedBy: { type: string }
              reason: { type: string }
    AccountHistory:
      title: AccountHistory
      type: object
      properties:
        history:
          type: array
          items:
            type: object
            properties:
              field: { type: string }
              previousValue: { type: string }
              newValue: { type: string }
              changedAt: { type: string, format: date-time }
              changedBy: { type: string }
    CustomerHistory:
      allOf:
        - $ref: '#/components/schemas/AccountHistory'
    Fault:
      title: Fault
      type: object
      properties:
        code: { type: integer }
        message: { type: string }
        details: { type: string }