jeffersongoncalves / laravel-livestorm
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!
Requires
- php: ^8.2
- illuminate/support: ^12.0|^13.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.21
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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.
