PHPackages                             gidkom/php-openfire-restapi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. gidkom/php-openfire-restapi

ActiveLibrary[API Development](/categories/api)

gidkom/php-openfire-restapi
===========================

Manage Openfire server using Rest Api

v1.3.0(2mo ago)57161.0k↓71.4%40[1 PRs](https://github.com/gidkom/php-openfire-restapi/pulls)MITPHPPHP ^7.2.5 || ^8.0

Since Jan 31Pushed 2mo ago9 watchersCompare

[ Source](https://github.com/gidkom/php-openfire-restapi)[ Packagist](https://packagist.org/packages/gidkom/php-openfire-restapi)[ Docs](https://github.com/gidkom/php-openfire-restapi)[ RSS](/packages/gidkom-php-openfire-restapi/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (2)Dependencies (2)Versions (5)Used By (0)

php-openfire-restapi
====================

[](#php-openfire-restapi)

[![Join the chat at https:#gitter.im/gidkom/php-openfire-restapi]()](https:#gitter.im/gidkom/php-openfire-restapi?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

[![Build Status]()](https:#scrutinizer-ci.com/g/gidkom/php-openfire-restapi/build-status/master)

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

LICENSE
-------

[](#license)

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

DEPENDENCIES
------------

[](#dependencies)

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

- [how to install REST API](https:#www.igniterealtime.org/projects/openfire/plugins/restapi/readme.html#installation)
- [How to configure REST API](https:#www.igniterealtime.org/projects/openfire/plugins/restapi/readme.html#authentication)

REQUIREMENTS
------------

[](#requirements)

- PHP 5.4+

INSTALLATION
------------

[](#installation)

### With Composer

[](#with-composer)

---

The easiest way to install is via [composer](http:#getcomposer.org/). 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

```

#### OR

[](#or)

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

EXAMPLE
=======

[](#example)

SETUP
-----

[](#setup)

```
include "vendor/autoload.php";
```

SET PARAMETERS
--------------

[](#set-parameters)

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

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

# Optional parameters (showing default values)

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

```

### Response format

[](#response-format)

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

```

### User related examples

[](#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
# The $name and $email arguments are optional
$result = $api->addUser('Username', 'Password', 'Real Name', 'johndoe@domain.com');

# To also add the new user to one or more groups, call addToGroup afterwards:
$api->addToGroup('Username', 'Group 1');

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

# Update a user
# The $password, $name, $email arguments are optional.
# Note: Openfire's UserEntity does not accept a groups field — use addToGroup
# (or deleteFromGroup) to manage group membership for an existing user.
$result = $api->updateUser($username, $password, $name, $email);

# 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
$api->userRosters($username);

# Create a user roster entry
# The $nickname and $subscriptionType arguments are optional
$api->addToRoster($username, $jid, $nickname, $subscriptionType);

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

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

# Push a roster event to a user's connected resources
$api->pushRosterEvent($username);

```

### Chat room related Endpoints

[](#chat-room-related-endpoints)

```
# Get all chat rooms
$api->getAllChatRooms();

# Retrieve a chat room
$api->getChatRoom($name);

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

# Delete a chat room
$api->deleteChatRoom($roomName);

# 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

[](#system-related-endpoints)

```
# Retrieve all system properties
$api->getSystemProperties();

# Retrieve a system property
$api->getSystemProperty('plugin.restapi.httpAuth');

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

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

# Delete a system property
$api->deleteSystemProperty('test');

# Retrieve concurrent sessions
$api->getConcurrentSessons();

```

### Group related Endpoints

[](#group-related-endpoints)

```
# Get all groups
$api->getGroups();

# Retrieve group
$api->getGroup($groupName);

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

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

# Delete a group
$api->deleteGroup($groupName);

```

### Session related Endpoints

[](#session-related-endpoints)

```
# Retrieve all users sessions
$api->getSessions();

# Retrieve all users sessions
$api->getUserSessions($username);

# Close all user sessions
$api->closeUserSessions($username);

```

### Message related Endpoints

[](#message-related-endpoints)

```
# Send a broadcast message to all online users
$api->broadcastMessage('hello');

# Clear archived message history between two users
# Requires Openfire Monitoring Service plugin to be installed
$api->clearMessages($username, $targetUsername);

```

CONTACT
-------

[](#contact)

- gidkom

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance85

Actively maintained with recent releases

Popularity46

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 85.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1496 days

Total

3

Last Release

83d ago

PHP version history (2 changes)1.0.0PHP &gt;=5.4.0

v1.2.0PHP ^7.2.5 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/a517e57a2f4e7d57168e0f06c472d58797425375c56708ff5b66b0d5fab0552b?d=identicon)[gidkom](/maintainers/gidkom)

---

Top Contributors

[![gidkom](https://avatars.githubusercontent.com/u/4060499?v=4)](https://github.com/gidkom "gidkom (57 commits)")[![ottoszika](https://avatars.githubusercontent.com/u/7945963?v=4)](https://github.com/ottoszika "ottoszika (3 commits)")[![umpirsky](https://avatars.githubusercontent.com/u/208957?v=4)](https://github.com/umpirsky "umpirsky (2 commits)")[![alfredog1976](https://avatars.githubusercontent.com/u/28766561?v=4)](https://github.com/alfredog1976 "alfredog1976 (1 commits)")[![tibo9](https://avatars.githubusercontent.com/u/5981057?v=4)](https://github.com/tibo9 "tibo9 (1 commits)")[![marclaporte](https://avatars.githubusercontent.com/u/1004261?v=4)](https://github.com/marclaporte "marclaporte (1 commits)")[![emamirazavi](https://avatars.githubusercontent.com/u/3804866?v=4)](https://github.com/emamirazavi "emamirazavi (1 commits)")[![gitter-badger](https://avatars.githubusercontent.com/u/8518239?v=4)](https://github.com/gitter-badger "gitter-badger (1 commits)")

---

Tags

chatxmppopenfire

### Embed Badge

![Health badge](/badges/gidkom-php-openfire-restapi/health.svg)

```
[![Health](https://phpackages.com/badges/gidkom-php-openfire-restapi/health.svg)](https://phpackages.com/packages/gidkom-php-openfire-restapi)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M47](/packages/tencentcloud-tencentcloud-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)[aimeos/prisma

A powerful PHP package for integrating media related Large Language Models (LLMs) into your applications

1943.1k5](/packages/aimeos-prisma)[gnello/php-openfire-restapi

Client for the REST API plugin of the OpenFire Server

3014.1k](/packages/gnello-php-openfire-restapi)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
