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

1.1.0 2025-11-16 16:43 UTC

This package is auto-updated.

Last update: 2025-12-16 17:04:48 UTC


README

Laravel ElevenLabs is a convenient wrapper for interacting with the ElevenLabs API in Laravel applications.

Table of Contents

Installation

  1. Install the package

    composer require gridwb/laravel-elevenlabs
  2. Publish the configuration file

    php artisan vendor:publish --tag="elevenlabs-config"
  3. 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.