API docs

Send email

Send text or HTML email to one address or many.

POST/v1/email

Sends to one address. The email is queued and the response comes back at once with 202.

Body

tostringrequired
The recipient's email address.
subjectstringrequired
The subject. Up to 255 characters, one line.
htmlstring
The HTML body. One of html and text is required.
textstring
The plain-text body. When both are given, clients that cannot show HTML show the text.
from_namestring
The sender name. Defaults to the project's brand name, or the project name.
reply_tostring
Where replies go. Defaults to the address set in the project's settings.
curl -X POST https://api.wesend.mn/v1/email \
  -H "Authorization: Bearer $WESEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to": "[email protected]",
  "subject": "Таны захиалга баталгаажлаа",
  "html": "<h1>Баярлалаа!</h1><p>Таны #1042 захиалга баталгаажлаа.</p>",
  "text": "Баярлалаа! Таны #1042 захиалга баталгаажлаа.",
  "from_name": "Shop.mn",
  "reply_to": "[email protected]"
}'
Response202 Accepted
{
  "id": "0b9c1a52-6f0e-4d8b-9a3c-2f1e5d7c8a90",
  "status": "queued",
  "channel": "email",
  "to": "[email protected]",
  "credits": 5,
  "batch_id": null,
  "error": null,
  "created_at": "2026-10-06T08:15:30.000Z",
  "sent_at": null,
  "balance": 4995
}
  • Emails are sent from WeSend's shared domain. You set the sender name and the reply-to address.
  • html and text together may not exceed 256 KB. Beyond that the answer is 422 message_too_long.
  • Read the final status with GET /messages/{id}: sent or failed. A failed email is refunded.

Send to many addresses

POST/v1/email/bulk

Sends one email to up to 1,000 addresses. Each recipient gets a separate email and never sees the others.

The fields are those of /email, except that to is a list of addresses.

curl -X POST https://api.wesend.mn/v1/email/bulk \
  -H "Authorization: Bearer $WESEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to": [
    "[email protected]",
    "[email protected]"
  ],
  "subject": "Шинэ бараа ирлээ",
  "html": "<p>Намрын цуглуулга худалдаанд гарлаа.</p>"
}'
Response202 Accepted
{
  "id": "5d2a7c1e-93b4-4f6a-8e0d-b1c2d3e4f5a6",
  "status": "processing",
  "channel": "email",
  "total": 2,
  "sent": 0,
  "failed": 0,
  "credits": 10,
  "created_at": "2026-10-06T08:15:30.000Z",
  "completed_at": null,
  "balance": 4985
}