Laravel Livestorm
A lightweight Livestorm webinar API client for Laravel — events, sessions, people, and webhooks.
#Laravel Livestorm
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
- Events —
events(),event(),createEvent(),updateEvent(),deleteEvent(),eventPeople() - Sessions —
sessions(),session(),createSession(),deleteSession(),sessionPeople(),registerToSession(),unregisterFromSession(),sessionChatMessages(),sessionQuestions(),sessionRecordings() - People —
people(),person() - Webhooks —
webhooks(),createWebhook(),deleteWebhook() - Health check —
ping(),organization() - Credential aware — throws
LivestormAuthenticationExceptionon 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.