Send a WhatsApp message

Send a WhatsApp message to a contact. Supports text, image, video, document, and template message types. The recipient can be identified by phone number, email, or contact ID. For media messages (image, video, document), provide a publicly accessible URL via mediaUrl.


Template messages can be sent at any time. Non-template messages (text, image, video, document) can only be sent within the 24-hour customer service window (i.e., within 24 hours of the customer's last reply).


Language codes for templates: Use the ISO-style WhatsApp language code that matches how the template was approved in Meta (e.g. "de", "en", "en_US"). Do not use language names such as "German" or "English" — those will be rejected with a 400 validation error.


Examples

Send OTP code via template:

{
  "phone": "+4369912345678",
  "type": "template",
  "templateName": "otp_verification",
  "language": "en",
  "components": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "123456" }
      ]
    }
  ]
}

Send template with body variables and a URL button:

{
  "phone": "+4369912345678",
  "type": "template",
  "templateName": "order_confirmation",
  "language": "de",
  "components": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "John" },
        { "type": "text", "text": "ORD-12345" }
      ]
    },
    {
      "type": "button",
      "sub_type": "url",
      "index": "0",
      "parameters": [
        { "type": "text", "text": "track123" }
      ]
    }
  ]
}

Send a plain text message (24h window must be open):

{
  "phone": "+4369912345678",
  "type": "text",
  "text": "Hello, how can we help you?"
}
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Payload for sending a WhatsApp message. Provide exactly one of phone, email, or contactId to identify the recipient.

templateName is the exact name of your approved WhatsApp template as it appears in your Chatarmin dashboard (e.g. otp_verification, order_confirmation). You define template names yourself when creating templates in Meta Business Manager — they are not auto-generated.

components is used to fill dynamic placeholders ({{1}}, {{2}}, ...) in your template. Each component targets a section of the template (header, body, or button) and provides the runtime values.

string

Phone number of the recipient (international format).

string

Email of the recipient (used to look up the contact).

string

Contact ID or externalId of the recipient.

string
enum
required

The type of message to send.

Allowed:
string

Message body text. Required when type is "text".

uri

Publicly accessible URL of the media file. Required when type is "image", "video", or "document".

string

Optional caption for media messages (image, video, document). Max 1024 characters.

string

Optional file name for document messages.

string

The exact name of your approved WhatsApp template as configured in Meta Business Manager and visible in the Chatarmin dashboard. You choose this name yourself when creating the template (e.g. "otp_verification", "order_confirmation", "welcome_message"). Required when type is "template".

string
^[a-z]{2}(_[A-Z]{2})?$

WhatsApp language code of the template (e.g. "en", "de", "en_US", "de_DE"). Must exactly match the language the template was approved in within Meta Business Manager. Do not use language names such as "German" or "English". Required when type is "template".

components
array of objects

Template components array used to fill dynamic placeholders ({{1}}, {{2}}, etc.) in your template. Each entry targets a specific section of the template. Required when your template contains variables.

components
Responses

Language
Credentials
Bearer
API Token
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json