API rate limits, error codes, and best practices.
Rate limits
Each workspace is limited to 10 requests per second across all API key-authenticated endpoints. If you exceed this limit, the API returns 429 Too Many Requests with a Retry-After: 1 header.
Error format
Errors are returned as JSON:
{
"errors": [{ "msg": "Invalid API key" }]
}
Common status codes
| Code | Meaning |
|---|---|
200 | Success |
400 | Invalid request body or parameters |
401 | Missing or invalid API key |
403 | Missing required scope or plan restriction |
404 | Resource not found |
409 | Conflict (e.g. slug already in use) |
422 | Validation error |
429 | Rate limit exceeded |
500 | Server error |
Plan limits
API access requires a paid plan. Short link creation still respects your plan limits for custom slugs, scheduling, and monthly quotas.
Best practices
- Implement exponential backoff on
429responses - Cache analytics results when polling frequently
- Use webhooks (coming soon) instead of polling for click events