Skip to main content

Get a message

GET/messaging/v1/messages/{id}

Returns a message by its id, with its current status, cost, and the reason if it wasn't delivered.

Path parameters​

  • #iduuidRequired
    The message's id, from the response when you sent it, or from a webhook.
    Example: e2c38865-dc0a-4299-baef-c07a9bfa9c33

To follow a message as it changes, use a webhook. Don't poll this endpoint.

Example request​

curl "https://sandbox-api.ponitor.com/messaging/v1/messages/e2c38865-dc0a-4299-baef-c07a9bfa9c33" \
-H "apiKey: $PONITOR_API_KEY"

Responses​

OK. The message object, with its current status. A message that wasn't delivered has a failureCode (an E11 code) and a failedReason.

{
"message": {
"id": "e2c38865-dc0a-4299-baef-c07a9bfa9c33",
"content": "Your Acme order 42 is on its way.",
"text": "Your Acme order 42 is on its way.",
"sender": "ACME",
"status": "EXPIRED",
"channel": "SMS",
"direction": "OUTBOUND",
"recipient": "+231770000000",
"messageType": null,
"inServiceWindow": null,
"cost": 0.05,
"conversationId": null,
"failureCode": "E11001",
"failedReason": "Recipient unreachable: phone was off or out of coverage until the message expired",
"externalId": "order-42",
"createdAt": "2026-10-05T09:30:00.112Z",
"updatedAt": "2026-10-06T09:30:04.870Z"
}
}