uxicodev/unifi-access-api

An API client for the Ubiquiti Unifi Access API

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/uxicodev/unifi-access-api

dev-main 2025-10-04 14:56 UTC

This package is auto-updated.

Last update: 2025-10-04 14:56:30 UTC


README

Latest Version on Packagist Total Downloads Github Actions

A PHP (Laravel) API client for the Ubiquity Unifi Access API

Installation

You can install the package via composer:

composer require uxicodev/unifi-access-api

Usage

Laravel

Add the following to your .env file:

## Replace with your actual Unifi Access controller URL
UNIFI_ACCESS_URI="https://192.168.1.1:12445/api/v1/developer/"
#API key can be retrieved in your admin console at page "access/settings/system"
UNIFI_ACCESS_API_KEY="your_api_key_here"
UNIFI_ACCESS_SSL_VERIFY=false
use Carbon\Carbon;
use GuzzleHttp\Client as GuzzleHttpClient;
use Uxicodev\UnifiAccessApi\API\Enums\VisitReason;
use Uxicodev\UnifiAccessApi\API\Requests\Visitor\CreateVisitorRequest;
use Uxicodev\UnifiAccessApi\UnifiAccessApiFacade;

$unifiClient = UnifiAccessApiFacade::getClient();
$visitorRequest = new CreateVisitorRequest('Jimmy', 'McGill', Carbon::now(), Carbon::now()->addHour(), VisitReason::Others);
$visitorResponse = $unifiClient->visitor()->create($visitorRequest);
$unifiClient->visitor()->assignQrCode($visitorResponse->data->id);

Non-Laravel application

use Carbon\Carbon;
use Uxicodev\UnifiAccessApi\API\Enums\VisitReason;
use Uxicodev\UnifiAccessApi\API\Requests\Visitor\CreateVisitorRequest;
use Uxicodev\UnifiAccessApi\HttpClient\Client as UnifiClient;
use GuzzleHttp\Client as GuzzleHttpClient;

$baseUri = 'https://192.168.1.1:12445/api/v1/developer/';
$apiKey = 'your_api_key_here';

$guzzleClient = new GuzzleHttpClient([
    'base_uri' => $baseUri,
    'headers' => [
        'Authorization' => $apiKey,
        'Accept' => 'application/json',
    ],
    'verify' => false,
]);
            
$unifiClient = new UnifiClient($guzzleClient);
$visitorRequest = new CreateVisitorRequest('Jimmy', 'McGill', Carbon::now(), Carbon::now()->addHour(), VisitReason::Others);
$visitorResponse = $unifiClient->visitor()->create($visitorRequest);
$unifiClient->visitor()->assignQrCode($visitorResponse->data->id);
$tmpFile = $unifiClient->credential()->downloadQrCode($visitorResponse->data->id);

FAQ

My API key is not working

Make sure you are using the correct API key. You can create an API key at two seperate locations, but those locations serve a different purpose. You can retrieve the Access API key in your admin console at page access/settings/system.

You can also create a Network/Protect API key at access/settings/control-plane/integrations. However, this key does NOT work for the Access API.

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email security@uxico.dev instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.