---
title: "Retrieve message delivery status"
method: GET
path: "/messages/{messageId}/status"
tags: ["Delivery"]
---

# Retrieve message delivery status

`GET /messages/{messageId}/status`

## Request

- Base URL: `https://platform-api.visitoai.com/m2m/v1`
- URL: `https://platform-api.visitoai.com/m2m/v1/messages/{messageId}/status`
- Auth: HTTP bearer

Use to check the persisted delivery state of one stored conversation message. Requires messages:read. messageId is the 24-character stored ID from list_conversation_messages or get_message_request_status, not externalMessageId, eventId, replyId or requestEventId. For an accepted send with no stored message yet, use get_message_request_status with its requestEventId. Returned deliveries describe individual provider parts when present; queued, partial_sent and unknown are not proof of complete delivery. This read does not send or retry anything.

## Path parameters

- `messageId` string, required

## Response `200`

Success

- MessageStatus
  - `messageId` string
  - `conversationId` string
  - `requestEventId` string
  - `direction` 'inbound' | 'outbound'
  - `status` 'received' | 'queued' | 'sent' | 'delivered' | 'read' | 'failed' | 'blocked' | 'partial_sent' | 'unknown'
  - `externalMessageId` string
  - `deliveries` object[]
    - `externalMessageId` string
    - `status` 'received' | 'queued' | 'sent' | 'delivered' | 'read' | 'failed' | 'blocked' | 'partial_sent' | 'unknown'
  - `errorCode` string: Optional sanitized media preparation error code when preparation failed.

## Other responses

- `default`: Structured error

---

[API](https://skmtc.dev/visitoai/apis/visito-m2m-api.md) - [All operations](https://skmtc.dev/visitoai/apis/visito-m2m-api/llms.txt) - [OpenAPI document](https://skmtc.dev/visitoai/apis/visito-m2m-api/revisions/98377d35c234?raw)
