Skip to content

Send WhatsApp Templates

Send an approved template to one or more recipients. Templates must already exist and be approved — create them first. Session (non-template) messages belong on Interactive messages or Customize.

Endpoint

https://api.azmarq.com/v1/whatsapp

Headers

  • Name
    Content-Type
    Type
    string
    Description

    application/json

  • Name
    apikey
    Type
    string
    Description

    Dashboard API key. See Authentication.


Template With Header - None

Send an approved template that has no header media and no body variables. Use this when the template is static text only.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "type": "template"
}'

Response

{
    "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
    "data": [
    {
        "recipient": "+91XXXXXXXXXX",
        "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
    }],
    "totalCount": 1,
    "message": "Message Sent Successfully!", 
    "error": null
    }

Template With Header - None And Having Variables

This endpoint is designed for templates without complex headers but supports parameters for customization. Simply plug in and configure your parameters for easy and efficient use.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    object
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

  • Name
    body
    Type
    object
    Description

    Template body

  • Name
    params
    Type
    string
    Description

    If you have a registered template with placeholders and you need to submit parameter values in the same order as in the template, you can represent this as an array of values. Ensure that the values are not null, and if the template was registered without placeholders, you can submit an empty array.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX ",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "components": {
    "body": {
      "params": [
        "var1",
        "var2",
        "var3"
      ]
    }
  },
  "type": "template"
}'

Response


{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Template With Header - Text And Having Variables

This endpoint is for text-header templates with customizable parameters—simple integration, versatile customization.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

  • Name
    body
    Type
    string
    Description

    Template body

  • Name
    params
    Type
    string
    Description

    If you have a registered template with placeholders and you need to submit parameter values in the same order as in the template, you can represent this as an array of values. Ensure that the values are not null, and if the template was registered without placeholders, you can submit an empty array.

  • Name
    Type(header type text)
    Type
    string
    Description

    To comply with the requirements, ensure that the URL provided for the image starts with either "https://" or "http://", and that the image is in one of the supported formats (JPG, JPEG, or PNG) with a maximum size of 5MB.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
      "from": "+91XXXXXXXXXX ", 
      "campaignName": "api-test", 
      "to": "+91XXXXXXXXXX",
      "templateName": "template_name",
      "components": {
        "body":{
         "params":["var1", "var2", "var3"]
        } 
        "header":{
          "type":"text",
          "text": "text value"
        }
       },
      "type": "template" 
    }'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Template With Header - Image And Having Variables

For templates with image headers, use this endpoint with customizable parameters for easy integration and tailored content.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

  • Name
    body
    Type
    string
    Description

    Template body

  • Name
    params
    Type
    string
    Description

    If you have a registered template with placeholders and you need to submit parameter values in the same order as in the template, you can represent this as an array of values. Ensure that the values are not null, and if the template was registered without placeholders, you can submit an empty array.

  • Name
    Type(header type image)
    Type
    object
    Description

    To comply with the requirements, ensure that the URL provided for the image starts with either "https://" or "http://", and that the image is in one of the supported formats (JPG, JPEG, or PNG) with a maximum size of 5MB.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX ",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "components": {
    "body": {
      "params": [
        "var1",
        "var2",
        "var3"
      ]
    },
    "header": {
      "type": "image",
      "image": {
        "link": "mediaUrl"
      }
    }
  },
  "type": "template"
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

POST
waEndpoint

Template With Header - Video And Having Variables

For video-header templates, use this endpoint with customizable parameters for easy integration and personalized adjustments.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

  • Name
    body
    Type
    string
    Description

    Template body

  • Name
    params
    Type
    string
    Description

    If you have a registered template with placeholders and you need to submit parameter values in the same order as in the template, you can represent this as an array of values. Ensure that the values are not null, and if the template was registered without placeholders, you can submit an empty array.

  • Name
    Type(header type image)
    Type
    object
    Description

    To comply with the requirements, ensure that the URL provided for the image starts with either "https://" or "http://", and that the image is in one of the supported formats (JPG, JPEG, or PNG) with a maximum size of 5MB.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
      "from": "+91XXXXXXXXXX ", 
      "campaignName": "api-test", 
      "to": "+91XXXXXXXXXX",
      "templateName": "template_name",
      "components": {
        "body":{
         "params":["var1", "var2", "var3"]
        } 
        "header":{
          "type":"video",
          "video":{
            "link": "mediaUrl"
          }
        }
       },
      "type": "template" 
    }'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

