Introduction
The Salescaling Public API provides programmatic access to manage your calls, meetings, users, contacts, and other data. This guide will help you get started with authentication and understand rate limiting policies.
Authentication
What is an API Key?
API keys are secure tokens that authenticate your requests to the Public API. Each key is unique and tied to your account, allowing you to access your data programmatically.
How to Create an API Key
Go to Settings > API Keys in your Salescaling dashboard
Click the "Create New API Key"
Enter a name for your key (e.g., "Production Integration", "Development")
Optionally, set an expiration date for added security
Click Create
Important: Copy the key immediately - it will only be shown once
Store it securely (we recommend using environment variables or a secrets manager)
Using your API Key
Include the API key in the header
x-api-keyfor all requestsAll Public API endpoints are available at:
https://api.salescaling.com/api/v1/Example request header:
x-api-key: your-api-key-here
Scopes (Permissions)
API keys use a scopes system to control what actions they can perform. When creating an API key, you must select at least one scope:
Available Scopes
Voice Agents:
voice-agents:webhook- Allows initiating calls via webhookvoice-agents:read- Allows reading information about voice agentsvoice-agents:write- Allows creating and modifying voice agents
Contacts:
contacts:read- Allows reading contact informationcontacts:write- Allows creating and modifying contacts
Companies:
companies:read- Allows reading company informationcompanies:write- Allows creating and modifying companies
Calls:
calls:read- Allows reading call informationcalls:write- Allows creating and modifying calls
Meetings:
meetings:read- Allows reading meeting informationmeetings:write- Allows creating and modifying meetings
Opportunities:
opportunities:read- Allows reading opportunity informationopportunities:write- Allows creating and modifying opportunities
Calendar:
calendar:read- Allows reading calendar informationcalendar:write- Allows creating and modifying calendar events
Users:
users:read- Allows reading user information
Example Use of Scopes
If you only need to initiate calls via webhook, select only the scope voice-agents:webhook. This follows the principle of least privilege, granting only the necessary permissions.
Permissions and Ownership
API keys act on behalf of the user who created them
Scopes limit what actions the API key can perform
Any action performed using an API key will appear as if performed by the creating user
For example, if you create a call using an API key, you will appear as the owner of that call
Only create API keys for users with appropriate access levels
Assign only the scopes necessary for each API key
Security Best Practices
Never share your API keys or include them in version control
Store keys in environment variables or a secure secrets manager
Rotate keys regularly (recommended every 90 days)
Immediately delete keys that are unused or compromised
Assign only the necessary scopes (principle of least privilege)
Create different API keys for different integrations or purposes
Monitor the usage of your API keys regularly
Create separate keys for different environments (development, staging, production)
Use read-only keys when you only need to retrieve data
Manage your API Keys
View all your keys in Settings > API Keys
Update key names or expiration dates at any time
Delete keys you no longer need
Note: Once created, the full value of the key cannot be retrieved again
Rate Limiting
Summary
To ensure fair use and system stability, the API implements rate limiting on all endpoints.
Rate Limits
Three concurrent limits apply to your requests:
Short term: 20 requests per second
Medium term: 200 requests per 10 seconds
Long term: 1,000 requests per minute
How It Works
Limits are tracked per API key
All three limits are active simultaneously
If you exceed any limit, you will receive a 429 error response
Handling Rate Limits
When you receive a 429 (Too Many Requests) response:
Check the header
Retry-Afterto know when to retryWait the specified time before making another request
Implement exponential backoff in your retry logic
Example: wait 1s, then 2s, then 4s, etc. between retries
Best Practices
Cache API responses when possible to reduce requests
Use webhooks instead of polling for real-time updates
Batch operations when the API supports it
Spread requests over time instead of sending bursts
Monitor your usage to stay within limits
If you need higher limits, contact support
Quick Start Examples
cURL
JavaScript/TypeScript
Python
Node.js with axios
Next Steps
Explore the available endpoints in the API reference
Learn about Webhooks for real-time notifications
Check our integration examples
Last updated
Was this helpful?
