API docs

Messages and batches

Look up the status of a message or a batch by its id.

GET/v1/messages/{id}

The status of one message. The message body is never returned.

curl https://api.wesend.mn/v1/messages/0b9c1a52-6f0e-4d8b-9a3c-2f1e5d7c8a90 \
  -H "Authorization: Bearer $WESEND_API_KEY"
Response200 OK
{
  "id": "0b9c1a52-6f0e-4d8b-9a3c-2f1e5d7c8a90",
  "status": "sent",
  "channel": "sms",
  "to": "99112233",
  "parts": 1,
  "rate_multiplier": 1,
  "credits": 70,
  "batch_id": null,
  "error": null,
  "created_at": "2026-10-06T08:15:30.000Z",
  "sent_at": "2026-10-06T08:15:31.000Z"
}

Response fields

idstring
The message id (UUID).
statusstring
queued, processing, sent or failed.
channelstring
sms or email.
tostring
The recipient: an 8-digit number or an email address.
partsinteger
Number of SMS parts. SMS only.
rate_multiplierinteger
The holiday rate multiplier. SMS only.
creditsinteger
Credits charged.
batch_idstring | null
The batch, if the message was part of one.
errorobject | null
For a failed message, an object with code and message.
created_atstring
When it was created, ISO 8601 (UTC).
sent_atstring | null
When it was sent.
StatusMeaning
queuedWaiting in the queue.
processingBeing sent.
sentHanded to the operator or the email provider.
failedNot sent. The credits were refunded.

sent means the operator accepted the message. Delivery reports from the handset are not available yet.

Batches

GET/v1/batches/{id}

The progress of a bulk send.

curl https://api.wesend.mn/v1/batches/5d2a7c1e-93b4-4f6a-8e0d-b1c2d3e4f5a6 \
  -H "Authorization: Bearer $WESEND_API_KEY"
Response200 OK
{
  "id": "5d2a7c1e-93b4-4f6a-8e0d-b1c2d3e4f5a6",
  "status": "completed",
  "channel": "sms",
  "total": 500,
  "sent": 497,
  "failed": 3,
  "credits": 35000,
  "created_at": "2026-10-06T08:15:30.000Z",
  "completed_at": "2026-10-06T08:19:02.000Z"
}

status is processing or completed. credits is the amount charged up front; each failed message has been refunded.