Saltar al contenido
← Volver a proyectos

Laravel Livestorm

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

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.

Nueva versión disponible.