Skip to main content
Version: 0.16

Search

Configures full-text search indexing for emails, calendars, contacts, and tracing.

This object can be configured from the WebUI under Settings › Search

Fields

indexBatchSize

Type: UnsignedInt · default: 100 · min: 1

Number of items to process in each batch during indexing operations

defaultLanguage

Type: Locale · default: "en_US"

Default language to use when language detection is not possible

supportedLanguages

Type: Locale[] · default: ["en_US"]

List of languages to enable for full-text search

indexCalendar

Type: Boolean · default: true

Enable full-text search indexing for calendar data

indexCalendarFields

Type: SearchCalendarField[] · default: ["title","description","location","owner","attendee","start","uid"]

List of calendar fields to index

indexContacts

Type: Boolean · default: true

Enable full-text search indexing for contacts data

indexContactFields

Type: SearchContactField[] · default: ["member","kind","name","nickname","organization","email","phone","onlineService","address","note","uid"]

List of contact fields to index

indexEmail

Type: Boolean · default: true

Enable full-text search indexing for email content and metadata

indexEmailFields

Type: SearchEmailField[] · default: ["from","to","cc","bcc","subject","body","attachment","receivedAt","sentAt","size","hasAttachment"]

List of email fields to index

indexTelemetry

Type: Boolean · enterprise · default: true

Enable full-text search indexing for tracing data

indexTracingFields

Type: SearchTracingField[] · enterprise · default: ["eventType","queueId","keywords"]

List of tracing fields to index

JMAP API

The Search singleton is available via the urn:stalwart:jmap capability.

x:Search/get

This is a standard Foo/get method as defined in RFC 8620, Section 5.1.

For singletons, the ids argument should be the literal singleton (or null to return the single instance).

This method requires the sysSearchGet permission.

curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Search/get",
{
"ids": [
"singleton"
]
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

x:Search/set

This is a standard Foo/set method as defined in RFC 8620, Section 5.3.

For singletons, only the update argument with id singleton is accepted; create and destroy arguments are rejected.

This method requires the sysSearchUpdate permission.

curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Search/set",
{
"update": {
"singleton": {
"indexBatchSize": 100
}
}
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

CLI

stalwart-cli wraps the same JMAP calls. See the CLI reference for installation, authentication, and general usage.

Fetch

stalwart-cli get search

Update

stalwart-cli update search --field description='Updated'

Enums

SearchCalendarField

ValueLabel
titleEvent Title
descriptionEvent Description
locationEvent Location
ownerEvent Owner
attendeeEvent Attendee
startEvent Start Date
uidEvent UID

SearchContactField

ValueLabel
memberGroup Member
kindContact Kind
nameContact Name
nicknameContact Nickname
organizationContact Organization
emailContact Email
phoneContact Phone
onlineServiceContact Online Service
addressContact Address
noteContact Note
uidContact UID

SearchEmailField

ValueLabel
fromFrom Address
toTo Address
ccCc Address
bccBcc Address
subjectSubject
bodyBody Content
attachmentAttachment Content
receivedAtReceived Date
sentAtSent Date
sizeMessage Size
hasAttachmentHas Attachment
headersEmail Headers

SearchTracingField

ValueLabel
eventTypeEvent Type
queueIdQueue ID
keywordsKeywords