Limits
How long a title may be, and how many writes a minute one user gets.
How much text a field takes
Limits are counted in characters. Enforce them in your own composer, so a user sees your field's limit instead of an error.
| Field | Maximum length | Error message |
|---|---|---|
| Request title | 200 characters | Shorten this to 200 characters or fewer. |
| Request body | 5000 characters | Shorten this to 5000 characters or fewer. |
| Comment | 2000 characters | Shorten this to 2000 characters or fewer. |
| externalID | 200 characters | Shorten this to 200 characters or fewer. |
| Display name | 200 characters | Shorten this to 200 characters or fewer. |
How often a user can write
A write is submitting, voting, following, commenting or marking a notification read. Reads are not counted.
- 30 writes per user, per 60 seconds.
- 300 writes per app, per 60 seconds, so one user cannot use up the rate limit for everyone.
Past that, a write returns the error "Too many requests. Wait a moment, then try again.", with a Retry-After header.
catch let error as DifferentRequestsError {
if let seconds = error.retryAfterSeconds {
schedule(after: seconds)
}
}Every count resets to zero at the start of each 60-second window, not 60 seconds after the last write.
How often a user can sign in
Sign-ins are counted separately from writes, so a burst of sign-ins doesn't use up the write limit.
- 60 sign-ins from one IP address, per 60 seconds, across every app.
- 600 sign-ins per app, per 60 seconds.
- 120 new users per app, per 60 seconds. Users who have signed in before aren't counted.
Past those, createSession returns the error "Too many sign-ins. Wait a moment, then try again." or "Too many new users at once. Wait a moment, then try again.", with the same Retry-After header.