OneSignal SDK for PHP developers with fluent API and supports Laravel / Lumen out of the box.

v1.1.4 2023-02-03 14:38 UTC

This package is auto-updated.

Last update: 2024-01-31 00:39:33 UTC



OneSignal PHP SDK

OneSignal SDK for PHP developers with fluent API and supports Laravel / Lumen out of the box.

Latest Stable Version PHP Version Require Total Downloads tests license: MIT

Why use this package?

This is the only package out there that is a breeze to set up, and have a fluent / standardized API across endpoints.


NOTE: For laravel users, this package registers itself automatically.

composer require kodjunkie/onesignal-php-sdk

Usage in plain PHP

use Kodjunkie\OnesignalPhpSdk\OneSignal;
use Kodjunkie\OnesignalPhpSdk\Exceptions\OneSignalException;

$config = [
    // Onesignal API Key
    'api_key' => '',
    // Onesignal Auth Key
    'auth_key' => '',
    // Onesignal App ID (optional)
    // this is beneficial if you're working with a single OneSignal app
    // so, you could pass "null" to methods / functions that requires it.
    'app_id' => '',

try {
    // Initialize the SDK
    $oneSignal = new OneSignal($config);
    // Using the API
    // Get all apps
    $response = $oneSignal->app()->getAll();
    // Use json_decode() to get the response as an stdClass object
} catch (OneSignalException $exception) {

Usage in Laravel / Lumen

Set these values in your .env file


Register the service provider (lumen only)

Add this line to your bootstrap/app.php file


// Register the facade (optional)
// To use, must uncomment $app->withFacades()
if (!class_exists('OneSignal')) {
    class_alias(Kodjunkie\OnesignalPhpSdk\Facade::class, 'OneSignal');

Code samples

use Kodjunkie\OnesignalPhpSdk\Exceptions\OneSignalException;

try {
    // Initialize the SDK
    // Resolve from the IoC container
    $oneSignal = app()->make('onesignal');
    // Using the API
    // Get all devices
    $response = $oneSignal->device()->getAll($appId, $limit, $offset);
    // Using the facade, the code above will look like this
    // with "app_id" provided in the config
    $response = OneSignal::device()->getAll(null, $limit, $offset);
} catch (OneSignalException $exception) {


composer test


This project is opened under the MIT 2.0 License which allows very broad use for both academic and commercial purposes.