Skip to main content
Spoo.me API implements rate limiting to ensure fair usage and maintain service quality for all users. Rate limits vary based on authentication method and API version. The new v1 API offers significantly higher rate limits with authentication:

With Authentication (JWT or API Key)

Per Minute

60 requests

Per Day

5,000 requests

Endpoints

All v1 endpoints

Without Authentication (Anonymous)

Per Minute

20 requests

Per Day

1,000 requests

Endpoints

Limited endpoints
Get 3x more requests by using API keys or JWT authentication! Anonymous users are limited to 20 requests/minute vs 60 requests/minute for authenticated users.

API v0 Rate Limits (Legacy)

The legacy v0 API has lower rate limits:

Per Minute

10 short URLs per IP

Per Hour

100 short URLs per IP

Per Day

500 short URLs per IP
The v0 API is legacy and does not support authentication. We recommend migrating to the v1 API for better rate limits and features.

Rate Limits by Endpoint

URL Shortening

v1 API Endpoints

EndpointAuthenticatedAnonymousNotes
POST /api/v1/shorten60/min, 5000/day20/min, 1000/dayv1 API

v0 API Endpoints (Legacy)

The following endpoints are part of the legacy v0 API. They do not support authentication and have lower rate limits.
EndpointAuthenticatedAnonymousNotes
POST /-10/min, 100/hr, 500/dayv0 API (legacy)
POST /emoji-10/min, 100/hr, 500/dayv0 API (legacy)

URL Management

EndpointAuthenticatedAnonymousNotes
GET /api/v1/urls60/min, 5000/dayNot allowedRequires auth
PATCH /api/v1/urls/{id}60/min, 5000/dayNot allowedRequires auth
PATCH /api/v1/urls/{id}/status60/min, 5000/dayNot allowedRequires auth
DELETE /api/v1/urls/{id}60/min, 5000/dayNot allowedRequires auth

Analytics

EndpointAuthenticatedAnonymousNotes
GET /api/v1/stats60/min, 5000/day20/min, 1000/dayPublic URLs only for anon
POST /stats/{code}--v0 API (legacy)
POST /export/{code}/{format}--v0 API (legacy)

Authentication & Rate Limits

How you authenticate directly affects your rate limits:
Rate Limits: 60/min, 5000/dayBenefits:
  • Same rate limits as API keys
  • Full dashboard access
  • Can create/manage API keys
  • Manage URLs via web UI
How to use: Obtain JWT via OAuth/login and include in header:
Authorization: Bearer YOUR_JWT_TOKEN
Rate Limits: 20/min, 1000/dayLimitations:
  • 3x lower rate limits
  • Cannot manage URLs later
  • No access to private stats
  • Cannot use URL management endpoints
How to use: Simply make requests without authentication header.

Rate Limit Headers

When you make requests to rate-limited endpoints, the response will include headers indicating your current usage:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640995200
Retry-After: 30

Handling Rate Limits

When you exceed the rate limit, you’ll receive a 429 Too Many Requests response:
{
  "error": "Rate limit exceeded"
}

Need Higher Limits?

If you need higher rate limits for your application:
1

Contact Support

If you still need higher limits, contact our support team at [email protected] with:
  • Details about your use case
  • Expected request volume
  • Description of your application

Next Steps