Internet Assigned Numbers Authority

JSON Meta Application Protocol (JMAP)

Last Updated
Available Formats



Plain text

Registries included below

JMAP Capabilities

Neil Jenkins, Chris Newman
Available Formats

Range Registration Procedures
intended use field is “common" or “placeholder” Specification Required
all other values Expert Review
Capability Name Intended Use Change Controller Security and Privacy Considerations Reference
urn:ietf:params:jmap:core common IETF [RFC8620, Section 8] [RFC8620, Section 2]
urn:ietf:params:jmap:error: placeholder IETF [RFC8620, Section 8] [RFC8620, Section 9.5]
urn:ietf:params:jmap:mail common IETF [RFC8621, Section 9] [RFC8621]
urn:ietf:params:jmap:mdn common IETF [RFC9007, Section 5] [RFC9007]
urn:ietf:params:jmap:smimeverify common IETF [RFC9219, Section 6] [RFC9219]
urn:ietf:params:jmap:submission common IETF [RFC8621, Section 9] [RFC8621]
urn:ietf:params:jmap:vacationresponse common IETF [RFC8621, Section 9] [RFC8621]
urn:ietf:params:jmap:blob common IETF [RFC9404, Section 5] [RFC9404]
urn:ietf:params:jmap:quota common IETF [RFC9425, Section 7] [RFC9425]
urn:ietf:params:jmap:sieve common IETF [RFC-ietf-jmap-sieve-22, Section 5] [RFC-ietf-jmap-sieve-22]
urn:ietf:params:jmap:principals common IETF [RFC-ietf-jmap-sharing-09, Section 6] [RFC-ietf-jmap-sharing-09]
urn:ietf:params:jmap:principals:owner common IETF [RFC-ietf-jmap-sharing-09, Section 6] [RFC-ietf-jmap-sharing-09]
urn:ietf:params:jmap:contacts common IETF [RFC-ietf-jmap-contacts-10, Section 6] [RFC-ietf-jmap-contacts-10]

JMAP Error Codes

Registration Procedure(s)
Expert Review
Neil Jenkins, Chris Newman
Available Formats

