Search by

jeffersongoncalves / laravel-livestorm

jeffersongoncalves

A lightweight Livestorm webinar API client for Laravel — events, sessions, people, and webhooks.

Package info

github.com/jeffersongoncalves/laravel-livestorm

pkg:composer/jeffersongoncalves/laravel-livestorm

Fund package maintenance!

jeffersongoncalves

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-09-07 20:45 UTC

This package is auto-updated.

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


README

Laravel Livestorm

Laravel Livestorm

Tests PHPStan Code Style Latest Version on Packagist Total Downloads License

A lightweight Livestorm webinar API client for Laravel. It wraps the api.livestorm.co/v1 JSON:API endpoints behind a small static client, threads your Bearer token, and centralises 401 detection so callers get a thrown LivestormAuthenticationException rather than a silent failure during a bad-credential window.

Features

  • Eventsevents(), event(), createEvent(), updateEvent(), deleteEvent(), eventPeople()
  • Sessionssessions(), session(), createSession(), deleteSession(), sessionPeople(), registerToSession(), unregisterFromSession(), sessionChatMessages(), sessionQuestions(), sessionRecordings()
  • Peoplepeople(), person()
  • Webhookswebhooks(), createWebhook(), deleteWebhook()
  • Health checkping(), organization()
  • Credential aware — throws LivestormAuthenticationException on a 401 so a bad token doesn't look like "no data"

Installation

composer require jeffersongoncalves/laravel-livestorm

Optionally publish the config file:

php artisan vendor:publish --tag="livestorm-config"

Configuration

Add to your .env:

LIVESTORM_API_TOKEN=your-api-token

Find yours at app.livestorm.co/settings/integrations/api.

Config Options

// config/livestorm.php
return [
    'api_token' => env('LIVESTORM_API_TOKEN'),
    'base_url' => env('LIVESTORM_BASE_URL', 'https://api.livestorm.co/v1'),
    'timeout' => (int) env('LIVESTORM_TIMEOUT', 8),
];

Usage

use JeffersonGoncalves\Livestorm\LivestormClient;

// Health check
LivestormClient::ping();
LivestormClient::organization();

// Events
$events = LivestormClient::events(title: 'Product Launch');
$event = LivestormClient::event('event-id');
$event = LivestormClient::createEvent('Product Launch', description: 'Q4 launch webinar');
LivestormClient::updateEvent('event-id', title: 'Product Launch 2.0');
LivestormClient::deleteEvent('event-id');
$attendees = LivestormClient::eventPeople('event-id');

// Sessions
$sessions = LivestormClient::sessions();
$session = LivestormClient::createSession('event-id', estimatedStartedAt: '2026-10-01T10:00:00Z');
LivestormClient::registerToSession('session-id', 'jane@example.com', firstName: 'Jane', lastName: 'Doe');
LivestormClient::unregisterFromSession('session-id', 'jane@example.com');
$recordings = LivestormClient::sessionRecordings('session-id');

// People
$people = LivestormClient::people(email: 'jane@example.com');

// Webhooks
LivestormClient::createWebhook('https://example.com/webhooks/livestorm', event: 'attendance');

Handling authentication failures

use JeffersonGoncalves\Livestorm\Exceptions\LivestormAuthenticationException;

try {
    $events = LivestormClient::events();
} catch (LivestormAuthenticationException $e) {
    // LIVESTORM_API_TOKEN is missing, wrong, or revoked.
}

Testing

composer test

Static Analysis

composer analyse

Code Formatting

composer format

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

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

Credits

License

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