Settings
Manage account settings — IP pools, email signatures, SMTP pools, unsubscribe pages, and whitelabel configuration
The settings API covers account-level configuration. All endpoints require an active dashboard session.
Requires active session (dashboard only).
Get audit log
/api/settings/auditRetrieve the compliance audit log. Records include consent events, domain verification results, and billing actions.
Query parameters
pageintegerquerydefault: 1Page number.
limitintegerquerydefault: 50Records per page (max 100).
event_typestringqueryFilter by event type (e.g. consent_granted, domain_verified).
Response fields
entriesArray<object>Audit log entries, each with id, action, timestamp, and metadata.
paginationobjectPagination metadata: page, limit, and total.
{
"entries": [
{
"id": "audit_01hx9k",
"action": "consent_granted",
"timestamp": "2025-06-14T09:00:00Z",
"metadata": { "analytics": true, "marketing": true }
}
],
"pagination": { "page": 1, "limit": 50, "total": 214 }
}List IP pools
/api/settings/ip-poolsList all IP pools with current capacity.
Response fields
[]Array<object>IP pools, each with id, name, pool_type, ips, and capacity.
[
{ "id": "pool_t01", "name": "transactional", "pool_type": "transactional", "ips": ["198.51.100.42"], "capacity": 50000 }
]Create IP pool
/api/settings/ip-poolsCreate a custom IP pool.
Request body
namestringbodyDisplay name for the pool.
ipsstring[]bodyIP addresses in the pool.
pool_typestringbodyPool type, e.g. transactional.
{
"name": "my-transactional-pool",
"ips": ["198.51.100.42", "198.51.100.43"],
"pool_type": "transactional"
}List signatures
/api/settings/signaturesList all saved email signatures.
Response fields
[]Array<object>Signatures, each with id, name, html, and is_default.
[
{ "id": "sig_abc1", "name": "Default Signature", "html": "<p>Best, Jane</p>", "is_default": true }
]Create signature
/api/settings/signaturesCreate a new signature.
Request body
namestringbodyrequiredDisplay name for the signature.
htmlstringbodyrequiredHTML content of the signature.
is_defaultbooleanbodySet as the default signature. Unsets any existing default.
curl -X POST /api/settings/signatures \
-H "Content-Type: application/json" \
-d '{
"name": "Sales Signature",
"html": "<p>Thanks,<br><strong>Jane Doe</strong><br>Sales · example.com</p>",
"is_default": false
}'Delete signature
/api/settings/signaturesDelete a signature by ID. If the deleted signature was the default, no signature becomes default — you must explicitly set a new one.
Query parameters
idstringqueryrequiredID of the signature to delete.
DELETE /api/settings/signatures?id=sig_abc1
List SMTP pools
/api/settings/smtp-poolsList SMTP pool configurations. Passwords are never returned.
GET /api/settings/smtp-pools
Create SMTP pool
/api/settings/smtp-poolsCreate an SMTP pool.
Request body
namestringbodyDisplay name.
hoststringbodySMTP server hostname.
portintegerbodySMTP port (typically 587 or 465).
usernamestringbodySMTP username.
passwordstringbodySMTP password (stored encrypted, never returned).
encryptiontls | ssl | nonebodyConnection encryption.
POST /api/settings/smtp-pools
Content-Type: application/json
Test SMTP pool
/api/settings/smtp-pools/:id/testTest an SMTP connection. No body needed.
Path parameters
idstringpathrequiredID of the SMTP pool to test.
Response fields
successbooleantrue when the connection succeeded.
latencyMsnumberConnection latency in milliseconds.
errorstringError message when the connection failed.
POST /api/settings/smtp-pools/:id/test
For the dedicated SMTP Pools public API surface, see the SMTP Pools reference page.
Get unsubscribe page
/api/settings/unsubscribe-pageGet the current unsubscribe page configuration.
Response fields
typestringdefault, custom_url, or template.
urlstring | nullThe custom unsubscribe URL, when configured.
templateIdstring | nullThe template ID, when configured.
{ "type": "default", "url": null, "templateId": null }Update unsubscribe page
/api/settings/unsubscribe-pageConfigure a custom unsubscribe experience.
Request body
typedefault | custom_url | templatebodydefault uses MisarMail's built-in page.
urlstringbodyRequired when type is custom_url.
templateIdstringbodyRequired when type is template.
{ "type": "custom_url", "url": "https://app.example.com/unsubscribe" }Get whitelabel config
Whitelabel configuration requires the Max plan.
/api/settings/whitelabelGet the current whitelabel configuration.
Response fields
brandNamestringBrand name shown in the UI.
logoUrlstringURL to your logo.
primaryColorstringHex colour for buttons and accents.
customDomainstringCustom sending domain shown in footers.
hideFooterBrandingbooleanWhether the "Powered by MisarMail" footer is hidden.
{
"brandName": "Acme Mail",
"logoUrl": "https://cdn.example.com/logo.png",
"primaryColor": "#22c55e",
"customDomain": "mail.example.com",
"hideFooterBranding": true
}Update whitelabel config
/api/settings/whitelabelUpdate whitelabel settings. All fields are optional — only provided fields are updated.
Request body
brandNamestringbodyReplaces "MisarMail" in the UI.
logoUrlstringbodyURL to your logo (PNG/SVG, max 500 KB).
primaryColorstringbodyHex colour for buttons and accents.
customDomainstringbodyCustom sending domain shown in footers.
hideFooterBrandingbooleanbodyRemove "Powered by MisarMail" footer.
{ "brandName": "Acme Mail", "hideFooterBranding": true }