Overview
The Nouvel API uses API keys with Bearer token authentication. All requests must include your API key in theAuthorization header.
API Key Format
All Nouvel API keys use the prefixnvl_ followed by a unique identifier:
Creating an API Key
Configure the key
- Name: A descriptive name for identification (e.g., “Production Server”)
- Permissions: Select which operations this key can perform
- Expiration: Choose when the key should expire
API keys are only available on Scale and Business plans. Upgrade your plan to unlock API access.
Permissions
Each API key can have one or more of the following permissions. Choose only the permissions needed for each key to follow the principle of least privilege.| Permission | Description | Grants Access To |
|---|---|---|
generate | Create video ads | POST /api/v1/generate |
projects:read | View project status & list | GET /api/v1/jobs/{jobId}, GET /api/v1/projects |
publish | Schedule & publish posts | POST /api/v1/publish, GET /api/v1/publish/{id} |
analytics:read | View analytics data | GET /api/v1/analytics |
copilot:chat | Use AI copilot chat | POST /api/v1/copilot/chat |
Expiration Options
Set an expiration date to automatically revoke keys after a certain period:| Option | Duration |
|---|---|
| 7 days | Temporary testing/development |
| 30 days | Short-term campaigns |
| 90 days | Quarterly rotation |
| 1 year | Annual rotation |
| Never | No expiration (not recommended) |
| Custom date | Specific expiration date |
Using Your API Key
Include your API key in theAuthorization header as a Bearer token:
Security Best Practices
Store keys in environment variables
Store keys in environment variables
Never hardcode API keys in your source code. Use environment variables:Add
.env
.env to your .gitignore to prevent accidentally committing it.Use separate keys for different environments
Use separate keys for different environments
Create different API keys for development, staging, and production. This allows you to:
- Identify which environment made a request
- Revoke compromised keys without affecting other environments
- Set different permissions per environment
Rotate keys regularly
Rotate keys regularly
Set expiration dates and rotate keys every 90 days. When rotating:
- Create a new key
- Update your application to use the new key
- Verify the new key works
- Delete the old key
Grant minimum required permissions
Grant minimum required permissions
Only grant permissions that are actually needed. For example:
- Read-only monitoring:
projects:read,analytics:read - Video generation service:
generate,projects:read - Publishing automation:
publish,projects:read
Monitor API key usage
Monitor API key usage
Regularly check your API keys in the dashboard:
- Review active keys and their last used date
- Delete unused or forgotten keys
- Check for unexpected usage patterns
Never expose keys client-side
Never expose keys client-side
Never include API keys in:
- Frontend JavaScript code
- Mobile app source code
- Public GitHub repositories
- Client-side API calls
Error Responses
Invalid API Key
401 Unauthorized
Causes:
- API key is incorrect or malformed
- API key has been deleted or expired
- Missing
Authorization: Bearerprefix
Missing Permission
403 Forbidden
Causes:
- API key doesn’t have the required permission for this endpoint
- Solution: Revoke this key and create a new one with the necessary permissions
Plan Required
402 Payment Required
Causes:
- Your account is on a Starter or Growth plan
- Solution: Upgrade to Scale or Business
Rate Limiting
All API keys are subject to rate limits:- 60 requests per minute per API key
- Rate limit resets every 60 seconds
- Exceeding the limit returns
429 Too Many Requests
Managing API Keys
Viewing Active Keys
Navigate to Settings → API Keys to view all active keys:- Key name and creation date
- Last used timestamp
- Permissions granted
- Expiration date

