DRDifferent Requests
Limits

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.

FieldMaximum lengthError message
Request title200 charactersShorten this to 200 characters or fewer.
Request body5000 charactersShorten this to 5000 characters or fewer.
Comment2000 charactersShorten this to 2000 characters or fewer.
externalID200 charactersShorten this to 200 characters or fewer.
Display name200 charactersShorten 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.