EMAIL

Email

Send transactional and marketing email over authenticated, reputation-managed infrastructure. Send raw HTML or reference a stored template, then track delivery and engagement as events.

Set up your domain first. Before sending on a live key, verify your sending domain and its SPF, DKIM, and DMARC records in the console. Unverified domains can only send from the AtomMatrix shared sandbox domain, for testing.

Send an email

POST/v1/emails
ParameterDescription
to string | arrayREQUIREDOne or more recipient addresses.
from stringREQUIREDSender on a verified domain, e.g. Support <support@yourco.com>.
subject stringREQUIREDSubject line. Omit if the template supplies one.
html / text stringCONDITIONALBody content. Provide at least one, or use template_id.
template_id stringCONDITIONALA stored template; merge with variables.
variables objectOPTIONALKey–value pairs merged into the template.
reply_to stringOPTIONALReply-To address.
cc / bcc arrayOPTIONALAdditional recipients.
attachments arrayOPTIONALObjects with filename and base64 content.
tags arrayOPTIONALLabels for filtering in analytics.
curl https://api.atommatrix.ai/v1/emails \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "customer@example.com",
    "from": "Orders ",
    "subject": "Your order #10842 has shipped",
    "template_id": "tmpl_shipping_update",
    "variables": { "name": "Jordan", "tracking": "1Z999AA10123456784" },
    "tags": ["transactional", "shipping"]
  }'

Response 201 Created

{
  "id": "eml_01HN9T6V...",
  "object": "email",
  "to": ["customer@example.com"],
  "subject": "Your order #10842 has shipped",
  "status": "queued",
  "created_at": "2026-07-07T12:00:00Z"
}

Delivery & engagement events

Email results arrive as webhooks, not in the send response. Subscribe to the events you care about:

EventMeaning
email.deliveredAccepted by the recipient's mail server.
email.openedRecipient opened the message (when tracking is enabled).
email.clickedA tracked link was clicked; includes the URL.
email.bouncedHard or soft bounce; includes reason. Hard bounces are auto-suppressed.
email.complainedMarked as spam; the address is suppressed automatically.

Suppression & hygiene

AtomMatrix maintains a per-account suppression list. Addresses that hard-bounce or file a complaint are added automatically and skipped on future sends, which protects your sender reputation. Query and manage the list from the console or the /v1/suppressions endpoint.

Reply & triage with an AI agent

Email isn't only outbound. Route replies to a support or sales address into an AI agent and it reads the thread, classifies intent, drafts a grounded answer, and sends it back over Email — keeping the subject and threading intact. High-risk or low-confidence messages are handed to a person with a summary instead of answered.

Inbound email to an agent

Configure an inbound route (a full address or a subdomain like reply.yourco.com) to a live agent in the console. Each inbound email opens or continues a conversation on the email channel; the agent's reply is delivered over the same reputation-managed Email infrastructure described above.

// Start an email conversation from an inbound message:
POST /v1/conversations
{ "agent_id": "agt_support_en", "channel": "email",
  "customer": { "email": "customer@example.com" } }

// The agent's reply is sent as a threaded email automatically:
POST /v1/conversations/cnv_01HNA1.../messages
{ "role": "customer", "content": "Can I change the address on order 10842?" }
One agent, three inboxes. The agent that answers email is the same one behind SMS and voice. Context follows the customer, so a thread can move from email to a text without starting over. Delivery, opens, clicks, and bounces still arrive as the events above.