API Key Authentication
60db uses API key authentication to secure all API requests. Your API key should be included in theAuthorization header of every request.
Getting Your API Key
1
Login to Dashboard
Navigate to app.60db.ai and log in
2
Access API Keys
Open Developers → API Keys in the selected workspace
3
Create Key
Click “Create API Key” and provide a descriptive name
4
Store Securely
Copy and store your API key in a secure location
Native module scopes
The same 60db workspace API-key system covers TTS, STT, SLM, Memory, Judge and WhatsApp. New keys created without apermissions object use the six-module default. An explicitly supplied object grants only the modules set to boolean true; omitted or false scopes do not grant access. Existing keys keep their recorded permissions.
WhatsApp API calls require whatsapp: true. Assistant workflows also require the native scopes they use (slm, and memory, stt, tts or judge when enabled). Scopes do not override current workspace membership, role, plan or credit requirements. Sending and management require an active Starter, Creator or Pro platform plan; Flow licences do not include WhatsApp access. Retained history remains readable under its read permission.
An owner or admin connects the customer business account through WhatsApp → Numbers, using Meta Embedded Signup. Your application’s server uses its 60db key; customer Meta access tokens and shared Meta app credentials stay on the 60db backend.
Read connected number IDs without sending a message:
Using Your API Key
With SDKs
- JavaScript/TypeScript
- Python
Direct API Calls
If you’re making direct HTTP requests, include your API key in theAuthorization header:
Security Best Practices
Environment Variables
Store your API key in environment variables:- Node.js
- Python
Create a Use it in your code:
.env file:Key Rotation
Regularly rotate your API keys for enhanced security:- Create a new API key
- Update your application to use the new key
- Test that everything works correctly
- Delete the old API key
Rate Limiting
API requests are rate-limited based on your subscription plan:Rate limit headers are included in every API response: -
X-RateLimit-Limit:
Maximum requests allowed - X-RateLimit-Remaining: Remaining requests in
current window - X-RateLimit-Reset: Time when the rate limit resetsError Handling
When authentication fails, you’ll receive a401 Unauthorized response: