Skip to content

Protocol

JMAP protocol behaviour is configured on the Jmap singleton (found in the WebUI under Settings › Network › JMAP › Limits, Settings › Network › JMAP › Push, Settings › Network › JMAP › WebSocket). The fields below influence request handling, upload quotas, and the size of responses returned by get, set, query, and changes methods.

Request limits guard the JMAP server against resource exhaustion:

  • maxConcurrentRequests: the number of concurrent requests a single user may have in flight. Default 4.
  • maxRequestSize: the maximum size of a single request, in bytes. Default 10000000.
  • maxMethodCalls: the maximum number of method calls that can be included in a single request. Default 16.

Upload limits restrict how often and how much data users can upload:

  • maxUploadSize: the maximum size of a single uploaded file, in bytes. Default 50000000.
  • maxConcurrentUploads: the number of concurrent uploads a single user may have in flight. Default 4.
  • uploadTtl: how long each uploaded file is kept in temporary storage before it is deleted. Default "1h".
  • maxUploadCount: the maximum number of files a user may upload within the quota window. Default 1000.
  • uploadQuota: the total aggregate size of uploaded files allowed per user within the quota window, in bytes. Default 50000000.

Object limits restrict the number of objects returned or modified by a single method call:

  • getMaxResults: the maximum number of objects that can be fetched in a single method call. Default 500.
  • setMaxObjects: the maximum number of objects that can be modified in a single method call. Default 500.
  • queryMaxResults: the maximum number of results returned by a Query method. Default 5000.
  • changesMaxResults: the maximum number of change objects returned by a Changes method. Default 5000.