Search by

bytestore / site-manager-php

Gamer08YT

A unofficial PHP library for the UniFi Site Manager API.

Package info

github.com/Gamer08YT/UniFi-SiteManager-PHP

pkg:composer/bytestore/site-manager-php

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-07-05 17:05 UTC

This package is auto-updated.

Last update: 2026-09-07 05:37:46 UTC


README

A professional PHP library for the UniFi Site Manager API.

Description

This library provides a convenient and structured way to interact with the UniFi Site Manager API using PHP. It includes a robust API client, data models for various UniFi entities (like Hosts, Sites, Devices, ISP Metrics, SD-WAN Configurations), and dedicated endpoint classes for easy access to different API functionalities.

Features

  • API Client: Handles authentication, requests, and error responses.
  • Data Models: Strongly-typed PHP objects for UniFi entities such as:
    • Host
    • Site
    • Device
    • IspMetrics
    • SdWanConfig
    • InternetIssue
    • Counts
    • Wan
    • WanMagic
    • Uidb and UidbImages
    • SiteContainer
    • SdWanConfigStatus
  • Endpoint Classes: Organized API interactions for:
    • HostsApi
    • SitesApi
    • DevicesApi
    • IspMetricsApi
    • SdWanConfigsApi
  • Exception Handling: Custom ApiException for clear error management.

Installation

This project can be installed via Composer.

composer require bytestore/site-manager-php

Requirements

  • PHP >= 7.4

Usage Example

<?php

require_once 'vendor/autoload.php';

use UniFISiteManager\Client\UniFiSiteManagerClient;
use UniFISiteManager\Endpoints\SitesApi;
use UniFISiteManager\Exceptions\ApiException;

// Replace with your actual API Key and Base URL
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://api.ui.com/v1'; // Default UniFi Site Manager API URL

try {
    $client = new UniFiSiteManagerClient($apiKey, $baseUrl);
    $sitesApi = new SitesApi($client);

    // List all sites
    $sites = $sitesApi->listSites();

    echo "Found " . count($sites) . " sites:\n";
    foreach ($sites as $site) {
        echo "  - Site ID: " . $site->getSiteId() . ", Name: " . $site->getName() . "\n";
    }

    // Example: Get ISP Metrics for a specific site (assuming you have a site ID)
    // $ispMetricsApi = new \UniFISiteManager\Endpoints\IspMetricsApi($client);
    // if (!empty($sites)) {
    //     $firstSiteId = $sites[0]->getSiteId();
    //     $metrics = $ispMetricsApi->getIspMetrics($firstSiteId);
    //     echo "\nISP Metrics for site " . $firstSiteId . ":\n";
    //     echo "  Download Speed: " . $metrics->downloadSpeedMbps . " Mbps\n";
    //     echo "  Upload Speed: " . $metrics->uploadSpeedMbps . " Mbps\n";
    // }

} catch (ApiException $e) {
    echo "API Error: " . $e->getMessage() . "\n";
    echo "HTTP Code: " . $e->getCode() . "\n";
} catch (Exception $e) {
    echo "An unexpected error occurred: " . $e->getMessage() . "\n";
}

?>

License

This project is licensed under the MIT License.