Manage Open fire server using Rest Api

1.0.0 2018-01-31 14:17 UTC


Join the chat at

Build Status

A simple PHP class designed to work with Openfire Rest Api plugin. It is used to remote manage the Openfire server.


php-openfire-restapi is licensed under MIT style license, see LICENCE for further information.


The REST API plugin need to be installed and configured on the Openfire server.


  • PHP 5.4+


With Composer

The easiest way to install is via composer. Create the following composer.json file and run the composer.phar install command to install it.

composer require gidkom/php-openfire-restapi:v1.1.0


    "require": {
        "gidkom/php-openfire-restapi": "v1.1.0"



include "vendor/autoload.php";


# Create the Openfire Rest api object
$api = new Gidkom\OpenFireRestApi\OpenFireRestApi;

# Set the required config parameters
$api->secret = "MySecret";
$api->host = "";
$api->port = "9090";  # default 9090

# Optional parameters (showing default values)

$api->useSSL = false;
$api->plugin = "/plugins/restapi/v1";  # plugin 

Response format

# Check result if command is succesful
if($result['status']) {
    # Display result
} else {
    # Something went wrong
    echo 'Error: ';
    echo $result['data'];

User related examples

# Retrieve users
$options = ['search'=> 'John']; # optional
$result = $api->getUsers($options);

# Retrieve a user
$result = $api->getUser($username);

# Add a new user to OpenFire and add to a group
$result = $api->addUser('Username', 'Password', 'Real Name', '', array('Group 1'));

#Delete a user from OpenFire
$result = $api->deleteUser($username);

# Update a user
# The $password, $name, $email, $groups arguments are optional
$result = $api->updateUser($username, $password, $name, $email, $groups);

# Add user to a group
$result = $api->addToGroup($username, $groupName);

# Delete user from a group
$result = $api->deleteFromGroup($username, $groupName);

# Disable/lockout a user
$result = $api->lockoutUser($username);

# Enable a user
$result = $api->unlockUser($username);

# Retrieve a user roster

# Create a user roster entry
$api->addToRoster($username, $jid);

# Delete from roster
$api->deleteFromRoster($username, $jid);

# Update user roster
$api->updateRoster($username, $jid, $nickname, $subscription]);

Chat room related Endpoints

# Get all chat rooms

# Retrieve a chat room

# Create a chat room
# $params  = ['naturalName'=>'myroom', 'roomName'=>'myroom', 'description'=>'my chat room']; 

# Delete a chat room

# Update a chat room
# $params  = ['naturalName'=>'myroom', 'roomName'=>'myroom', 'description'=>'my fav chat room'];  
$api->createChatRoom($roomName =>$params);

# Add user with role to chat room
$api->addUserRoleToChatRoom($roomName, $name, $role);

System related Endpoints

# Retrieve all system properties

# Retrieve a system property

# Create a system property
$api->createSystemProperty(['key'=>'test', 'value'=>'testname']);

# Update a system property
$api->updateSystemProperty(['key'=>'test', 'value'=>'testname']);

# Delete a system property

# Retrieve concurrent sessions

Group related Endpoints

# Get all groups

# Retrieve group 

# Create a group
$api->createGroup($groupName, $description);

# Update a group description
$api->updateGroup($groupName, $description);

# Delete a group

Session related Endpoints

# Retrieve all users sessions

# Retrieve all users sessions

# Close all user sessions

Message related Endpoints

# Send a broadcast message to all online users