Skip to content

Rate Limits

Korta applies per-endpoint rate limiting by client IP.

Default windows and limits:

  • Public shorten: 100/hour
  • Redirects: 300/5 minutes
  • Login: 10/15 minutes
  • Register: 5/15 minutes
  • Forgot password: 5/15 minutes
  • Reset password: 10/15 minutes
  • API key regenerate: 5/15 minutes
EndpointLimitWindow
POST /api/v1/urls/public100 requests60 minutes
GET /:shortId and GET /api/v1/urls/redirect/:shortId300 requests5 minutes
POST /api/v1/auth/login10 requests15 minutes
POST /api/v1/auth/register5 requests15 minutes
POST /api/v1/auth/forgot-password5 requests15 minutes
POST /api/v1/auth/reset-password10 requests15 minutes
POST /api/v1/auth/api-key/regenerate5 requests15 minutes

The API uses standard rate limit headers (standardHeaders: true), with legacy headers disabled.

HeaderDescription
RateLimit-LimitMaximum requests allowed in the current window.
RateLimit-RemainingRequests remaining in the current window.
RateLimit-ResetSeconds until the current rate-limit window resets.

When a limiter is exceeded, the API responds with:

  • HTTP 429 Too Many Requests
  • Error body:
{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Too many login attempts. Please try again later."
}

The message is endpoint-specific.