Overview
Rate limits protect Snipp from abuse and keep performance consistent for everyone. Limits apply per user, per endpoint. Hitting the cap on one endpoint does not affect requests to another.API Limits
| Endpoint | Limit | Window |
|---|---|---|
GET /users/{id} | No limit | |
GET /posts/{code} | 20 requests | Per 30 seconds |
POST /upload | 20 requests | Per 30 seconds |
GET /uploads | 20 requests | Per 30 seconds |
PATCH /editUpload | 20 requests | Per 30 seconds |
POST /appendUpload | 10 requests | Per minute |
DELETE /deleteUpload | 20 requests | Per 30 seconds |
POST /report-post and POST /report-user | 3 requests combined | Per minute |
POST /upload also has an abuse safeguard. More than 8 uploads per second triggers a temporary suspension of upload access for your account.
Relay Limits
The Relay API matches the limits above for shared endpoints, with these additional Relay-only endpoints:| Endpoint | Limit | Window |
|---|---|---|
GET /discover | No limit | |
GET /blocks | No limit | |
POST /block | 10 requests | Per minute |
POST /unblock | 10 requests | Per minute |
PATCH /profile | 10 requests | Per minute |
POST /profile/avatar | 10 requests | Per minute |
POST /profile/banner | 10 requests | Per minute |
POST /like | 30 requests | Per minute |
GET /comments | No limit | |
POST /comment | 5 requests | Per minute |
DELETE /comment | 5 requests | Per minute |
GET /posts/{code} and GET /discover on Relay automatically count views per post. Views are deduplicated per IP and post: up to 3 counted views per IP per post per hour.
See the Relay Reference for what Relay covers and how to authenticate.
Rate Limit Headers
Rate-limited responses include headers to help you track your usage:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed per window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp (seconds) when the window resets |
Rate Limit Responses
When you exceed the limit, the API returns HTTP status429:
429 responses so you know when to retry.
Weekly Usage Limit Responses
Separate from per-endpoint rate limits, every account has a weekly usage limit. Files that would push you over the limit are rejected before they are stored. The exact response shape depends on the endpoint:POST /uploadandPOST /appendUploadreturn200with the rejected file moved to thefailedarray. Each entry includeserror: "Weekly usage limit exceeded.", plusquota,used, andresetsAt.- The Website internal
/api/v1/albumand chunked-upload routes return413with the same fields at the top level.
GET /users/@me (limits.usage).
Handling Rate Limits
Best Practices
- Space out bulk uploads. When uploading multiple files, add a short delay between each request rather than sending them all at once.
- Cache user data. Avoid calling
/users/@merepeatedly. Fetch it once and reuse the result for the duration of your session. - Batch where possible. Reduce the total number of API calls by combining logic on your end instead of making multiple requests for related data.
- Monitor your usage. If you consistently hit rate limits, consider whether your integration can be optimized to make fewer requests.

