Send Email
Send transactional emails via the REST API. Supports templates, attachments, scheduling, and tracking control.
POST /api/v1/emails
Request body
fromstringrequiredSender email (must be from a verified domain)tostring | string[]requiredRecipient email address(es)subjectstringrequiredEmail subject line (required unless using template_id)htmlstringHTML email body (or use template_id)textstringPlain text fallbackccstring | string[]CC recipientsbccstring | string[]BCC recipientsreplyTostringReply-to addressfrom_namestringSender display nameheadersRecord<string, string>Custom email headerstemplate_idstringUUID of a template (overrides html/text)variablesRecord<string, string>Template variable valuestrackingobject{ open: boolean, click: boolean } — per-email controltagsArray<{name, value}>Custom tags for filteringattachmentsArray<{filename, content, contentType?}>Base64-encoded attachments (max 5MB each)scheduled_forstringISO 8601 datetime for scheduled sendingpriority"high" | "normal" | "low"Queue prioritystream_idstringEmail stream UUIDtype"transactional" | "marketing"Email type — controls headers (default: "transactional")smtp_portnumberOverride SMTP port (25, 465, 587)Email types
The type field controls which SMTP headers are applied. Gmail, Yahoo, and Microsoft judge compliance per message class — a transactional password-reset and a promotional broadcast are held to different rules.
transactionalDefault. No List-Unsubscribe headers. No unsubscribe footer. For password resets, receipts, account notifications.marketingAdds List-Unsubscribe, List-Id headers and auto-appends unsubscribe footer to HTML body. For newsletters, promos, broadcasts.Basic example
Template example
Scheduled example
Attachment example
Response
When scheduled_for is provided, status is "scheduled" instead of "queued".
Batch send
Send up to 100 emails in a single API call. Each email can have its own template and variables.
List emails
Rate limits
Grosend rate-limits at 100 requests per minute per API key. Exceeding this returns 429 Too Many Requests.
Each email costs 1 credit from your balance. Check your balance before sending bulk emails.