JMAP Error Code Intended Use Change Controller Description Reference
accountNotFound common IETF The accountId does not correspond to a valid account. [RFC8620, Section 3.6.2]
accountNotSupportedByMethod common IETF The accountId given corresponds to a valid account, but the account does not support this method or data type. [RFC8620, Section 3.6.2]
accountReadOnly common IETF This method modifies state, but the account is read-only (as returned on the corresponding Account object in the JMAP Session resource). [RFC8620, Section 3.6.2]
anchorNotFound common IETF An anchor argument was supplied, but it cannot be found in the results of the query. [RFC8620, Section 5.5]
alreadyExists common IETF The server forbids duplicates, and the record already exists in the target account. An existingId property of type Id MUST be included on the SetError object with the id of the existing record. [RFC8620, Section 5.4]
cannotCalculateChanges common IETF The server cannot calculate the changes from the state string given by the client. [RFC8620, Section 5.2 and 5.6]
forbidden common IETF The action would violate an ACL or other permissions policy. [RFC8620, Section 3.6.2, 5.3, and 7.2.1]
fromAccountNotFound common IETF The fromAccountId does not correspond to a valid account. [RFC8620, Section 5.4 and 6.3]
fromAccountNotSupportedByMethod common IETF The fromAccountId given corresponds to a valid account, but the account does not support this data type. [RFC8620, Section 5.4]
invalidArguments common IETF One of the arguments is of the wrong type or otherwise invalid, or a required argument is missing. [RFC8620, Section 3.6.2]
invalidPatch common IETF The PatchObject given to update the record was not a valid patch. [RFC8620, Section 5.3]
invalidProperties common IETF The record given is invalid. [RFC8620, Section 5.3]
notFound common IETF The id given cannot be found. [RFC8620, Section 5.3]
notJSON common IETF The content type of the request was not application/json, or the request did not parse as I-JSON. [RFC8620, Section 3.6.1]
notRequest common IETF The request parsed as JSON but did not match the type signature of the Request object. [RFC8620, Section 3.6.1]
overQuota common IETF The create would exceed a server-defined limit on the number or total size of objects of this type. [RFC8620, Section 5.3]
rateLimit common IETF Too many objects of this type have been created recently, and a server-defined rate limit has been reached. It may work if tried again later. [RFC8620, Section 5.3]
requestTooLarge common IETF The total number of actions exceeds the maximum number the server is willing to process in a single method call. [RFC8620, Section 5.1 and 5.3]
invalidResultReference common IETF The method used a result reference for one of its arguments, but this failed to resolve. [RFC8620, Section 3.6.2]
serverFail common IETF An unexpected or unknown error occurred during the processing of the call. The method call made no changes to the server's state. [RFC8620, Section 3.6.2]
serverPartialFail limited IETF Some, but not all, expected changes described by the method occurred. The client MUST resynchronise impacted data to determine the server state. [RFC8620, Section 3.6.2]
serverUnavailable common IETF Some internal server resource was temporarily unavailable. Attempting the same operation later (perhaps after a backoff with a random factor) may succeed. [RFC8620, Section 3.6.2]
singleton common IETF This is a singleton type, so you cannot create another one or destroy the existing one. [RFC8620, Section 5.3]
stateMismatch common IETF An ifInState argument was supplied, and it does not match the current state. [RFC8620, Section 5.3]
tooLarge common IETF The action would result in an object that exceeds a server-defined limit for the maximum size of a single object of this type. [RFC8620, Section 5.3]
tooManyChanges common IETF There are more changes than the client's maxChanges argument. [RFC8620, Section 5.6]
unknownCapability common IETF The client included a capability in the "using" property of the request that the server does not support. [RFC8620, Section 3.6.1]
unknownMethod common IETF The server does not recognise this method name. [RFC8620, Section 3.6.2]
unsupportedFilter common IETF The filter is syntactically valid, but the server cannot process it. [RFC8620, Section 5.5]
unsupportedSort common IETF The sort is syntactically valid but includes a property the server does not support sorting on or a collation method it does not recognise. [RFC8620, Section 5.5]
willDestroy common IETF The client requested an object be both updated and destroyed in the same /set request, and the server has decided to therefore ignore the update. [RFC8620, Section 5.3]
mailboxHasChild common IETF The Mailbox still has at least one child Mailbox. The client MUST remove these before it can delete the parent Mailbox. [RFC8621, Section 2.5]
mailboxHasEmail common IETF The Mailbox has at least one message assigned to it, and the onDestroyRemoveEmails argument was false. [RFC8621, Section 2.5]
blobNotFound common IETF At least one blob id referenced in the object doesn't exist. [RFC8621, Section 4.6]
tooManyKeywords common IETF The change to the Email's keywords would exceed a server-defined maximum. [RFC8621, Section 4.6]
tooManyMailboxes common IETF The change to the set of Mailboxes that this Email is in would exceed a server-defined maximum. [RFC8621, Section 4.6]
invalidEmail common IETF The Email to be sent is invalid in some way. [RFC8621, Section 7.5]
tooManyRecipients common IETF The envelope [RFC5321] (supplied or generated) has more recipients than the server allows. [RFC8621, Section 7.5]
noRecipients common IETF The envelope [RFC5321] (supplied or generated) does not have any rcptTo email addresses. [RFC8621, Section 7.5]
invalidRecipients common IETF The rcptTo property of the envelope [RFC5321] (supplied or generated) contains at least one rcptTo value that is not a valid email address for sending to. [RFC8621, Section 7.5]
forbiddenMailFrom common IETF The server does not permit the user to send a message with this envelope From address [RFC5321]. [RFC8621, Section 7.5]
forbiddenFrom common IETF The server does not permit the user to send a message with the From header field [RFC5322] of the message to be sent. [RFC8621, Sections 6.3 and 7.5]
forbiddenToSend common IETF The user does not have permission to send at all right now. [RFC8621, Section 7.5]
mdnAlreadySent common IETF The message has the "$mdnsent" keyword already set. The client MUST NOT try again to send an MDN for this message. [RFC9007, Section 2.1]
unknownDataType common IETF The server does not recognise this data type, or the capability to enable it is not present in the current Request Object. [RFC9404]
invalidSieve common IETF The SieveScript violates the Sieve grammar [RFC5228] and/or one or more extensions mentioned in the script's "require" statement(s) are not supported by the Sieve interpreter. [RFC-ietf-jmap-sieve-22, Section 2.4]
sieveIsActive common IETF The client tried to destroy the active SieveScript. [RFC-ietf-jmap-sieve-22, Section 2.4]
addressBookHasContents common IETF The AddressBook has at least one ContactCard assigned to it, and the "onDestroyRemoveContents" argument was false. [RFC-ietf-jmap-contacts-10, Section 2.3]

JMAP Data Types

Registration Procedure(s)
Specification Required
Ken Murchison, Neil Jenkins
Available Formats

Type Name Can Reference Blobs Can Use for State Change Capability Reference
Core No No urn:ietf:params:jmap:core [RFC8620]
PushSubscription No No urn:ietf:params:jmap:core [RFC8620]
Mailbox Yes Yes urn:ietf:params:jmap:mail [RFC8621]
Thread Yes Yes urn:ietf:params:jmap:mail [RFC8621]
Email Yes Yes urn:ietf:params:jmap:mail [RFC8621]
EmailDelivery No Yes urn:ietf:params:jmap:mail [RFC8621]
SearchSnippet No No urn:ietf:params:jmap:mail [RFC8621]
Identity No Yes urn:ietf:params:jmap:submission [RFC8621]
EmailSubmission No Yes urn:ietf:params:jmap:submission [RFC8621]
VacationResponse No Yes urn:ietf:params:jmap:vacationresponse [RFC8621]
MDN No No urn:ietf:params:jmap:mdn [RFC9007]
Quota No Yes urn:ietf:params:jmap:quota [RFC9425]
SieveScript Yes Yes urn:ietf:params:jmap:sieve [RFC-ietf-jmap-sieve-22]
Principal No Yes urn:ietf:params:jmap:principals [RFC-ietf-jmap-sharing-09]
ShareNotification No Yes urn:ietf:params:jmap:principals [RFC-ietf-jmap-sharing-09]
AddressBook No Yes urn:ietf:params:jmap:contacts [RFC-ietf-jmap-contacts-10]
ContactCard Yes Yes urn:ietf:params:jmap:contacts [RFC-ietf-jmap-contacts-10]