| name | api-authentication |
| description | API authentication patterns, SDK installation scripts, environment variable management, and connection testing for ElevenLabs. Use when setting up ElevenLabs authentication, installing ElevenLabs SDK, configuring API keys, testing ElevenLabs connection, or when user mentions ElevenLabs authentication, xi-api-key, ELEVENLABS_API_KEY, or ElevenLabs setup. |
| allowed-tools | Bash, Read, Write, Edit |
ElevenLabs API Authentication
Comprehensive authentication setup for ElevenLabs voice AI platform including SDK installation, API key management, environment configuration, and connection testing.
Overview
This skill provides:
- Automated SDK installation for TypeScript and Python
- Secure API key configuration with environment variables
- Connection testing and validation scripts
- Production-ready client templates
- Complete authentication examples for Next.js and Python projects
Authentication Method
ElevenLabs uses API key authentication via HTTP headers:
xi-api-key: YOUR_ELEVENLABS_API_KEY
Security Requirements:
- API keys must be stored in environment variables (never hardcoded)
- Keys should never be exposed in client-side code
- Each key can have endpoint restrictions and credit quotas
Scripts
All scripts are fully functional and production-ready:
1. setup-auth.sh
Configures ELEVENLABS_API_KEY in .env file with validation.
bash scripts/setup-auth.sh [api-key]
2. test-connection.sh
Tests API connectivity using curl and validates credentials.
bash scripts/test-connection.sh
3. install-sdk.sh
Installs @elevenlabs/elevenlabs-js (TypeScript) or elevenlabs (Python) SDK.
bash scripts/install-sdk.sh [typescript|python]
4. validate-env.sh
Validates .env file has required ELEVENLABS_API_KEY.
bash scripts/validate-env.sh
5. generate-client.sh
Generates API client boilerplate from templates.
bash scripts/generate-client.sh [typescript|python] [output-path]
Templates
All templates are production-ready and fully implemented:
Environment Configuration
templates/.env.template- Environment variable template with all required keys
TypeScript Templates
templates/api-client.ts.template- ElevenLabs client with error handlingtemplates/api-client-nextjs.ts.template- Next.js server-side clienttemplates/api-client-edge.ts.template- Edge runtime compatible client
Python Templates
templates/api-client.py.template- ElevenLabs client with error handlingtemplates/api-client-async.py.template- Async client with connection poolingtemplates/api-client-fastapi.py.template- FastAPI integration client
Examples
All examples include complete README.md files with step-by-step instructions:
Basic Usage Examples
examples/nextjs-auth/README.md- Complete Next.js authentication example- Environment setup
- Server action implementation
- API route handler
- Error handling patterns
examples/python-auth/README.md- Complete Python authentication example- Environment configuration
- Client initialization
- Error handling
- Connection testing
examples/edge-runtime/README.md- Edge runtime authentication example- Vercel Edge Functions setup
- Cloudflare Workers setup
- Deno Deploy setup
- Environment variable access
Advanced Examples
examples/multi-environment/README.md- Multi-environment configuration (dev, staging, prod)- Environment-specific API keys
- Configuration management
- Platform-specific setup (Vercel, Railway, Fly.io)
examples/api-key-rotation/README.md- API key rotation patterns- Zero-downtime rotation strategies
- Dual-key pattern implementation
- Automated rotation scripts
Usage Instructions
Initial Setup
Install SDK:
# For TypeScript projects bash scripts/install-sdk.sh typescript # For Python projects bash scripts/install-sdk.sh pythonConfigure API Key:
# Interactive setup bash scripts/setup-auth.sh # Or provide key directly bash scripts/setup-auth.sh sk_your_api_key_hereTest Connection:
bash scripts/test-connection.shGenerate Client:
# TypeScript bash scripts/generate-client.sh typescript src/lib/elevenlabs.ts # Python bash scripts/generate-client.sh python src/elevenlabs_client.py
Integration Workflow
For Next.js projects:
- Run
bash scripts/install-sdk.sh typescript - Run
bash scripts/setup-auth.sh - Read
examples/nextjs-auth/README.mdfor integration guide - Generate client:
bash scripts/generate-client.sh typescript src/lib/elevenlabs.ts
For Python projects:
- Run
bash scripts/install-sdk.sh python - Run
bash scripts/setup-auth.sh - Read
examples/python-auth/README.mdfor integration guide - Generate client:
bash scripts/generate-client.sh python src/elevenlabs_client.py
For FastAPI projects:
- Run
bash scripts/install-sdk.sh python - Run
bash scripts/setup-auth.sh - Use template:
templates/api-client-fastapi.py.template
Validation
Validate your setup:
# Check environment variables
bash scripts/validate-env.sh
# Test API connection
bash scripts/test-connection.sh
Security Best Practices
- Never commit .env files - Add to .gitignore
- Use environment-specific keys - Different keys for dev/staging/prod
- Rotate keys regularly - Follow key rotation patterns in examples
- Set endpoint restrictions - Configure in ElevenLabs dashboard
- Monitor credit usage - Set custom credit quotas per key
Troubleshooting
API Key Not Found:
- Run
bash scripts/validate-env.sh - Ensure .env file exists in project root
- Check environment variable is loaded (dotenv)
Connection Failed:
- Run
bash scripts/test-connection.shfor detailed diagnostics - Verify API key is valid in ElevenLabs dashboard
- Check network connectivity and firewall rules
SDK Installation Failed:
- Ensure Node.js/npm (for TypeScript) or Python/pip (for Python) is installed
- Check package.json or requirements.txt exists
- Run with verbose flag:
bash -x scripts/install-sdk.sh typescript