Messages

Resend a message

Changed on

Resends a message you already sent, on the same message id, without rebuilding the request. The typical use is recovering a BLOCKED message — for example one refused for insufficient balance — after the account has been topped up.

A resend bills again. Each accepted resend is a new delivery attempt and records a new charge against the same message id; a client that resends on every failure is charged on every loop.

Every policy runs again. The resend goes back through the full send pipeline — consent, balance, KYC and channel quota, template approval, quiet hours and channel health — so it can land on BLOCKED, FILTERED or SCHEDULED again rather than being sent, exactly as a fresh send would. Status webhooks (message.sent, message.blocked, message.filtered, message.failed) fire again for the same message id, so consumers keyed on the id will see repeated transitions.

What can be resent. A message in a terminal state — DELIVERED, FAILED, READ or BLOCKED — or one stuck at SENT for more than 15 minutes. A FILTERED message can never be resent: the recipient opted out or a routing rule refused the send. A message still in flight (QUEUED, PROCESSED, ROUTED), held for quiet hours (SCHEDULED), or SENT less than 15 minutes ago returns 409. Two concurrent resends of one id are serialised: one is accepted, the other gets 409.

The resend keeps the channel the message was originally requested on; the channel cannot be changed on a resend — send a new message instead. Idempotency-Key is honoured, so a retried request replays the first accepted response instead of resending twice.

The response has the same shape as POST /v3/messages: recipients has a single entry whose message_id is the id you resent.

post/v3/messages/{id}/resend

Request

  • Base URL
    https://api.sent.dm
  • URL
    https://api.sent.dm/v3/messages/{id}/resend
  • Auth
    • API key in header x-api-key
    • or HTTP bearer

Path parameters

idstring uuid required

Message ID

Headers

Idempotency-Keystring

Unique key to ensure idempotent request processing. Must be 1-255 alphanumeric characters, hyphens, or underscores. Responses are cached for 24 hours per key per customer.

x-profile-idstring uuid

Profile UUID to scope the request to a child profile. Only organization API keys can use this header. The profile must belong to the calling organization.

Request body

sandboxboolean

Sandbox flag - when true, the operation is simulated without side effects Useful for testing integrations without actual execution

Response

Resend accepted; the message is QUEUED again and will be billed as a new attempt

successboolean

Indicates whether the request was successful

Changes

    • info

      added to the response property allOf list for the response status

    • info

      removed from the response property allOf list for the response status

    • info

      endpoint added