Emails
Send transactional email and look up delivery status for previously sent messages.
Health check
Unauthenticated endpoint for uptime monitoring. Always returns 200 while the API is reachable.
/healthAuthorizations
None โ this endpoint is unauthenticated.
curl https://api.mailcraft.host/v1/health{
"status": "ok",
"time": "2026-09-22T14:03:11.000000Z"
}Validate an email address
Checks address format, MX record presence, and whether the domain is a known disposable-email provider.
/emails/validateAuthorizations
Authorization API key for your workspace, scoped to emails:send. Pass it as a Bearer token in the Authorization header.
curl https://api.mailcraft.host/v1/emails/[email protected] \
-H 'Authorization: Bearer sk_live_...'{
"email": "[email protected]",
"valid": true,
"checks": {
"format": true,
"mx_record": true,
"disposable": false
}
}Send an email
Sends a single transactional email through a verified sender. Requires either `html`, `text`, or both.
/emailsAuthorizations
Authorization API key for your workspace, scoped to emails:send. Pass it as a Bearer token in the Authorization header.
Body ยท application/json
fromtosubjecthtmltagscurl https://api.mailcraft.host/v1/emails \
-X POST \
-H 'Authorization: Bearer sk_live_...' \
-H 'Content-Type: application/json' \
-d '{
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Welcome!",
"html": "<p>Thanks for signing up.</p>",
"tags": ["welcome"]
}'{
"data": {
"id": "01j9x1qz5k8g5e4z1n3s7d9pqm",
"status": "queued",
"type": "transactional",
"source": "api",
"from": "[email protected]",
"to": ["[email protected]"],
"cc": null,
"bcc": null,
"reply_to": null,
"subject": "Welcome!",
"tags": ["welcome"],
"message_id": null,
"error_message": null,
"open_count": 0,
"click_count": 0,
"sent_at": null,
"delivered_at": null,
"bounced_at": null,
"complained_at": null,
"created_at": "2026-09-22T14:03:11.000000Z"
}
}List emails
Cursor-paginated, newest first. Pass `limit` (default 25) and the `next_cursor` from `meta` to page forward.
/emailsAuthorizations
Authorization API key for your workspace, scoped to emails:send. Pass it as a Bearer token in the Authorization header.
curl https://api.mailcraft.host/v1/emails?limit=25 \
-H 'Authorization: Bearer sk_live_...'{
"data": [
{
"id": "01j9x1qz5k8g5e4z1n3s7d9pqm",
"status": "delivered",
"type": "transactional",
"source": "api",
"source": "api",
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Welcome!",
"open_count": 1,
"click_count": 0,
"sent_at": "2026-09-22T14:03:12.000000Z",
"delivered_at": "2026-09-22T14:03:14.000000Z",
"created_at": "2026-09-22T14:03:11.000000Z"
}
],
"links": {
"first": null,
"last": null,
"prev": null,
"next": "https://api.mailcraft.host/v1/emails?cursor=eyJpZCI6MTIzfQ"
},
"meta": {
"path": "https://api.mailcraft.host/v1/emails",
"per_page": 25,
"next_cursor": "eyJpZCI6MTIzfQ",
"prev_cursor": null
}
}Get an email
Looks up the current status, timestamps, and open/click counts for a single sent email by its id.
/emails/{id}Authorizations
Authorization API key for your workspace, scoped to emails:send. Pass it as a Bearer token in the Authorization header.
curl https://api.mailcraft.host/v1/emails/01j9x1qz5k8g5e4z1n3s7d9pqm \
-H 'Authorization: Bearer sk_live_...'{
"data": {
"id": "01j9x1qz5k8g5e4z1n3s7d9pqm",
"status": "delivered",
"type": "transactional",
"source": "api",
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Welcome!",
"open_count": 1,
"click_count": 0,
"sent_at": "2026-09-22T14:03:12.000000Z",
"delivered_at": "2026-09-22T14:03:14.000000Z",
"created_at": "2026-09-22T14:03:11.000000Z"
}
}