POST
waEndpoint

Template With Header - Document And Having Variables

This endpoint is for document-header templates, use this endpoint with customizable parameters for seamless integration and personalization.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

  • Name
    body
    Type
    string
    Description

    Template body

  • Name
    params
    Type
    string
    Description

    If you have a registered template with placeholders and you need to submit parameter values in the same order as in the template, you can represent this as an array of values. Ensure that the values are not null, and if the template was registered without placeholders, you can submit an empty array.

  • Name
    Type(header type image)
    Type
    object
    Description

    To comply with the requirements, ensure that the URL provided for the image starts with either "https://" or "http://", and that the image is in one of the supported formats (JPG, JPEG, or PNG) with a maximum size of 5MB.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
      "from": "+91XXXXXXXXXX ", 
      "campaignName": "api-test", 
      "to": "+91XXXXXXXXXX",
      "templateName": "template_name",
      "components": {
        "body":{
         "params":["var1", "var2", "var3"]
        } 
        "header":{
          "type":"document",
          "document":{
            "link": "url",
            "filename": "XXXXXXXXXXXXXXX"
          }
        }
       },
      "type": "template" 
    }'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}


POST
waEndpoint

Authentication Template

This endpoint is for authentication templates, use this endpoint to send a authentication template.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    OTP
    Type
    string
    Description

    WhatsApp OTP

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

  • Name
    language
    Type
    string
    Description

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX ",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "otp": "XXXX",
  "type": "template",
  "language": {
    "code": "en"
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}


POST
waEndpoint

Template With Button (Personalize URL)

This endpoint is for template having personalize url templates, use this endpoint with customizable parameters for seamless integration and personalization.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX ",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "components": {
    "buttons": {
      "params": [
        "https://www.lipsum.com/"
      ]
    }
  },
  "type": "template"
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

POST
waEndpoint

Template with Dynamic URL Button

This endpoint is used to send a WhatsApp template message with a document header, dynamic body parameters, and a dynamic URL button parameter.

Required attributes

  • Name
    from
    Type
    string
    Description

    WhatsApp sender phone number associated with your WhatsApp Business Account.

  • Name
    to
    Type
    string
    Description

    Recipient's WhatsApp phone number in international format.

  • Name
    campaignName
    Type
    string
    Description

    Name of the campaign used to send the WhatsApp template.

  • Name
    templateName
    Type
    string
    Description

    Name of the approved WhatsApp template.

  • Name
    components
    Type
    object
    Description

    Contains the dynamic values for the template body, header, and buttons.

  • Name
    type
    Type
    string
    Description

    Use template when sending an approved WhatsApp template.

Component parameters

  • Name
    body.params
    Type
    array
    Description

    Dynamic values used to replace variables in the WhatsApp template body.

  • Name
    header.type
    Type
    string
    Description

    Type of header media. For a document header, use document.

  • Name
    header.document.link
    Type
    string
    Description

    Publicly accessible URL of the document to be sent.

  • Name
    header.document.filename
    Type
    string
    Description

    File name displayed to the recipient.

  • Name
    buttons.params
    Type
    array
    Description

    Dynamic values used by URL buttons in the WhatsApp template.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{}'

POST
waEndpoint

Template With Catalog

Use this endpoint to send a WhatsApp template message that includes a product catalog.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX ",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "components": {
    "type": "button",
    "sub_type": "catalog",
    "index": "0"
  },
  "type": "template"
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}


POST
waEndpoint

Template With Flow

Use this endpoint to send a WhatsApp template message that includes a flow.

