Save Filter
Request, response and authentication details for your Mailat instance.
/api/v1/inbox/filters/{uuid}SaveFilter Explicit user filter destinations override the automatic DMARC report folder. actionFolder accepts dmarc-reports; label-only and mark-read filters retain the automatically selected folder. Spam and virus decisions are preserved.
Authentication & compatibility
Use a scoped bearer API key with email:manage. The key is bound to its user and organization.
SES email workflow and its stored mailbox/configuration data. Provider actions require configured AWS permissions and verified owned domains; receiving is opt-in.
Contract 2026-10-04. Your running instance's /api/v1/openapi.json is authoritative for its deployed release.
Request
Set MAILAT_BASE_URL to your instance origin (without /api/v1) and MAILAT_TOKEN to an appropriate credential. Replace path placeholders and example data before running. These examples do not execute in this page.
curl --request PUT "$MAILAT_BASE_URL/api/v1/inbox/filters/{uuid}" \
--header "Authorization: Bearer $MAILAT_TOKEN" \
--header 'Content-Type: application/json' \
--data '{
"actionFolder": "archive",
"active": true,
"conditionLogic": "all",
"conditions": [
{
"field": "subject",
"operator": "contains",
"value": "invoice"
}
],
"name": "Invoice mail"
}'Parameters
uuidstringrequiredRequest body (required)
application/json
bodyobjectrequiredFields
actionArchivebooleanactionFolderstringAn explicit destination overrides automatic DMARC organization. Empty leaves the selected folder unchanged.
Allowed: "" | "inbox" | "archive" | "spam" | "trash" | "dmarc-reports"
actionForwardstringactionLabelsarrayEach itemstringactionMarkReadbooleanactionStarbooleanactionTrashbooleanactivebooleanconditionLogicstringall, any
conditionsarrayEach itemobjectFields · model.FilterCondition
fieldstringfrom, to, subject, body, hasAttachment
operatorstringcontains, equals, startsWith, endsWith, regex
valuestringidentityIdall of · nullableVariant 1integer (int64)namestringpriorityinteger (int64)Responses
HTTP statuses and body shapes below come from the pinned contract. Not every shared error applies to every request. Retain the original idempotency key when retrying a send.
200 · Success
Header: X-RateLimit-RemainingintegerRemaining requests in this API key's current minute window (present for API-key authentication).
minimum: 0
application/json
responseobjectFields
codeintegerrequireddataall of · nullableVariant 1objectFields · model.InboxFilter
actionArchivebooleanactionFolderstringAn explicit destination overrides automatic DMARC organization. Empty leaves the selected folder unchanged.
Allowed: "" | "inbox" | "archive" | "spam" | "trash" | "dmarc-reports"
actionForwardstringactionLabelsarrayEach itemstringactionMarkReadbooleanactionStarbooleanactionTrashbooleanactivebooleanconditionLogicstringall, any
conditionsarrayEach itemobjectFields · model.FilterCondition
fieldstringfrom, to, subject, body, hasAttachment
operatorstringcontains, equals, startsWith, endsWith, regex
valuestringcreatedAtstring (date-time)idinteger (int64)identityIdall of · nullableVariant 1integer (int64)lastMatchedAtall of · nullableVariant 1string (date-time)matchCountinteger (int64)namestringorgIdinteger (int64)priorityinteger (int64)updatedAtstring (date-time)userIdinteger (int64)uuidstringmessagestringrequired400 · Invalid input
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired401 · Missing, expired or revoked authentication
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired403 · Insufficient permission
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired404 · Resource not found
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired409 · Conflict or changed idempotency payload
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired410 · Recovery cursor expired; resynchronize
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired429 · Rate limit exceeded; respect Retry-After
Header: Retry-AfterintegerSeconds until the next fixed-minute request window.
minimum: 1
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired500 · Internal failure; retain the idempotency key
application/json
responseobjectFields
codeintegerrequiredmessagestringrequired