Prerequisites
Getting your API key
Log in to ElevenLabs
Go to elevenlabs.io and sign in to your account.
Open API keys
Click your avatar in the top-right corner, then select Profile + API key. Your API key is shown under the API Key section. Copy it.
Sniko reads this key from
config/elevenlabs.php via the ELEVENLABS_API_KEY environment variable. It is also registered in config/services.php under the elevenlabs key for use across the application.What Sniko uses ElevenLabs for
Conversational AI agents
Each Sniko agent maps to an ElevenLabs agent. Sniko creates, updates, and deletes agents through the ElevenLabs API when you manage them in the UI.
Voices
Sniko fetches available voices from ElevenLabs — both shared library voices and voices you have created or cloned — so you can assign them to agents.
Knowledge bases
Documents uploaded to Sniko are pushed to ElevenLabs as knowledge base entries. Agents use these documents during conversations for retrieval-augmented responses.
Conversation sessions
Live and batch call sessions are initiated and tracked through ElevenLabs. Conversation history, audio recordings, and extracted data all originate from the ElevenLabs conversation API.
Customer isolation
Sniko enforces strict per-customer isolation on all ElevenLabs resources. When a resource (agent, voice, or knowledge base) is created for a customer, Sniko prefixes its display name with the customer’s UUID:- Admin users see all resources across all customers.
- Each customer only sees resources that carry their own UUID prefix.
- Cache keys for ElevenLabs API responses are scoped per user (
elevenlabs_{resource}_{customer_uuid}), preventing cross-customer data leakage even at the cache layer.
Webhook secret
Some ElevenLabs tool integrations (custom webhooks, SMS tools) send signed requests back to Sniko. Set the webhook secret so Sniko can verify these signatures:.env
https://api.elevenlabs.io but can be overridden:
.env
Plan requirements and quotas
Sniko tracks and enforces quotas against ElevenLabs resource limits based on the customer’s Sniko subscription plan. The following ElevenLabs features require a paid plan:| Feature | Requirement |
|---|---|
| Conversational AI agents | Starter plan or higher |
| Voice Design (generative voices) | Creator plan or higher |
| Instant Voice Cloning | Starter plan or higher |
| Concurrent conversation sessions | Varies by plan |
Rate limits and timeouts
The Sniko HTTP client for ElevenLabs is configured with:- Connection timeout: 30 seconds
- Request timeout: 120 seconds (voice generation can be slow on large inputs)
Verifying connectivity
After adding your API key, confirm the connection is working:['success' => true]. If the key is missing or invalid, you will see a RuntimeException with the message ElevenLabs API key is not configured.