---
title: "Send a message"
method: POST
path: "/v1/accounts/{account_id}/messages"
tags: ["Messages"]
---

# Send a message

`POST /v1/accounts/{account_id}/messages`

## Request

- Base URL: `https://api.whatsmcp.com`
- URL: `https://api.whatsmcp.com/v1/accounts/{account_id}/messages`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Path parameters

- `account_id` string, required

## Request body

- SendMessageBody
  - `account_id` string: ignored; the path account_id is used
  - `audio_base64` string
  - `audio_mime` string
  - `audio_ptt` boolean
  - `audio_seconds` integer
  - `document_base64` string
  - `document_filename` string
  - `document_mime` string
  - `image_base64` string
  - `image_mime` string
  - `template` string
  - `template_language` string
  - `template_variables` string[], nullable
  - `text` string
  - `to` string, required

## Response `200`

OK

- SendMessageOutput
  - `message_id` string: WhatsApp's id for the message, present only when status is sent
  - `refusal` Refusal
    - `account_status` string: when the number is not working: its status — starting, not_running, whatsapp_down, suspended, pairing, unlinked or locked
    - `account_status_reason` string: the detail of account_status, e.g. no_egress, stopped, no_plan
    - `message` string, required: a human-readable explanation
    - `reason` string, required: why the call was declined
    - `refused` boolean, required: true when the call was declined rather than performed
    - `retry_after_seconds` integer: seconds to wait before retrying; absent or 0 means retrying will not help
    - `since` string: when the number stopped working, RFC3339, when known
  - `request_id` string: correlation id; a queued message appears in wa_list_messages under this id once it settles
  - `status` string, required: sent (delivered), queued (accepted but unconfirmed - do NOT re-send), or refused (not attempted)

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `413`: Request Entity Too Large
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/whatsmcp/apis/whatsmcp-api.md) · [All operations](https://skmtc.dev/whatsmcp/apis/whatsmcp-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whatsmcp/apis/whatsmcp-api/revisions/719dc99224ce?raw)
