Misar IO Docs
MisarMailApi Reference

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).


Audit Log

GET /api/settings/audit

Retrieve the compliance audit log. Records include consent events, domain verification results, and billing actions.

Query parameters:

ParameterTypeDescription
pageintegerPage number, default 1
limitintegerRecords per page, default 50, max 100
event_typestringFilter by event type (e.g. consent_granted, domain_verified)
{
  "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 }
}

IP Pools

GET /api/settings/ip-pools

List all IP pools with current capacity.

[
  { "id": "pool_t01", "name": "transactional", "pool_type": "transactional", "ips": ["198.51.100.42"], "capacity": 50000 }
]

POST /api/settings/ip-pools

Create a custom IP pool.

{
  "name": "my-transactional-pool",
  "ips": ["198.51.100.42", "198.51.100.43"],
  "pool_type": "transactional"
}

Email Signatures

GET /api/settings/signatures

List all saved email signatures.

[
  { "id": "sig_abc1", "name": "Default Signature", "html": "<p>Best, Jane</p>", "is_default": true }
]

POST /api/settings/signatures

Create a new signature.

FieldTypeRequiredDescription
namestringYesDisplay name for the signature
htmlstringYesHTML content of the signature
is_defaultbooleanNoSet 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 /api/settings/signatures?id=:id

Delete a signature by ID. If the deleted signature was the default, no signature becomes default — you must explicitly set a new one.


SMTP Pools

GET /api/settings/smtp-pools

List SMTP pool configurations. Passwords are never returned.

POST /api/settings/smtp-pools

Create an SMTP pool.

FieldTypeDescription
namestringDisplay name
hoststringSMTP server hostname
portintegerSMTP port (typically 587 or 465)
usernamestringSMTP username
passwordstringSMTP password (stored encrypted, never returned)
encryptiontls | ssl | noneConnection encryption

POST /api/settings/smtp-pools/:id/test

Test an SMTP connection. No body needed. Returns { success, latencyMs, error? }.

For the dedicated SMTP Pools public API surface, see the SMTP Pools reference page.


Unsubscribe Page

GET /api/settings/unsubscribe-page

Get the current unsubscribe page configuration.

{ "type": "default", "url": null, "templateId": null }

POST /api/settings/unsubscribe-page

Configure a custom unsubscribe experience.

FieldTypeDescription
typedefault | custom_url | templatedefault uses MisarMail's built-in page
urlstringRequired when type is custom_url
templateIdstringRequired when type is template
{ "type": "custom_url", "url": "https://app.example.com/unsubscribe" }

Whitelabel

Whitelabel configuration requires the Max plan.

GET /api/settings/whitelabel

{
  "brandName": "Acme Mail",
  "logoUrl": "https://cdn.example.com/logo.png",
  "primaryColor": "#22c55e",
  "customDomain": "mail.example.com",
  "hideFooterBranding": true
}

POST /api/settings/whitelabel

Update whitelabel settings. All fields are optional — only provided fields are updated.

FieldTypeDescription
brandNamestringReplaces "MisarMail" in the UI
logoUrlstringURL to your logo (PNG/SVG, max 500 KB)
primaryColorstringHex colour for buttons and accents
customDomainstringCustom sending domain shown in footers
hideFooterBrandingbooleanRemove "Powered by MisarMail" footer