API overview
313 endpoints across 39 sections. Everything here is what you can do in the Mailyte dashboard and webmail, available to your own software.
Base URL
All endpoints are relative to:
https://app.mailyte.comRunning Mailyte yourself? Substitute your own host. Everything below is identical — the open-source core serves the same API.
Authentication
Send an organization API key as a bearer token. The key knows which organization it belongs to, so there is no organization header to set.
curl 'https://app.mailyte.com/api/v1/domains' \
-H 'Authorization: Bearer mk_live_YOUR_API_KEY'const response = await fetch('https://app.mailyte.com/api/v1/domains', {
headers: {
'Authorization': 'Bearer mk_live_YOUR_API_KEY'
}
});
const data = await response.json();import requests
response = requests.get(
'https://app.mailyte.com/api/v1/domains',
headers={'Authorization': 'Bearer mk_live_YOUR_API_KEY'}
)
print(response.json())Keys carry scopes, and a key can only do what its scopes allow. Full detail — creating keys, scopes, IP allowlisting, and the separate mailbox tokens the Mailbox API takes — is on Authentication.
The response envelope
Every response from the organization API has the same shape. The result is in data; success and code restate the HTTP status so a client that only reads the body can still tell what happened.
{
"message": "Message submitted successfully",
"data": {
"message_id": "<01JBT8XQ2M@yourdomain.com>"
},
"success": true,
"code": 200
}Errors use the same envelope with success: false, and validation failures add an errors object keyed by field name.
The Mailbox API is the exception. Those endpoints are served by the mail server, and it wraps its replies differently: success is type: "success" rather than a success boolean, the human-readable line is msg rather than message, and there is no code — read the HTTP status for that. Some errors add a stable error_code.
{
"type": "success",
"msg": "Context retrieved successfully",
"data": {
"message_id": "INBOX:4821"
}
}Check type before you read data, and treat data as optional: the mail server omits the key entirely when a call has no result to return, so a client that assumes it is always present gets undefined rather than an empty object.
Status codes
| Code | Meaning |
|---|---|
200 | Success. For a send, this means accepted for delivery — not yet delivered. |
401 | The API key is missing, unknown, revoked or expired. All four answer identically. |
403 | Valid key, not allowed: missing scope, IP not allowlisted, or an endpoint that does not accept keys. |
404 | No such resource in this organization. |
422 | Validation failed. Check the errors object. |
429 | Rate limited or out of sending allowance. Read Retry-After. |
500 | Our fault. Safe to retry with backoff. |
Each one, with what to do about it, is on the error reference.
Rate limits
Requests are limited per API key, and sending is separately limited per mailbox and per organization. A throttled request answers 429 with:
Retry-After— seconds to wait. Honour it rather than guessing.X-RateLimit-LimitandX-RateLimit-Remaining— your budget for the current window.
Sending limits count recipients, not messages, so a batch of 200 uses 200 of your allowance rather than one.
Pagination
List endpoints accept page and per_page, and return the pagination state alongside the rows in data. Endpoints that can return large result sets cap per_page; ask for more and you get the cap rather than an error.
Dates
Every timestamp is ISO 8601 in UTC, to microsecond precision — for example 2026-09-17T10:04:11.000000Z. Send dates in the same form.
OpenAPI and Postman
The specification is generated from the running application on every release, so it cannot drift from what the API actually serves.
- Download the OpenAPI 3.1 document — generate a client in your own language.
- Download the Postman collection — import and start calling.
Sections
- Sending7Submit messages for delivery, individually or in batches.
- Templates7Stored templates with variables, rendered at send time.
- Events6What happened to a message after you submitted it.
- Suppressions4Addresses Mailyte will refuse to send to, and why.
- Webhooks5Receive delivery events at your own endpoint as they happen.
- SMTP credentials10Logins for applications that relay over SMTP rather than HTTP.
- Reports9Deliverability, engagement and volume reporting.
- Sandbox inboxes13Operations for sandbox inboxes.
- Sandbox messages8Operations for sandbox messages.
- Sandbox webhooks6Operations for sandbox webhooks.
- Mailboxes12Provision mailboxes, aliases and forwarding for a domain.
- Mailbox aliases & routing8Operations for mailbox aliases & routing.
- Mailbox API6Everything the webmail does, for one mailbox. Takes a mailbox token, not an organization API key.
- Mailbox auth & security9Operations for mailbox auth & security.
- Mailbox messages21Operations for mailbox messages.
- Mailbox folders4Operations for mailbox folders.
- Mailbox contacts7Operations for mailbox contacts.
- Mailbox calendars13Operations for mailbox calendars.
- Mailbox AI11Operations for mailbox ai.
- Mailbox settings12Operations for mailbox settings.
- Transport rules7Organization-wide rules applied to mail in transit.
- Campaigns17Bulk sends to a list or segment, scheduled and reported on.
- Automations16Journeys that run per contact: triggered by a list, a tag or an event your system records, with waits and emails in between.
- Automation runs2Operations for automation runs.
- Automation analytics2Operations for automation analytics.
- Automation AI & experiments5Operations for automation ai & experiments.
- Contact events2Operations for contact events.
- Contacts14Contacts, lists, custom fields and segments.
- Contact lists8Operations for contact lists.
- Contact fields4Operations for contact fields.
- Contact tags & interests5Operations for contact tags & interests.
- Segments5Operations for segments.
- Verification8Check whether addresses exist before you send, without sending anything.
- Domains12Add a sending domain, publish its DNS, and verify it.
- Domain verification7Operations for domain verification.
- Domain operations3Operations for domain operations.
- Domain analytics4Operations for domain analytics.
- Senders8Verified identities a message may be sent as.
- Account6Organization usage, limits, API keys and dedicated IPs.