---
title: "Get Message"
method: GET
path: "/messages/{id}"
tags: ["Messages"]
---

# Get Message

`GET /messages/{id}`

Read one message's delivery status.

## Path parameters

- `id` string, required

## Response `200`

Returns the message and its current delivery status.

- MessageStatus
  - `id` string, required
  - `threadId` string, required
  - `status` string, required — Current delivery status. Non-terminal: pending_lookup (<1h SLA), queued. Terminal: sent, failed, undelivered, etc. (plus carrier statuses). Left open as a string because the set evolves; see the messaging webhooks docs for the enumerated terminal states.
  - `type` 'SMS' | 'MMS', required
  - `createdAt` string, required — ISO-8601 creation timestamp
  - `errorCode` string — Present when status is a failure (e.g. not_textable, lookup_timeout, or a carrier failure). See the messaging webhooks docs for the full list.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/hustle/apis/hustle-public-api.md) · [All operations](https://skmtc.net/hustle/apis/hustle-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hustle/hustle-public-api/revisions/e920ac8ed225/schema)
