Overview
Every Nouvel API key has a set of permission scopes that control which operations it can perform. Permissions follow the principle of least privilege: only grant the permissions your integration needs.Permission Scopes
generate
Allows creating video ad generation jobs.Grants access to:
POST /api/v1/generate- Create new video generation jobs
- Video generation integrations
- Automation workflows that create ads
- Bulk video creation tools
projects:read
Allows viewing project status, details, and listing projects.Grants access to:
GET /api/v1/jobs/:id- Get job status and detailsGET /api/v1/projects/:id- Get project detailsGET /api/v1/projects- List all projects with pagination
- Status polling integrations
- Dashboard displays
- Monitoring and reporting tools
publish
Allows publishing completed video projects to social media platforms.Grants access to:
POST /api/v1/publish- Publish or schedule posts to social platformsGET /api/v1/publish/:postId- Check publish status
- Social media automation tools
- Multi-platform publishing integrations
- Scheduled content calendars
analytics:read
Allows viewing analytics data for connected social media accounts and published posts.Grants access to:
GET /api/v1/accounts- List connected social media accountsGET /api/v1/analytics- Get post-level analyticsGET /api/v1/analytics/daily- Get daily aggregated metricsGET /api/v1/analytics/followers- Get follower growth data
- Analytics dashboards
- Performance reporting tools
- ROI tracking integrations
copilot:chat
Allows using the AI copilot for product research, ad strategy, and creative ideation.Grants access to:
POST /api/v1/copilot/chat- Send messages to AI copilot
- AI-assisted content planning tools
- Product research automation
- Creative brief generation
Creating API Keys with Permissions
When creating an API key in the dashboard, you select which permissions to grant:Common Permission Combinations
Choose a permission set based on your use case:Video Generation Bot
Use case: Automated video creation without human monitoring Permissions:generate- Create video generation jobsprojects:read- Poll for completion status
Dashboard Integration
Use case: Display project status and analytics in a custom dashboard Permissions:projects:read- List and view project detailsanalytics:read- View performance metrics
Full Access Integration
Use case: Complete integration with all Nouvel features Permissions:generate- Create videosprojects:read- Monitor projectspublish- Publish to social platformsanalytics:read- View performance datacopilot:chat- AI assistance
Most integrations only need
generate + projects:read. Only grant additional permissions if you’re actively using those features.Read-Only Access
Use case: Monitoring and reporting without creating new content Permissions:projects:read- View project statusanalytics:read- View metrics Perfect for:- Reporting dashboards
- Project management tools
- Client portals
Principle of Least Privilege
Why this matters:- Security - If an API key is compromised, damage is limited to granted permissions
- Clarity - Permissions make it clear what each integration can do
- Compliance - Easier to audit access and maintain security standards
- Cost control - Keys without
generatepermission can’t consume quota
Examples by Use Case
E-commerce Automation
You’re building a Shopify app that auto-generates videos when products are added: Recommended permissions:- ✅
generate- Create videos for new products - ✅
projects:read- Check generation status - ❌
publish- Not needed if you’re not auto-publishing - ❌
analytics:read- Not needed for automation - ❌
copilot:chat- Not needed for automation
Marketing Dashboard
You’re building a dashboard for clients to view their video performance: Recommended permissions:- ❌
generate- Clients shouldn’t create videos via this dashboard - ✅
projects:read- Display project status - ✅
analytics:read- Show performance metrics - ❌publish- Not displaying social features - ❌
copilot:chat- Not exposing AI features
Content Calendar Tool
You’re building a tool to generate and schedule social content: Recommended permissions:- ✅
generate- Create videos - ✅
projects:read- Monitor generation - ✅
publish- Schedule to social platforms - ✅analytics:read- Track post performance - ✅copilot:chat- Help users ideate content
Internal Reporting Script
You’re writing a script to export project data for internal reporting: Recommended permissions:- ❌
generate- Script only reads data - ✅
projects:read- Export project details - ✅
analytics:read- Export metrics - ❌publish- Script doesn’t publish - ❌
copilot:chat- Script doesn’t use AI
Managing API Keys
Rotating Keys
To rotate an API key:- Create a new key with the same permissions
- Update your application to use the new key
- Test that the new key works in production
- Revoke the old key
Revoking Keys
Revoke keys immediately if:- The key is compromised or leaked
- The integration is no longer in use
- You need to change permissions (create new key with different permissions)
- All requests with that key return
401 Unauthorized - The key cannot be recovered (create a new key if needed)
- Revocation is immediate (no grace period)
Security Best Practices
1. Store Keys Securely
Never hardcode API keys in your source code. Use environment variables or secrets managers:2. Use Separate Keys per Environment
Create different API keys for development, staging, and production:Video Gen - Production(full permissions)Video Gen - Staging(full permissions)Video Gen - Development(limited permissions)
3. Monitor Key Usage
Track which keys are making requests:- Name keys descriptively (
Shopify App Prod,Dashboard,Reporting Script) - Review key activity regularly in the dashboard
- Revoke unused keys
4. Limit Key Distribution
- Don’t share keys across multiple applications
- Create separate keys for each integration
- Limit access to keys within your team (only developers who need them)

