Python API wrapper for Rocket.Chat's REST API, enabling developers to programmatically interact with Rocket.Chat servers for chat automation, bot development, and integration purposes
—
Server administration and configuration management including settings, permissions, roles, statistics, and integration management. Requires appropriate administrative permissions for most operations.
def settings_get(self, _id, **kwargs):
"""
Get server setting by ID.
Parameters:
- _id (str): Setting ID
Returns:
requests.Response: Setting value
"""
def settings_update(self, _id, value, **kwargs):
"""
Update server setting.
Parameters:
- _id (str): Setting ID
- value: New setting value
Returns:
requests.Response: Update result
"""
def settings(self, **kwargs):
"""
List all private settings (admin only).
Parameters:
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: List of settings
"""
def settings_public(self, **kwargs):
"""
List public settings.
Returns:
requests.Response: List of public settings
"""
def settings_oauth(self, **kwargs):
"""
List OAuth service configurations.
Returns:
requests.Response: OAuth services
"""
def settings_addcustomoauth(self, name, **kwargs):
"""
Add custom OAuth service.
Parameters:
- name (str): OAuth service name
Returns:
requests.Response: Addition result
"""def permissions_list_all(self, **kwargs):
"""
List all server permissions.
Parameters:
- updatedSince (str, optional): Filter by update date
Returns:
requests.Response: List of permissions
"""
def permissions_update(self, permissions, **kwargs):
"""
Update server permissions.
Parameters:
- permissions (list): List of permission objects to update
Returns:
requests.Response: Update result
"""def roles_list(self, **kwargs):
"""
List all server roles.
Returns:
requests.Response: List of roles
"""
def roles_create(self, name, **kwargs):
"""
Create a new role.
Parameters:
- name (str): Role name
- scope (str, optional): Role scope ('Global' or 'Rooms')
- description (str, optional): Role description
Returns:
requests.Response: Role creation result
"""
def roles_add_user_to_role(self, role_name, username, **kwargs):
"""
Assign role to user.
Parameters:
- role_name (str): Role name
- username (str): Username
- roomId (str, optional): Room ID for room-scoped roles
Returns:
requests.Response: Assignment result
"""
def roles_remove_user_from_role(self, role_name, username, **kwargs):
"""
Remove role from user.
Parameters:
- role_name (str): Role name
- username (str): Username
- roomId (str, optional): Room ID for room-scoped roles
Returns:
requests.Response: Removal result
"""
def roles_get_users_in_role(self, role, **kwargs):
"""
Get users with specific role.
Parameters:
- role (str): Role name
- roomId (str, optional): Room ID for room-scoped roles
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: List of users with role
"""
def roles_sync(self, updated_since):
"""
Sync roles updated since date.
Parameters:
- updated_since (str): ISO date string
Returns:
requests.Response: Updated roles
"""def statistics(self, **kwargs):
"""
Get server statistics.
Parameters:
- refresh (bool, optional): Force refresh statistics
Returns:
requests.Response: Server statistics
"""
def statistics_list(self, **kwargs):
"""
Get selectable statistics.
Parameters:
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: Available statistics
"""def integrations_create(self, integrations_type, name, enabled, username, channel, script_enabled, event=None, urls=None, **kwargs):
"""
Create server integration.
Parameters:
- integrations_type (str): Integration type ('webhook-incoming' or 'webhook-outgoing')
- name (str): Integration name
- enabled (bool): Enable integration
- username (str): Username for integration
- channel (str): Target channel
- script_enabled (bool): Enable script
- event (str, optional): Trigger event
- urls (list, optional): Webhook URLs
- scriptEngine (str, optional): Script engine
- script (str, optional): Integration script
Returns:
requests.Response: Integration creation result
"""
def integrations_get(self, integration_id, **kwargs):
"""
Get integration by ID.
Parameters:
- integration_id (str): Integration ID
Returns:
requests.Response: Integration details
"""
def integrations_list(self, **kwargs):
"""
List all integrations.
Parameters:
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: List of integrations
"""
def integrations_update(self, integrations_type, name, enabled, username, channel, script_enabled, integration_id, **kwargs):
"""
Update existing integration.
Parameters:
- integrations_type (str): Integration type
- name (str): Integration name
- enabled (bool): Enable integration
- username (str): Username for integration
- channel (str): Target channel
- script_enabled (bool): Enable script
- integration_id (str): Integration ID to update
Returns:
requests.Response: Update result
"""
def integrations_remove(self, integrations_type, integration_id, **kwargs):
"""
Remove integration.
Parameters:
- integrations_type (str): Integration type
- integration_id (str): Integration ID to remove
Returns:
requests.Response: Removal result
"""
def integrations_history(self, integration_id, **kwargs):
"""
Get integration execution history.
Parameters:
- integration_id (str): Integration ID
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: Integration history
"""def rooms_get(self, **kwargs):
"""
Get all rooms user has access to.
Parameters:
- updatedSince (str, optional): Filter by update date
Returns:
requests.Response: List of rooms
"""
def rooms_admin_rooms(self, **kwargs):
"""
Get all rooms (admin only).
Parameters:
- types (list, optional): Room types to include
- filter (str, optional): Filter criteria
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: List of all rooms
"""
def rooms_clean_history(self, room_id, latest, oldest, **kwargs):
"""
Clean room message history.
Parameters:
- room_id (str): Room ID
- latest (str): Latest message timestamp
- oldest (str): Oldest message timestamp
- inclusive (bool, optional): Include boundary messages
- limit (int, optional): Message limit
- excludePinned (bool, optional): Exclude pinned messages
- filesOnly (bool, optional): Delete files only
- fromUsers (list, optional): Delete from specific users
Returns:
requests.Response: Cleanup result
"""def assets_set_asset(self, asset_name, file, **kwargs):
"""
Set server asset (logo, favicon, etc.).
Parameters:
- asset_name (str): Asset name
- file: Asset file content
Returns:
requests.Response: Asset update result
"""
def assets_unset_asset(self, asset_name):
"""
Remove server asset.
Parameters:
- asset_name (str): Asset name to remove
Returns:
requests.Response: Asset removal result
"""def licenses_info(self, **kwargs):
"""
Get server license information.
Returns:
requests.Response: License details
"""def directory(self, query, **kwargs):
"""
Search server directory.
Parameters:
- query (str): Search query
- count (int, optional): Number of results
- offset (int, optional): Number of results to skip
- sort (dict, optional): Sort criteria
Returns:
requests.Response: Search results
"""
def spotlight(self, query, **kwargs):
"""
Search visible users and rooms.
Parameters:
- query (str): Search query
Returns:
requests.Response: Search results
"""
def service_configurations(self, **kwargs):
"""
Get service configurations.
Returns:
requests.Response: Service configurations
"""# Get server statistics
stats = rocket.statistics()
print(f"Total users: {stats.json()['totalUsers']}")
# Create a new role
role_response = rocket.roles_create(
name='Support Agent',
scope='Global',
description='Customer support role'
)
# Assign role to user
rocket.roles_add_user_to_role('Support Agent', 'john.doe')
# Update server setting
rocket.settings_update('Site_Name', 'My Rocket.Chat Server')
# Create webhook integration
integration = rocket.integrations_create(
integrations_type='webhook-incoming',
name='GitHub Webhook',
enabled=True,
username='github-bot',
channel='#development',
script_enabled=True
)Install with Tessl CLI
npx tessl i tessl/pypi-rocketchat-a-p-i