Mailfully logo

Choosing a sending feature

Pick between a single send, a batch, a scheduled send, a template, and a marketing send, and see which ones combine.

One endpoint, POST /v1/emails, sends mail. Batch, scheduling, templates, attachments, and marketing classification are modifiers on that one call, not separate products, so the question is rarely "which endpoint" and usually "which fields."

Decision table

FeatureWhat it isUse it whenField or endpointGuide
Single sendOne message, one callYou're sending one message right nowPOST /v1/emailsHow sending works
BatchMany messages in one requestYou have a list to send in one passPOST /v1/emails/batchBatch sending
Scheduled sendA send that dispatches laterThe message shouldn't go out yetscheduled_atScheduled sends
TemplateServer-rendered content from a stored templateThe body is templated rather than composed per calltemplateTemplates
AttachmentsFiles carried with the messageThe message needs to carry a file, or embed an inline imageattachmentsAttachments
MarketingA commercial send with its own compliance gatesThe message is a newsletter, promo, or other commercial mailtype: "marketing"Unsubscribe links

They combine

Batch, scheduling, templates, attachments, and marketing classification are independent fields on the same request, so most of them combine: a scheduled batch of template renders carrying a PDF is just those four fields set together, not a separate product.

The one hard exclusion sits inside a single message: a marketing send accepts exactly one recipient across to, cc, and bcc, so it cannot fan out to several people the way a transactional send can. That limit is per message rather than per request: a batch may carry marketing messages, each addressed to one recipient. See Send an email for the type field's full schema and How sending works for what a single accepted send covers.

Batch or a loop

A batch call and a client-side loop of single sends both deliver to a list, but they aren't interchangeable: a batch is checked and accepted as one all-or-nothing unit, while a loop gives you per-message error isolation and per-message idempotency keys at the cost of making N requests instead of one. See Batch or loop? for the full comparison.

Transactional or marketing

The type field controls classification, not the category tag: it takes transactional or marketing and defaults to transactional when omitted. Classification follows the message's primary purpose rather than the system that triggered it. See Email categories for where the line falls between the two, and Unsubscribe links for what a marketing send additionally requires and enforces.