Introduction

Mailfully is an HTTP API for sending transactional email, with delivery tracking, webhooks, and a Node SDK.

Mailfully is a transactional email API. You send email with one HTTP request or the Node SDK; Mailfully queues it, delivers it through Amazon SES, and records every delivery event. The API lives at https://api.mailfully.com, is versioned under /v1, and speaks JSON.

How it works

Sending is asynchronous. A send request is accepted immediately and delivered in the background:

  1. Your app calls POST /v1/emails. The API authenticates your key, validates the payload, checks quotas and rate limits, and persists the message.
  2. You get a 202 Accepted with a message id. A 202 means accepted for delivery, not delivered.
  3. The message waits as queued. A worker claims it (sending) and hands it to Amazon SES; once SES accepts it, the status becomes sent.
  4. Asynchronous delivery events settle the outcome: delivered, bounced, complained, or failed. A scheduled message can still be canceled while it's queued.
  5. Every event lands on the message's timeline (GET /v1/emails/{id}/events) and fires webhook events such as email.delivered and email.bounced to your endpoints.

Poll GET /v1/emails/{id} for the current state, or subscribe to webhooks to have events pushed to you, with the full lifecycle covered in How sending works.

Get started

Quickstart

Get an API key, verify a domain, and deliver your first email.

API reference

Every endpoint, request field, and error type.

Webhooks

Receive delivery, bounce, and engagement events on your own endpoint.

Node SDK

Typed client for Node 24+ with a { data, error } result on every call.