Rainbow Contacts API
REST API for searching, listing, and managing contacts in the Rainbow directory, including enterprise contacts and public profiles.
REST API for searching, listing, and managing contacts in the Rainbow directory, including enterprise contacts and public profiles.
openapi: 3.0.3
info:
title: Rainbow Contacts API
description: >-
REST API for searching, listing, and managing contacts in the Rainbow
directory. Supports enterprise contact search, personal contact management,
and user profile retrieval within the Rainbow CPaaS platform by
Alcatel-Lucent Enterprise.
version: '1.0'
contact:
url: https://developers.openrainbow.com/
x-tags:
- Contacts
- Directory
- Search
- CPaaS
servers:
- url: https://openrainbow.com/api/rainbow
description: Rainbow Production API
security:
- BearerAuth: []
tags:
- name: Contacts
description: Manage and search contacts
- name: Users
description: User profile and presence operations
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'
/enduser/v1.0/users/me:
get:
operationId: getMyProfile
summary: Get My Profile
description: Returns the authenticated user's own profile information.
tags:
- Users
responses:
'200':
description: Authenticated user's profile
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
operationId: updateMyProfile
summary: Update My Profile
description: Updates the authenticated user's profile information.
tags:
- Users
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProfileRequest'
responses:
'200':
description: Updated profile
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/enduser/v1.0/users/me/presence:
put:
operationId: updatePresence
summary: Update Presence
description: Update the authenticated user's presence status (available, away, busy, dnd).
tags:
- Users
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePresenceRequest'
responses:
'200':
description: Presence updated
content:
application/json:
schema:
$ref: '#/components/schemas/PresenceResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Bearer token obtained via Rainbow OAuth2 authentication
schemas:
ContactListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Contact'
total:
type: integer
limit:
type: integer
offset:
type: integer
ContactResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Contact'
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
UserProfileResponse:
type: object
properties:
data:
$ref: '#/components/schemas/UserProfile'
UserProfile:
type: object
properties:
id:
type: string
displayName:
type: string
firstName:
type: string
lastName:
type: string
loginEmail:
type: string
format: email
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
UpdateProfileRequest:
type: object
properties:
firstName:
type: string
lastName:
type: string
jobTitle:
type: string
UpdatePresenceRequest:
type: object
required: [presence]
properties:
presence:
type: string
enum: [online, away, busy, dnd]
status:
type: string
description: Custom status message
PresenceResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Presence'
ErrorResponse:
type: object
properties:
code:
type: integer
msg:
type: string
param:
type: string