Rainbow Contacts API

Manage and search contacts

OpenAPI Specification

rainbow-contacts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rainbow Application Portal Applications Contacts API
  description: The Rainbow Application Portal API allows developers to register and manage Rainbow applications, configure OAuth clients, and perform administrative operations on the Rainbow CPaaS platform by Alcatel-Lucent Enterprise.
  version: '1.0'
  contact:
    url: https://developers.openrainbow.com/
  x-tags:
  - Applications
  - Administration
  - OAuth
  - Provisioning
  - CPaaS
servers:
- url: https://openrainbow.com/api/rainbow
  description: Rainbow Production API
security:
- BearerAuth: []
tags:
- name: Contacts
  description: Manage and search contacts
paths:
  /enduser/v1.0/contacts:
    get:
      operationId: searchContacts
      summary: Search Contacts
      description: Search for contacts in the Rainbow directory by name, email, or other attributes. Returns enterprise and public directory results.
      tags:
      - Contacts
      parameters:
      - name: search
        in: query
        required: false
        description: Search keyword (name, email, or phone number)
        schema:
          type: string
          example: John
      - name: limit
        in: query
        required: false
        description: Maximum number of results to return
        schema:
          type: integer
          default: 25
          maximum: 100
      - name: offset
        in: query
        required: false
        description: Pagination offset
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: Contact search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /enduser/v1.0/contacts/{contactId}:
    get:
      operationId: getContact
      summary: Get Contact
      description: Returns the profile and presence information for a specific contact.
      tags:
      - Contacts
      parameters:
      - name: contactId
        in: path
        required: true
        description: Unique identifier of the contact
        schema:
          type: string
      responses:
        '200':
          description: Contact profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Contact not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ContactListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
    Contact:
      type: object
      properties:
        id:
          type: string
          description: Unique contact identifier
        displayName:
          type: string
          description: Contact's display name
        firstName:
          type: string
        lastName:
          type: string
        emails:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                format: email
              type:
                type: string
        phoneNumbers:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
              type:
                type: string
        presence:
          $ref: '#/components/schemas/Presence'
        company:
          type: string
        jobTitle:
          type: string
    Presence:
      type: object
      properties:
        status:
          type: string
          enum:
          - online
          - away
          - busy
          - dnd
          - offline
          description: Presence status
        statusMessage:
          type: string
          description: Custom status message
        since:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
        msg:
          type: string
        param:
          type: string
    ContactResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Contact'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer token from OAuth2 token endpoint