LettermintLettermint
  • Knowledge base
  • Community
  • Changelog
  • Support
  • Documentation
  • Sending API
  • Team API
Information
Sending
    Send
      Send an emailpostSend multiple emails in a batchpost
Generic
    Ping the APIget
Schemas
Lettermint Sending API
Lettermint Sending API

Send

Download schema

Send an email

POST
https://api.lettermint.co/v1
/send

Send an email › Headers

x-lettermint-token
​string

Project API token for the project sending this email.

Idempotency-Key
​string

Send an email › Request Body

SendMailRequest
from
​string · required
to
​string[] · minItems: 1 · required
subject
​string · maxLength: 998 · required
route
​string
cc
​string[]
bcc
​string[]
reply_to
​string[]
​object

Custom headers to include in the email. To preserve a submitted RFC Message-ID, include both Message-ID and X-LM-Preserve-Message-ID with a string value of true or 1. Header names and control values are case-insensitive; false or 0 retains replacement.

Example: {"Message-ID":"<ticket-123@example.com>","X-LM-Preserve-Message-ID":"true"}
​object

Metadata to track with the email (not added as email headers).

Example: {"user_id":"123","campaign_id":"welcome-2025"}
tag
​string | null

Tag to categorize and filter emails (alphanumeric, underscores, hyphens, spaces allowed).

Example: welcome-email
settings
​object | null

Per-email settings that override the selected route settings for this email only.

Example: {"track_opens":false,"track_clicks":true,"tls":"enforced"}
html
​string | null · minLength: 3
text
​string | null · minLength: 3
​object[]

Send an email › Responses

message_id
​string · required
status
​MessageStatus · enum · required
Enum values:
pending
queued
suppressed
processed
delivered
opened
clicked
soft_bounced
POST/send
curl -X POST https://api.lettermint.co/v1/send \ -H "x-lettermint-token: $LETTERMINT_PROJECT_TOKEN" \ -H "Content-Type: application/json" \ -d '{"from":"John Doe <john@example.com>","to":["recipient@example.com"],"subject":"Hello","text":"Sent with Lettermint."}'
Example Request Body
{ "route": "route", "from": "from", "to": [ "string" ], "cc": [ "string" ], "bcc": [ "string" ], "reply_to": [ "string" ], "subject": "subject", "headers": { "Message-ID": "<ticket-123@example.com>", "X-LM-Preserve-Message-ID": "true" }, "metadata": { "user_id": "123", "campaign_id": "welcome-2025" }, "tag": "welcome-email", "settings": { "track_opens": false, "track_clicks": true, "tls": "enforced" }, "html": "html", "text": "text", "attachments": [ { "filename": "filename", "content": "content", "content_type": "application/pdf", "content_id": "logo-image" } ] }
json
Example Responses
{ "message_id": "message_id", "status": "pending" }
json
application/json

Send multiple emails in a batch

POST
https://api.lettermint.co/v1
/send/batch

Send up to 500 emails in a single request. Each email in the batch supports the same parameters as the single send endpoint.

Send multiple emails in a batch › Headers

x-lettermint-token
​string
Idempotency-Key
​string

Send multiple emails in a batch › Request Body

​object[] · minItems: 1
from
​string · required
to
​string[] · minItems: 1 · required
subject
​string · maxLength: 998 · required
route
​string
cc
​string[]
bcc
​string[]
reply_to
​string[]
​object

Custom headers to include in the email. To preserve a submitted RFC Message-ID, include both Message-ID and X-LM-Preserve-Message-ID with a string value of true or 1. Header names and control values are case-insensitive; false or 0 retains replacement.

Example: {"Message-ID":"<ticket-123@example.com>","X-LM-Preserve-Message-ID":"true"}
metadata
​string[]

Metadata to track with the email (not added as email headers).

Example: {"user_id":"123","campaign_id":"welcome-2025"}
tag
​string | null

Tag to categorize and filter emails (alphanumeric, underscores, hyphens, spaces allowed).

Example: welcome-email
settings
​object | null

Per-email settings that override the selected route settings for this email only.

Example: {"track_opens":false,"track_clicks":true,"tls":"enforced"}
html
​string | null · minLength: 3
text
​string | null · minLength: 3
​object[]

Send multiple emails in a batch › Responses

Array of message IDs and their status

​object[]
message_id
​string · required
status
​MessageStatus · enum · required
Enum values:
pending
queued
suppressed
processed
delivered
opened
clicked
soft_bounced
POST/send/batch
curl https://api.lettermint.co/v1/send/batch \ --request POST \ --header 'Content-Type: application/json' \ --data '[ { "route": "route", "from": "from", "to": [ "string" ], "cc": [ "string" ], "bcc": [ "string" ], "reply_to": [ "string" ], "subject": "subject", "headers": { "Message-ID": "<ticket-123@example.com>", "X-LM-Preserve-Message-ID": "true" }, "metadata": { "user_id": "123", "campaign_id": "welcome-2025" }, "tag": "welcome-email", "settings": { "track_opens": false, "track_clicks": true, "tls": "enforced" }, "html": "html", "text": "text", "attachments": [ { "filename": "filename", "content": "content", "content_type": "application/pdf", "content_id": "logo-image" } ] } ]'
Example Request Body
[ { "route": "route", "from": "from", "to": [ "string" ], "cc": [ "string" ], "bcc": [ "string" ], "reply_to": [ "string" ], "subject": "subject", "headers": { "Message-ID": "<ticket-123@example.com>", "X-LM-Preserve-Message-ID": "true" }, "metadata": { "user_id": "123", "campaign_id": "welcome-2025" }, "tag": "welcome-email", "settings": { "track_opens": false, "track_clicks": true, "tls": "enforced" }, "html": "html", "text": "text", "attachments": [ { "filename": "filename", "content": "content", "content_type": "application/pdf", "content_id": "logo-image" } ] } ]
json
Example Responses
[ { "message_id": "message_id", "status": "pending" } ]
json
application/json

Generic