Overview
The SO1 API implements rate limiting to ensure fair usage and system stability across all users. Rate limits are enforced per API key and vary by subscription tier.Rate Limit Headers: All API responses include rate limit information in response headers to help you track your usage.
Rate Limit Tiers
SO1 API rate limits are organized by subscription tier. Higher tiers receive increased limits and priority processing.| Tier | Requests/Minute | Requests/Hour | Requests/Day | Burst Limit |
|---|---|---|---|---|
| Free | 10 | 300 | 5,000 | 15 |
| Starter | 60 | 2,000 | 40,000 | 100 |
| Professional | 300 | 12,000 | 200,000 | 500 |
| Enterprise | 1,000 | 50,000 | 1,000,000 | 2,000 |
| Custom | Custom | Custom | Custom | Custom |
Burst Limits: Allow short bursts of traffic above the per-minute rate. Useful for batch operations or webhook processing.
Rate Limit Headers
Every API response includes headers indicating your current rate limit status:Header Reference
| Header | Description | Example |
|---|---|---|
X-RateLimit-Limit | Maximum requests allowed per minute | 300 |
X-RateLimit-Remaining | Requests remaining in current window | 287 |
X-RateLimit-Reset | Unix timestamp when limit resets | 1678901234 |
X-RateLimit-Tier | Current subscription tier | professional |
X-RateLimit-Burst-Remaining | Burst capacity remaining | 450 |
Rate Limit Exceeded Response
When you exceed your rate limit, the API returns a429 Too Many Requests response:
Endpoint-Specific Limits
Certain resource-intensive endpoints have additional rate limits:Control Plane API
| Endpoint Category | Additional Limit | Reason |
|---|---|---|
| Agent Execution | 50 concurrent executions | Prevents resource exhaustion |
| Workflow Triggers | 100 triggers/minute | Protects workflow infrastructure |
| Bulk Operations | 1,000 items/request | Limits payload size |
| Metrics Queries | 10 queries/minute | Database protection |
Veritas API
| Endpoint Category | Additional Limit | Reason |
|---|---|---|
| Prompt Testing | 20 tests/minute | LLM quota management |
| Chain Execution | 30 chains/minute | Complex operation throttling |
| Batch Refinement | 50 prompts/batch | Processing limits |
n8n API
| Endpoint Category | Additional Limit | Reason |
|---|---|---|
| Workflow Execution | 100 executions/minute | n8n instance protection |
| Webhook Registration | 10 webhooks/minute | External service rate limits |
| Bulk Workflow Import | 5 imports/hour | Validation overhead |
Rate Limiting Best Practices
1. Monitor Rate Limit Headers
1. Monitor Rate Limit Headers
Always check rate limit headers in your API client and implement proactive throttling:
2. Implement Exponential Backoff
2. Implement Exponential Backoff
When receiving 429 responses, implement exponential backoff with jitter:
3. Use Request Queuing
3. Use Request Queuing
Implement a request queue to stay within rate limits:
4. Batch Requests When Possible
4. Batch Requests When Possible
Use batch endpoints to reduce API calls:
5. Cache Responses
5. Cache Responses
Cache API responses to reduce redundant requests:
Increasing Rate Limits
Upgrade Your Tier
The most straightforward way to increase rate limits is to upgrade your subscription tier:Starter → Professional
5x increase in rate limits
- 60 → 300 requests/minute
- 2,000 → 12,000 requests/hour
Professional → Enterprise
3.3x increase in rate limits
- 300 → 1,000 requests/minute
- 12,000 → 50,000 requests/hour
Request Custom Limits
For specialized use cases requiring higher limits:- Contact Sales: Email enterprise@so1.io with your use case
- Provide Usage Estimates: Include expected traffic patterns
- Describe Architecture: Explain how you’ll handle bursts
- Review SLA Requirements: Discuss uptime and latency needs
Enterprise Custom Tiers: Available for organizations with >1M requests/day or specialized requirements.
Rate Limit Monitoring
Using the Dashboard
Monitor your rate limit usage in the SO1 Dashboard:- Navigate to Settings → API Keys
- View real-time rate limit metrics per key
- Set up alerts for approaching limits
- Review historical usage patterns
Using the API
Query your current rate limit status programmatically:Troubleshooting
Common Issues
| Issue | Symptom | Resolution |
|---|---|---|
| Unexpected 429s | Rate limited despite low usage | Check for multiple API keys using same account; consolidate keys |
| Burst limit exhausted | 429s after rapid requests | Implement request pacing with minimum intervals |
| Reset time confusion | Unclear when limits reset | Use X-RateLimit-Reset Unix timestamp, not Retry-After |
| Endpoint-specific limits | 429 on specific endpoint only | Review endpoint-specific limits above; use alternative endpoints |
| Caching not effective | High request volume for static data | Increase cache TTL; use ETags for conditional requests |
Getting Help
If you’re experiencing rate limiting issues:Check System Status
View real-time API performance and known issues
Contact Support
Email support with your API key and request patterns