RMP v2.0 Complete API Reference
Comprehensive documentation for all API endpoints and XIMSS protocol functions
XIMSS Protocol Functions
Authentication & Authorization
Authenticate with CommuniGate Pro server and receive JWT token
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | User email address |
password |
string | Yes | User password |
server |
string | No | CommuniGate Pro server (extracted from email domain if not provided) |
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"email": "user@domain.com",
"realName": "John Doe",
"isDomainAdmin": false,
"isServerAdmin": false
},
"sessionId": "1-xxxxx-xxxxx",
"expiresIn": 3600
}
Refresh an expired JWT token using refresh token
| Header | Type | Required | Description |
|---|---|---|---|
Authorization |
string | Yes | Bearer [refresh-token] |
Check if authenticated user has admin privileges
{
"isAdmin": true,
"isDomainAdmin": true,
"isServerAdmin": false,
"adminDomains": ["domain.com", "sub.domain.com"]
}
Terminate session and invalidate JWT token
Calendar Operations
List all calendars accessible to authenticated user
{
"success": true,
"calendars": [
{
"name": "Calendar",
"type": "personal",
"access": "read-write"
},
{
"name": "Team Calendar",
"type": "shared",
"access": "read-only"
}
]
}
Get events from a specific calendar
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate |
string | Yes | Start date (ISO 8601) |
endDate |
string | Yes | End date (ISO 8601) |
includeRecurring |
boolean | No | Include recurring events (default: true) |
Create a new calendar event
| Body Parameter | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Event title |
startTime |
string | Yes | Start time (ISO 8601) |
endTime |
string | Yes | End time (ISO 8601) |
location |
string | No | Event location |
attendees |
array | No | Array of attendee email addresses |
sendInvitations |
boolean | No | Send email invitations (default: true) |
Get free/busy information for calendar
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | Email address to check |
startTime |
string | Yes | Start time (ISO 8601) |
endTime |
string | Yes | End time (ISO 8601) |
{
"success": true,
"periods": [
{
"from": "2025-08-30T10:00:00Z",
"till": "2025-08-30T11:00:00Z",
"type": "BUSY"
},
{
"from": "2025-08-30T14:00:00Z",
"till": "2025-08-30T15:30:00Z",
"type": "TENTATIVE"
}
]
}
Cancel/delete a calendar event
| Parameter | Type | Required | Description |
|---|---|---|---|
sendCancellation |
boolean | No | Send cancellation notices (default: true) |
recurrenceId |
string | No | For recurring events, specific occurrence ID |
Resource Management
List all available resources
| Parameter | Type | Required | Description |
|---|---|---|---|
type |
string | No | Filter by resource type |
category |
string | No | Filter by category |
available |
boolean | No | Only show available resources |
page |
number | No | Page number (default: 1) |
limit |
number | No | Items per page (default: 50) |
{
"success": true,
"resources": [
{
"id": "room-01@confroom.resources.domain.com",
"name": "Conference Room 01",
"type": "conference-room",
"category": "meeting-resources",
"capacity": 10,
"features": ["projector", "whiteboard", "video-conferencing"],
"customFields": {
"floor": "3rd",
"building": "Main"
}
}
],
"total": 150,
"page": 1,
"pages": 3
}
Get detailed information about a specific resource
Create a new resource (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Resource name |
type |
string | Yes | Resource type ID |
category |
string | Yes | Resource category |
customFields |
object | No | Custom field values |
Update resource information (Admin only)
Delete a resource (Admin only)
Check resource availability for specific time range
| Parameter | Type | Required | Description |
|---|---|---|---|
startTime |
string | Yes | Start time (ISO 8601) |
endTime |
string | Yes | End time (ISO 8601) |
Booking Operations
List bookings for authenticated user
| Parameter | Type | Required | Description |
|---|---|---|---|
status |
string | No | Filter by status (confirmed, tentative, cancelled) |
startDate |
string | No | Filter bookings after this date |
endDate |
string | No | Filter bookings before this date |
resourceId |
string | No | Filter by specific resource |
Create a new booking
| Body Parameter | Type | Required | Description |
|---|---|---|---|
resourceId |
string | Yes | Resource to book |
title |
string | Yes | Booking title |
startTime |
string | Yes | Start time (ISO 8601) |
endTime |
string | Yes | End time (ISO 8601) |
attendees |
array | No | List of attendee emails |
sendInvitations |
boolean | No | Send invitations (default: false for direct write) |
services |
array | No | Additional services (catering, equipment) |
{
"success": true,
"booking": {
"id": "RMP-1755199070886-94jjgepj3",
"resourceId": "room-01@confroom.resources.domain.com",
"title": "Team Meeting",
"startTime": "2025-08-30T14:00:00Z",
"endTime": "2025-08-30T15:00:00Z",
"status": "confirmed",
"organizer": "user@domain.com",
"attendees": ["user2@domain.com", "user3@domain.com"],
"calendarEventId": "13"
}
}
Update an existing booking
Cancel a booking
| Parameter | Type | Required | Description |
|---|---|---|---|
sendCancellation |
boolean | No | Send cancellation notices (default: true) |
Check for booking conflicts
| Body Parameter | Type | Required | Description |
|---|---|---|---|
resources |
array | Yes | Resource IDs to check |
startTime |
string | Yes | Start time |
endTime |
string | Yes | End time |
Resource Types
List all resource types and categories
{
"success": true,
"categories": [
{
"id": "meeting-resources",
"name": "Meeting Resources",
"icon": "bi-door-open"
},
{
"id": "equipment",
"name": "Equipment",
"icon": "bi-laptop"
}
],
"types": [
{
"id": "conference-room",
"name": "Conference Room",
"category": "meeting-resources",
"fields": [
{
"name": "capacity",
"type": "number",
"required": true
},
{
"name": "features",
"type": "multiselect",
"options": ["projector", "whiteboard", "video-conferencing"]
}
]
}
]
}
Create a new resource type (Admin only)
Update resource type configuration (Admin only)
Contacts & Group Management
Get user's contacts from Contacts folder
| Parameter | Type | Required | Description |
|---|---|---|---|
search |
string | No | Search term for filtering |
limit |
number | No | Maximum results (default: 100) |
{
"success": true,
"contacts": [
{
"uid": "contact-123",
"name": "John Doe",
"email": "john@domain.com",
"phone": "+1234567890",
"organization": "ACME Corp"
}
]
}
Get contacts from ALL address books
| Parameter | Type | Required | Description |
|---|---|---|---|
addressBook |
string | No | Specific address book to search |
includeGroups |
boolean | No | Include contact groups (default: true) |
{
"success": true,
"addressBooks": ["Contacts", "adressbuch2", "Business Contacts"],
"contacts": [
{
"email": "john@domain.com",
"name": "John Doe",
"phone": "+1234567890",
"addressBook": "Contacts"
}
],
"groups": [
{
"name": "[Development Team]",
"members": ["dev1@domain.com", "dev2@domain.com"],
"addressBook": "Contacts"
}
]
}
Create a new contact (vCard)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Contact full name |
email |
string | Yes | Email address |
phone |
string | No | Phone number |
organization |
string | No | Company/organization name |
addressBook |
string | No | Target address book (default: Contacts) |
Update an existing contact
Delete a contact
Get server groups and contact groups
{
"success": true,
"serverGroups": [
{
"name": "AllUsers",
"members": ["user1", "user2", "user3"]
},
{
"name": "Administrators",
"members": ["admin1", "admin2"]
}
],
"contactGroups": [
{
"name": "[Team Leaders]",
"members": ["leader1@domain.com", "leader2@domain.com"],
"description": "Project team leaders"
}
]
}
Create a new contact group
| Body Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Group name (will be wrapped in []) |
members |
array | Yes | Array of member email addresses |
description |
string | No | Group description |
User Management
List users in domain
| Parameter | Type | Required | Description |
|---|---|---|---|
domain |
string | No | Domain to list users from (default: current domain) |
includeResources |
boolean | No | Include resource accounts (default: false) |
search |
string | No | Search filter for user names/emails |
limit |
number | No | Maximum results (default: 100) |
{
"success": true,
"users": [
{
"email": "user1@domain.com",
"realName": "John Doe",
"type": "user",
"hasCalendar": true,
"isAdmin": false
},
{
"email": "user2@domain.com",
"realName": "Jane Smith",
"type": "user",
"hasCalendar": true,
"isAdmin": true
}
],
"total": 45
}
Get detailed user information
{
"success": true,
"user": {
"email": "user@domain.com",
"realName": "John Doe",
"type": "user",
"hasCalendar": true,
"isAdmin": false,
"settings": {
"timezone": "America/New_York",
"language": "en-US",
"dateFormat": "MM/DD/YYYY"
},
"quotas": {
"mailbox": "10GB",
"fileStorage": "5GB"
}
}
}
Create a new user account (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | User email address |
password |
string | Yes | Initial password |
realName |
string | Yes | User's full name |
createCalendar |
boolean | No | Create calendar mailbox (default: true) |
createContacts |
boolean | No | Create contacts folder (default: true) |
isAdmin |
boolean | No | Grant admin privileges (default: false) |
Update user account settings (Admin only)
Delete a user account (Admin only)
| Parameter | Type | Required | Description |
|---|---|---|---|
deleteData |
boolean | No | Delete all user data (default: false) |
Reset user password (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
newPassword |
string | Yes | New password |
requireChange |
boolean | No | Force password change on next login |
Domain Operations
List all domains (Admin only)
{
"success": true,
"domains": [
{
"name": "domain.com",
"type": "primary",
"users": 150,
"resources": 75,
"created": "2024-01-15T00:00:00Z"
},
{
"name": "confroom.resources.domain.com",
"type": "resource-subdomain",
"parent": "domain.com",
"resources": 25
}
]
}
Create a new domain or subdomain (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
domain |
string | Yes | Domain name |
type |
string | No | Domain type (primary, resource-subdomain) |
adminEmail |
string | No | Domain admin email |
Get domain settings (Admin only)
Update domain settings (Admin only)
File Operations
List files in user's file storage
| Parameter | Type | Required | Description |
|---|---|---|---|
path |
string | No | Directory path (default: /) |
account |
string | No | Account to access (admin only) |
{
"success": true,
"files": [
{
"name": "document.pdf",
"type": "file",
"size": 1024000,
"modified": "2025-08-30T10:00:00Z",
"mimeType": "application/pdf"
},
{
"name": "RMPSettings",
"type": "directory",
"modified": "2025-08-30T09:00:00Z"
}
]
}
Download a file
Upload a file
| Body Parameter | Type | Required | Description |
|---|---|---|---|
file |
file | Yes | File to upload (multipart/form-data) |
path |
string | No | Target directory path |
Delete a file
Search & Analytics
Global search across resources, users, and bookings
| Body Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | Yes | Search query |
types |
array | No | Entity types to search (resources, users, bookings) |
limit |
number | No | Max results per type (default: 10) |
{
"success": true,
"results": {
"resources": [
{
"id": "room-01@confroom.resources.domain.com",
"name": "Conference Room 01",
"type": "conference-room",
"score": 0.95
}
],
"users": [
{
"email": "john@domain.com",
"realName": "John Doe",
"score": 0.85
}
],
"bookings": [
{
"id": "RMP-123456",
"title": "Team Meeting",
"startTime": "2025-08-30T14:00:00Z",
"score": 0.75
}
]
}
}
Get usage analytics (Admin only)
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate |
string | Yes | Start date (ISO 8601) |
endDate |
string | Yes | End date (ISO 8601) |
groupBy |
string | No | Grouping (day, week, month) |
Get most booked resources
| Parameter | Type | Required | Description |
|---|---|---|---|
period |
string | No | Time period (week, month, year) |
limit |
number | No | Number of results (default: 10) |
Admin Operations
Bulk create multiple resources (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
pattern |
string | Yes | Naming pattern with {n}, {nn}, {nnn} |
startNumber |
number | Yes | Starting number |
count |
number | Yes | Number to create |
type |
string | Yes | Resource type ID |
customFields |
object | No | Custom field values (supports patterns) |
{
"success": true,
"created": 10,
"resources": [
"room-01@confroom.resources.domain.com",
"room-02@confroom.resources.domain.com",
// ... more resources
]
}
Get system statistics and usage metrics (Admin only)
{
"success": true,
"statistics": {
"totalUsers": 150,
"totalResources": 75,
"totalBookings": 1234,
"activeBookings": 45,
"utilizationRate": 78.5,
"topResources": [
{
"id": "room-01",
"name": "Conference Room 01",
"bookings": 234,
"utilization": 85.2
}
],
"bookingTrends": {
"daily": [45, 52, 48, 61, 55],
"weekly": [312, 298, 345, 378]
}
}
}
Import resources from CSV/JSON (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
file |
file | Yes | CSV or JSON file |
format |
string | No | File format (csv, json) - auto-detected if not specified |
dryRun |
boolean | No | Validate without creating (default: false) |
Export all resources to CSV/JSON (Admin only)
| Parameter | Type | Required | Description |
|---|---|---|---|
format |
string | No | Export format (csv, json) - default: json |
includeBookings |
boolean | No | Include booking history |
Create system backup (Admin only)
Restore from backup (Admin only)
SaaS & Portal Operations
Register new SaaS customer subscription
| Body Parameter | Type | Required | Description |
|---|---|---|---|
companyName |
string | Yes | Company name |
emailDomain |
string | Yes | Company email domain |
adminEmail |
string | Yes | Administrator email |
services |
array | Yes | Selected services and plans |
deployment |
string | Yes | cloud or self-hosted |
region |
string | No | Preferred region (EU, US, Asia) |
{
"success": true,
"subscription": {
"id": "sub_123456",
"companyName": "ACME Corp",
"emailDomain": "acme.com",
"server": "cgpro.rmp.cloud",
"services": {
"rmp": {
"plan": "standard",
"price": 49.99
},
"email": {
"plan": "business",
"price": 9.99
}
},
"totalMonthly": 59.98,
"status": "active"
}
}
SaaS customer login with subscription lookup
| Body Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | User email |
password |
string | Yes | Password |
Note: Server is automatically determined from subscription data - no server field required
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"email": "user@acme.com",
"realName": "John Doe",
"company": "ACME Corp"
},
"subscription": {
"services": ["rmp", "email", "storage"],
"status": "active",
"expiresAt": "2025-12-31T23:59:59Z"
}
}
Get current subscription details
{
"success": true,
"subscription": {
"id": "sub_123456",
"status": "active",
"services": {
"rmp": {
"plan": "standard",
"users": 45,
"maxUsers": 50,
"resources": 95,
"maxResources": 100
},
"email": {
"plan": "business",
"storage": "42GB",
"maxStorage": "50GB"
}
},
"billing": {
"monthly": 59.98,
"nextBilling": "2025-09-01T00:00:00Z",
"paymentMethod": "credit_card"
}
}
}
Get available servers and capacity
{
"success": true,
"servers": [
{
"id": "cgpro-eu-1",
"name": "Europe Server 1",
"region": "EU",
"location": "Frankfurt, Germany",
"capacity": {
"current": 20,
"maximum": 100,
"percentage": 20
},
"status": "available",
"features": ["auto-backup", "high-availability"]
},
{
"id": "cgpro-us-1",
"name": "US East Server 1",
"region": "US",
"location": "Virginia, USA",
"capacity": {
"current": 45,
"maximum": 100,
"percentage": 45
},
"status": "available"
}
]
}
Upgrade subscription plan
| Body Parameter | Type | Required | Description |
|---|---|---|---|
service |
string | Yes | Service to upgrade (rmp, email, etc.) |
newPlan |
string | Yes | Target plan name |
Get billing invoices
WebSocket Real-time Events
Cache Management
Manually invalidate cache entries (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
pattern |
string | Yes | Cache key pattern to invalidate (supports wildcards) |
type |
string | No | Cache type (calendar, resource, user) |
{
"success": true,
"invalidated": 15,
"message": "Invalidated 15 cache entries matching pattern"
}
Get cache statistics (Admin only)
{
"success": true,
"stats": {
"hitRate": 0.85,
"totalKeys": 1234,
"memoryUsed": "45MB",
"evictions": 89,
"byType": {
"calendar": {
"keys": 456,
"hitRate": 0.92,
"avgTTL": 240
},
"resource": {
"keys": 234,
"hitRate": 0.88,
"avgTTL": 180
},
"freebusy": {
"keys": 544,
"hitRate": 0.79,
"avgTTL": 60
}
}
}
}
Pre-warm cache with specific data (Admin only)
| Body Parameter | Type | Required | Description |
|---|---|---|---|
type |
string | Yes | Data type to warm (calendar, resource, freebusy) |
targets |
array | Yes | List of calendar/resource IDs to pre-cache |
dateRange |
object | No | Date range for calendar data |
Get cache configuration (Admin only)
{
"success": true,
"config": {
"provider": "redis",
"maxMemory": "512MB",
"evictionPolicy": "allkeys-lru",
"ttlDefaults": {
"calendar": 300,
"resource": 300,
"freebusy": 60,
"user": 600
},
"namespacing": {
"enabled": true,
"pattern": "tenant:{domain}:{type}:{id}"
}
}
}
RMP v2.0 API Documentation
Author: [core] Information Technologies
Last Updated: August 2025