Rate Limiting & Credits
Understand how rate limits, monthly quotas, and the credit system work in the Soke API.
Rate Limits
Every quota-tracked API call is subject to two limits based on your subscription tier:
| Tier | Per-Minute Limit | Monthly Credits |
|---|---|---|
| Creator ($15/mo) | 10 req/min | 500 |
| Pro ($39/mo) | 30 req/min | 2,000 |
| Scale ($99/mo) | 60 req/min | 10,000 |
Rate limit headers
Every API response includes these headers so you can track usage:
| Header | Description |
|---|---|
X-Soke-Limit | Maximum requests allowed in the current window |
X-Soke-Remaining | Remaining requests in the current window |
X-Soke-Reset | Unix timestamp when the current window resets |
When rate limited
If you exceed your rate limit, you'll receive a 429 Too Many Requests response:
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "You have exceeded your rate limit of 10 requests per minute.",
"details": {
"retryAfter": 45
}
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}The response also includes a Retry-After header with the number of seconds to wait.
Credit System
In addition to rate limits, each API operation consumes credits from your account balance. Credits are included with your subscription and can be purchased separately.
Credit costs per operation
| Operation | Endpoint | Credits |
|---|---|---|
| Tag Suggestions | POST /api/v1/tags/suggest | 1 |
| Keyword Research | POST /api/v1/research/keywords | 2 |
| Content Research | POST /api/v1/research/content | 2 |
| Content Scoring | POST /api/v1/content/score | 2 |
| Trend Scan | GET /api/v1/trends/scan | 2 |
| Title Optimization | POST /api/v1/content/optimize-title | 3 |
| Description Generation | POST /api/v1/content/generate-description | 3 |
| Competitor Analysis | POST /api/v1/competitor/analyze | 3 |
| Content Repurposing | POST /api/v1/content/repurpose | 4 |
| Thumbnail Generation | POST /api/v1/thumbnail/generate | 4 |
| Chat Completion | POST /api/v1/chat/completions | 5 |
Credit headers
Every quota-tracked response includes credit information:
| Header | Description |
|---|---|
X-Soke-Credits-Remaining | Your credit balance after the operation |
X-Soke-Credits-Charged | Credits charged for this specific operation |
Insufficient c-redits
If your credit balance is too low, you'll receive a 402 response:
{
"success": false,
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "You do not have enough credits for this operation.",
"details": {
"required": 1,
"available": 0
}
},
"meta": {
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}Credit refunds
If a server error (5xx) occurs after credits have been debited, the credits are automatically refunded to your account.
Purchasing additional credits
You can purchase additional credit packages via the API or from your dashboard. See Credits > Purchase for details.
Check your current balance at any time with GET /api/v1/credits/balance. See Credits > Balance.
Which endpoints are quota-tracked?
All endpoints except the following are quota-tracked:
/api/v1/auth/*— Authentication/api/v1/billing/*— Billing & subscriptions/api/v1/onboarding/*— Account onboarding/api/v1/accounts/*— Account management/api/v1/webhooks/*— Webhooks/api/v1/usage/*— Usage analytics/api/v1/api-keys/*— API key management/api/v1/connections/*— Platform connections/api/v1/jobs/*— Job polling/api/v1/credits/*— Credit management