API Key Management
API keys allow you to access QuivaWorks programmatically for automation, integrations, and custom applications.Creating an API Key
1
Navigate to API Keys
Click your profile icon in the bottom left → “Settings” → “API Keys”
2
Add New Key
Click the “Add” button
3
Name Your Key
Enter a descriptive name (e.g., “Production Integration”, “CI/CD Pipeline”, “Monitoring Script”)
4
Save Key Securely
Copy the API key immediately - it will only be shown once
API Key Properties
User-Scoped
Keys are tied to the user who creates them and inherit that user’s permissions
3-Month Lifespan
All keys expire after 3 months for security
Revocable
Delete keys immediately if compromised
Managing API Keys
Viewing Your Keys
- Navigate to Settings → API Keys
- See a list of all your active keys showing:
- Key name
- Creation date
- Expiration date
- Last used date (if applicable)
Deleting an API Key
- Navigate to Settings → API Keys
- Click on the key name you want to delete
- Click the “Delete” button
- Confirm the deletion
Deleting a key immediately revokes access. Any applications using this key will stop working. Update applications with a new key before deleting the old one.
API Key Security Best Practices
Storage and Handling
Use Environment Variables
Use Environment Variables
Do this:Never do this:
Use Secret Management Systems
Use Secret Management Systems
Store keys in secure secret management systems:
- AWS Secrets Manager
- HashiCorp Vault
- Azure Key Vault
- Google Secret Manager
- 1Password/LastPass for Teams
- Encrypted storage
- Access controls
- Audit trails
- Automatic rotation
Never Commit to Version Control
Never Commit to Version Control
Add these patterns to your Even in private repositories, avoid committing API keys. They can be exposed through:
.gitignore:- Repository forks
- Access changes
- CI/CD logs
- Backup systems
Limit Key Sharing
Limit Key Sharing
Never share keys via:
- Slack or Teams messages
- Documentation (even internal)
- Shared documents or spreadsheets
- Create separate keys for each user
- Use your secret management system
- Grant appropriate role-based access
Key Rotation Strategy
1
Generate New Key
Create a new API key 2 weeks before the old one expires
2
Update Applications
Deploy the new key to all applications and services:
- Update environment variables
- Update secret management entries
- Update CI/CD configurations
3
Test Thoroughly
Verify all integrations work with the new key:
- Run automated tests
- Check production traffic
- Monitor error rates
4
Monitor Transition
Keep both keys active briefly to ensure smooth transition
5
Delete Old Key
Only after confirming the new key works everywhere and the old key is no longer in use
Organizing Multiple Keys
Separate Keys Per Environment
Create different keys for:
- Production
- Staging
- Development/Testing
- CI/CD pipelines
- Third-party integrations
Use Descriptive Names
Clear naming helps track usage:
- “Production API - Web App”
- “GitHub Actions - Main Pipeline”
- “Datadog Monitoring Integration”
- “Staging Environment - QA Team”
Monitoring API Key Usage
Regularly audit your API keys to maintain security: Monthly Review Checklist:- List all active API keys in your account
- Verify each key is still needed
- Check last used dates for inactive keys
- Delete keys that haven’t been used in 30+ days
- Confirm key names accurately describe current usage
- Unexpected spike in API calls
- Calls from unfamiliar IP addresses or regions
- Access outside normal business hours
- Failed authentication attempts
- Unusually large data transfers
While QuivaWorks doesn’t currently provide audit logs for API usage, we recommend implementing logging in your applications that use API keys to track their usage patterns.
If an API Key is Compromised
1
Revoke Immediately
- Navigate to Settings → API Keys
- Click on the compromised key
- Click “Delete”
- Confirm deletion
2
Generate Replacement
Create a new API key with a different name immediately
3
Update Applications
Deploy the new key to all affected services as quickly as possible
4
Review Recent Activity
Check your application logs for any unauthorized or suspicious API usage
5
Assess Impact
Determine:
- What resources were accessed
- What data may have been exposed
- What actions were performed
- Duration of potential unauthorized access
6
Report if Needed
For serious breaches involving sensitive data, follow your incident response procedures
- Accidentally committed to public GitHub repositories
- Logged in plain text in application logs
- Shared in Slack/email/chat messages
- Included in error messages or stack traces
- Stored in unencrypted configuration files
- Exposed through compromised development machines
Using API Keys
Authentication
Include your API key in theAuthorization header:
Common Integration Patterns
- Node.js
- Python
- cURL
Error Responses
401 Unauthorized
401 Unauthorized
403 Forbidden
403 Forbidden
- User role lacks required permissions
- Resource doesn’t exist
- Resource belongs to different account
- Operation not allowed for this role
429 Too Many Requests
429 Too Many Requests
- Exceeded your plan’s rate limits
- Too many concurrent requests
- Burst limit exceeded
retry_after header. Consider upgrading your plan for higher limits.API Key Best Practices Checklist
Use this checklist when working with API keys:Before Creating
- Determine the specific purpose and required scope
- Identify which user should own the key (inherits their permissions)
- Choose a descriptive, meaningful name
- Confirm you have a secure storage location ready
Upon Creation
- Copy the key immediately to secure storage
- Store in password manager or secret management system
- Never commit to version control
- Document where the key will be used
- Set a calendar reminder for rotation (before 3-month expiration)
During Usage
- Use environment variables, never hardcode
- Implement proper error handling for API failures
- Monitor usage and performance
- Log API errors (but never log the key itself)
- Use separate keys for different environments
Regular Maintenance
- Review active keys monthly
- Delete unused keys
- Rotate keys before expiration
- Audit API usage patterns
- Update documentation when keys change
- Test new keys before deleting old ones
Troubleshooting
API key not working after creation
API key not working after creation
Possible Issues:
- Key not copied correctly (extra spaces, truncation)
- Not included in Authorization header
- Using wrong API endpoint
- User permissions insufficient
- Regenerate the key and copy carefully
- Verify header format:
Authorization: Bearer YOUR_KEY - Check API documentation for correct endpoints
- Verify user role has required permissions
Key stopped working suddenly
Key stopped working suddenly
Possible Issues:
- Key expired (3-month lifespan)
- Key was deleted by admin
- User’s permissions changed
- Account plan changed affecting limits
- Check key expiration date
- Verify key still exists in settings
- Contact admin about permission changes
- Generate new key and update applications
Getting rate limit errors
Getting rate limit errors
Possible Issues:
- Exceeded your plan’s API rate limits
- Too many concurrent requests
- Application not handling retries properly
- Implement exponential backoff
- Reduce request frequency
- Consider upgrading your plan
- Batch requests where possible
Key accidentally exposed
Key accidentally exposed
Immediate Actions:
- Delete the key immediately
- Generate a new replacement key
- Update all applications
- Review recent API usage for unauthorized access
- If in version control, contact support about repository history