gridwb / laravel-elevenlabs
elevenlabs.io API for Laravel
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/gridwb/laravel-elevenlabs
Requires
- php: >=8.2
- guzzlehttp/guzzle: ^7.9.0
- illuminate/contracts: ^10.0||^11.0||^12.0
- spatie/laravel-data: ^4.13
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9|^3.0
- laravel/pint: ^1.14
- orchestra/testbench: ^8.22|^9.0|^10.0
- pestphp/pest: ^2.0|^3.0
- pestphp/pest-plugin-laravel: ^2.0|^3.0
README
Laravel ElevenLabs is a convenient wrapper for interacting with the ElevenLabs API in Laravel applications.
Table of Contents
Installation
-
Install the package
composer require gridwb/laravel-elevenlabs
-
Publish the configuration file
php artisan vendor:publish --tag="elevenlabs-config" -
Add environment variables
ELEVENLABS_API_URL=https://api.elevenlabs.io ELEVENLABS_API_KEY=your-api-key-here ELEVENLABS_WEBHOOK_PATH=webhooks/elevenlabs ELEVENLABS_WEBHOOK_SECRET=your-webhook-secret-here
Usage
Conversations Resource
get details
Get conversation details request:
<?php use Gridwb\LaravelElevenLabs\Facades\ElevenLabs; $conversationId = '<string>'; $response = ElevenLabs::conversations()->getDetails($conversationId); echo $response->agentId; echo $response->conversationId; echo $response->status->value; // ...
get audio
Get conversation audio request:
<?php use Gridwb\LaravelElevenLabs\Facades\ElevenLabs; $conversationId = '<string>'; $response = ElevenLabs::conversations()->getAudio($conversationId); echo $response->content; // md5
delete
Delete conversation request:
<?php use Gridwb\LaravelElevenLabs\Facades\ElevenLabs; $conversationId = '<string>'; ElevenLabs::conversations()->delete($conversationId);
get signed url
Get conversation signed url request:
<?php use Gridwb\LaravelElevenLabs\Facades\ElevenLabs; $agentId = '<string>'; $response = ElevenLabs::conversations()->getSignedUrl($agentId); echo $response->signedUrl;
get token
Get conversation token request:
<?php use Gridwb\LaravelElevenLabs\Facades\ElevenLabs; $agentId = '<string>'; $response = ElevenLabs::conversations()->getToken($agentId); echo $response->token;
Webhooks
ElevenLabs can send events to your Laravel application via webhooks. By default, all webhook requests are dispatched to the
Gridwb\LaravelElevenLabs\Jobs\ProcessWebhook::class job, which triggers corresponding Laravel events. You can listen to
these events like any other Laravel event:
<?php use Gridwb\LaravelElevenLabs\Events\SubscriptionStarted; use Illuminate\Support\Facades\Event; Event::listen(PostCallTranscription::class, function (PostCallTranscription $event) { $payload = $event->payload; // Access data from ElevenLabs payload });
If you need custom handling, you can define your own job and set it in the config/elevenlabs.php:
<?php return [ 'webhook' => [ 'process_webhook_job' => \Gridwb\LaravelElevenLabs\Jobs\ProcessWebhook::class, ], ];
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see License File for more information.