Authentication
Learn how to authenticate with the Veedeo API using API keys and secure your requests.
API Key Authentication
All Veedeo API requests require authentication using Bearer token authentication.
Header Format
Authorization: Bearer vd_your_api_key_here
Getting Your API Key
- Dashboard Access: Log in to your Veedeo Dashboard
- Navigate to API Keys: Go to Settings > API Keys
- Create New Key: Click "Create API Key"
- Copy Key: Your key format:
vd_[32-character-nanoid]
API Key Tiers
Standard Tier
- Rate Limit: 100 requests/minute
- Concurrent Renders: 5 simultaneous renders
- Features: All basic rendering features
Pro Tier
- Rate Limit: 500 requests/minute
- Concurrent Renders: 20 simultaneous renders
- Features: All features + priority processing
Enterprise Tier
- Rate Limit: Custom (negotiated)
- Concurrent Renders: Custom allocation
- Features: All features + dedicated resources + SLA
Security Best Practices
Environment Variables
Store your API key securely using environment variables:
# .env file
VEEDEO_API_KEY=vd_your_api_key_here
// Usage in Node.js
const apiKey = process.env.VEEDEO_API_KEY;
HTTPS Only
Always use HTTPS for API requests:
ā
https://api.veedeo.dev/v3/tasks
ā http://api.veedeo.dev/v3/tasks
Key Rotation
- Rotate API keys regularly (recommended: every 90 days)
- Revoke unused keys immediately
- Monitor key usage in the dashboard
Rate Limiting
Rate limits are enforced per API key with informative headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1642434600
X-RateLimit-Type: requests
Handling Rate Limits
When rate limits are exceeded (HTTP 429):
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded",
"retry_after": 60
}
}
Best Practices:
- Implement exponential backoff
- Monitor
X-RateLimit-Remaining
header - Upgrade your tier if needed
Example Requests
cURL Example
curl -X POST https://api.veedeo.dev/v3/tasks \
-H "Authorization: Bearer vd_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"timeline": {...}}'
JavaScript Example
const response = await fetch('https://api.veedeo.dev/v3/tasks', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.VEEDEO_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
timeline: { /* your timeline data */ }
})
});
Python Example
import requests
import os
headers = {
'Authorization': f'Bearer {os.getenv("VEEDEO_API_KEY")}',
'Content-Type': 'application/json'
}
response = requests.post(
'https://api.veedeo.dev/v3/tasks',
headers=headers,
json={'timeline': {...}}
)
Error Handling
Authentication Errors
Invalid API Key (401):
{
"error": {
"code": "INVALID_API_KEY",
"message": "The provided API key is invalid"
}
}
Missing Authentication (401):
{
"error": {
"code": "MISSING_AUTHENTICATION",
"message": "Authorization header is required"
}
}
Insufficient Permissions (403):
{
"error": {
"code": "INSUFFICIENT_PERMISSIONS",
"message": "Your API key does not have permission for this operation"
}
}
Next Steps
- š Try the Quick Start guide
- š Read the API Specification
- š§ Check Implementation Guide