> ## Documentation Index
> Fetch the complete documentation index at: https://developer.chatsyncs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Delivery Message Status

> Check the delivery status (sent, delivered, read, failed) of a WhatsApp message via the ChatSyncs API, using only the wa_message_id returned from a send call. Use when a developer asks how to confirm a message was delivered or read.

Checks the delivery status of a message you sent — pass the `wa_message_id` you got back from
[Send Text Message](/developer-api/whatsapp/send-text-message), [Send Template Message](/developer-api/whatsapp/send-template-message)
or a similar send endpoint. Nothing else is needed.

## Example Request

```bash theme={null}
curl --request GET \
  --url 'https://platform.chatsyncs.com/api/v1/whatsapp/get/message-status?apiToken=API-KEY&wa_message_id=WAMID.XXXXX'
```

## Response

The status is nested under `message`:

```json theme={null}
{
  "status": "1",
  "message": {
    "message_status": "read",
    "delivery_status_updated_at": "2026-10-03 18:44:19",
    "read_time": "2026-10-03 18:44:32"
  }
}
```

`message_status` is one of `sent`, `delivered`, `read` or `failed`. When it is `failed`, the response also carries `failed_time` and `failed_reason`.

<Note>
  You do **not** need a `whatsapp_bot_id` for this endpoint. Earlier versions of this page asked for
  one; the API ignores it.
</Note>


## OpenAPI

````yaml GET /whatsapp/get/message-status
openapi: 3.1.0
info:
  title: ChatSyncs Developer API
  version: 1.0.0
  description: >-
    REST API for sending WhatsApp messages and managing subscribers through
    ChatSyncs.


    **Authentication.** Send your key as the `apiToken` parameter, or as
    `Authorization: Bearer <key>` — both work on every endpoint **except Custom
    Fields List**, which only accepts the `apiToken` parameter (a Bearer header
    alone is answered with *The api token field is required.*). A wrong key
    returns HTTP 401 `{"status":"0","message":"Unauthenticated."}`; no key at
    all redirects to the login page.


    **Methods.** Every endpoint accepts both GET and POST with the same
    parameters, except Upload Media, which is POST-only. Use POST for anything
    that changes data.


    **Errors.** Failures usually come back as HTTP 200 with `"status":"0"` and
    the reason in `message`, so always check `status`. `status` is the string
    `"1"` or `"0"` on most endpoints and a boolean on a few.


    **Lists.** Endpoints that return rows put them in `message` as a list; there
    is no `data` field (Custom Fields List is the exception and uses `data`).
servers:
  - url: https://platform.chatsyncs.com/api/v1
security: []
paths:
  /whatsapp/get/message-status:
    get:
      tags:
        - WhatsApp API
      summary: Get Delivery Message Status
      description: >-
        Returns the delivery status of a message you sent. Needs only the
        `wa_message_id` the send endpoint returned. The result is nested under
        `message`.
      operationId: getMessageStatus
      parameters:
        - name: apiToken
          in: query
          required: true
          schema:
            type: string
            example: API-KEY
          description: >-
            Your ChatSyncs API key (not a WhatsApp/Meta access token). [Where to
            find it](/developer-api/finding-ids#api-token-apitoken).
        - name: wa_message_id
          in: query
          required: true
          schema:
            type: string
            example: WAMID.XXXXX
          description: The WhatsApp message ID to check, returned by a send endpoint.
      responses:
        '200':
          description: >-
            Standard ChatSyncs response. `status` is `"1"` on success and `"0"`
            on failure.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: '`"1"` = success, `"0"` = failure.'
                  message:
                    type: string
                    description: Human-readable result message.
              examples:
                success:
                  summary: Success
                  value:
                    status: '1'
                    message:
                      message_status: read
                      delivery_status_updated_at: '2026-10-03 18:44:19'
                      read_time: '2026-10-03 18:44:32'
                error:
                  summary: A required field is missing
                  value:
                    status: '0'
                    message: The wa message id field is required.
                notFound:
                  summary: Unknown message id
                  value:
                    status: '0'
                    message: >-
                      Message not found or you do not have access to this
                      message.
        '401':
          description: >-
            `apiToken` is wrong. (With no token at all the API redirects to the
            login page with HTTP 302 instead of returning JSON.)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
              examples:
                unauthenticated:
                  summary: Wrong apiToken
                  value:
                    status: '0'
                    message: Unauthenticated.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.