Required attributes

  • Name
    from
    Type
    string
    Description

    The number registered with WhatsApp business from which the message is to be sent. Ensure that the country code is prefixed to the number. For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    This template name contains only lowercase alphanumeric characters and underscores.

  • Name
    to
    Type
    string
    Description

    Recipient’s MSISDN

  • Name
    type
    Type
    string
    Description

    WhatsApp message templates type

  • Name
    components
    Type
    string
    Description

    To build a message content object for WhatsApp, typically include various fields such as param, header type(text, images, video, and other media).

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The WhatsApp campaign name refers to the specific name or title given to a campaign conducted through WhatsApp

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX ",
  "campaignName": "api-flow",
  "to": "+91XXXXXXXXXX",
  "templateName": "template_name",
  "components": {
    "buttons": {
      "flow": [
        0
      ],
      "params": [
        "https://xyz.com/"
      ]
    }
  },
  "type": "template"
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Send an approved carousel template using the expose components object (same style as body / header / buttons).

Card count must match the approved template (2–10). Every card uses the same header media type (IMAGE or VIDEO only) and the same button types in the same order. Meta still requires a header media link on each card at send time.

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code. Example: +91XXXXXXXXXX

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel
    Type
    object
    Description

    Object with cards. Each card may include header, body.params, and buttons.params.

  • Name
    components.carousel.cards[].header
    Type
    object
    Description

    Media for that card: image.link or video.link (public HTTPS URL).

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

  • Name
    components.body
    Type
    object
    Description

    Use only when the template has a top-level (bubble) BODY above the carousel. See Bubble Body + Cards.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/product1.jpg"
            }
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/product2.jpg"
            }
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Use this when each card body has {{n}} placeholders. Pass values in body.params in the same order as the placeholders on that card.

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].header
    Type
    object
    Description

    image.link for every card.

  • Name
    components.carousel.cards[].body.params
    Type
    array
    Description

    One string per card body placeholder, in order.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/earbuds.jpg"
            }
          },
          "body": {
            "params": [
              "Wireless Earbuds",
              "1999"
            ]
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/watch.jpg"
            }
          },
          "body": {
            "params": [
              "Smart Watch",
              "4999"
            ]
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Same card shape as image carousel. Header type must be video on every card. Do not mix image and video cards. Document headers are not supported on carousel cards.

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved video carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].header.video
    Type
    object
    Description

    Public link (HTTPS) for the card video.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

  • Name
    components.carousel.cards[].body.params
    Type
    array
    Description

    Card body variables when the template has placeholders.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "video_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "video": {
              "link": "https://example.com/clip1.mp4"
            }
          },
          "body": {
            "params": [
              "Clip 1"
            ]
          }
        },
        {
          "header": {
            "video": {
              "link": "https://example.com/clip2.mp4"
            }
          },
          "body": {
            "params": [
              "Clip 2"
            ]
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Use this when the template has a top-level BODY with {{n}} above the carousel. Send bubble variables in components.body.params, and card data under components.carousel.cards.

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.body.params
    Type
    array
    Description

    Values for the top-level (bubble) body placeholders, in order.

  • Name
    components.carousel.cards
    Type
    array
    Description

    One entry per template card (same count / order), each with header media.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "body": {
      "params": [
        "Hi John",
        "this week"
      ]
    },
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/product1.jpg"
            }
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/product2.jpg"
            }
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Use this when a card URL button has a path placeholder such as https://shop.com/{'{{1}}'}.

