Documentation

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

  1. Dashboard Access: Log in to your Veedeo Dashboard
  2. Navigate to API Keys: Go to Settings > API Keys
  3. Create New Key: Click "Create API Key"
  4. 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