Pass only the suffix in buttons.params (Meta error #132012 if a full URL is sent for a non-shorten template). Params are read in order across dynamic URL buttons on that card. Omit static URL / phone / quick-reply buttons from params.

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].buttons.params
    Type
    array
    Description

    One string per dynamic URL (or copy-code) variable on that card, in button order.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/earbuds.jpg"
            }
          },
          "buttons": {
            "params": [
              "earbuds"
            ]
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/watch.jpg"
            }
          },
          "buttons": {
            "params": [
              "watch"
            ]
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

When the approved card URL button uses your shorten domain (for example https://5az.me/{'{{1}}'}), pass the full destination URL in buttons.params. The platform rewrites it to a tracked short path before Meta send.

Each card CTA gets its own slug under one message trackingId (same SortenData model as flat WhatsApp shorten).

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Carousel template whose card URL example uses the shorten domain.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].buttons.params
    Type
    array
    Description

    Full destination URL(s) for that card’s shorten CTA(s), e.g. https://shop.com/p/earbuds.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_shorten",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/earbuds.jpg"
            }
          },
          "body": {
            "params": [
              "Wireless Earbuds"
            ]
          },
          "buttons": {
            "params": [
              "https://shop.example.com/p/earbuds?utm=wa"
            ]
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/watch.jpg"
            }
          },
          "body": {
            "params": [
              "Smart Watch"
            ]
          },
          "buttons": {
            "params": [
              "https://shop.example.com/p/watch?utm=wa"
            ]
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Static QUICK_REPLY buttons are defined on the template. You do not need to send button params for them—only card header (and body variables if any).

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].header
    Type
    object
    Description

    Card media link (image or video).

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

  • Name
    components.carousel.cards[].body.params
    Type
    array
    Description

    Card body variables when present on the template.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/product1.jpg"
            }
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/product2.jpg"
            }
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Phone / voice-call numbers are fixed on the approved template. Do not send call button params in the expose request—only card header media (and body / URL params if the template has them).

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].header
    Type
    object
    Description

    Card media link (image or video).

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/product1.jpg"
            }
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/product2.jpg"
            }
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

When a card has a COPY_CODE button, send the coupon string in buttons.params (same array order as dynamic URL / copy-code buttons on that card).

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].buttons.params
    Type
    array
    Description

    Coupon code string(s) for COPY_CODE buttons on that card.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/product1.jpg"
            }
          },
          "buttons": {
            "params": [
              "SAVE20"
            ]
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/product2.jpg"
            }
          },
          "buttons": {
            "params": [
              "SAVE20"
            ]
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Each card can have 1 or 2 buttons. Types and order must match the template on every card.

For a dynamic URL + static quick reply, put only the URL suffix (or shorten destination) in buttons.params. Quick reply does not consume a param slot.

Required attributes

  • Name
    from
    Type
    string
    Description

    The WhatsApp Business number to send from, with country code.

  • Name
    to
    Type
    string
    Description

    Recipient MSISDN with country code.

  • Name
    templateName
    Type
    string
    Description

    Approved carousel template name.

  • Name
    type
    Type
    string
    Description

    Must be template.

  • Name
    components.carousel.cards[].buttons.params
    Type
    array
    Description

    Values for dynamic URL (and copy-code) buttons only, in template button order.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    Campaign name for reporting.

  • Name
    components.carousel.cards[].body.params
    Type
    array
    Description

    Card body variables when present.

Request

curl --location --request POST 'https://api.azmarq.com/v1/whatsapp' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "from": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "to": "+91XXXXXXXXXX",
  "templateName": "promo_carousel_template",
  "type": "template",
  "components": {
    "carousel": {
      "cards": [
        {
          "header": {
            "image": {
              "link": "https://example.com/earbuds.jpg"
            }
          },
          "body": {
            "params": [
              "Wireless Earbuds"
            ]
          },
          "buttons": {
            "params": [
              "earbuds"
            ]
          }
        },
        {
          "header": {
            "image": {
              "link": "https://example.com/watch.jpg"
            }
          },
          "body": {
            "params": [
              "Smart Watch"
            ]
          },
          "buttons": {
            "params": [
              "watch"
            ]
          }
        }
      ]
    }
  }
}'

Response

{
  "id": "58d63c02-XXXX-XXXX-XXXX-XXXXbb39453",
  "data": [
  {
  "recipient": "+91XXXXXXXXXX",
  "messageId": "58d63c02-XXXXX-XXXXX-XXXXX-XXXX9bb39453:1"
  } ],
  "totalCount": 1,
  "message": "Message Sent Successfully!", "error": null
}

Was this page helpful?