Skip to content

Send RCS Messages

The RCS Business API facilitates seamless integration of RCS messaging into your applications, enabling efficient and personalized customer communication. With rich features, it empowers businesses to engage effectively, provide timely updates, and offer responsive customer support on a trusted platform, strengthening connections with their audience.

Endpoint

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

Headers

  • Name
    Content-Type
    Type
    string
    Description

    application/json

  • Name
    apikey
    Type
    string
    Description

    Dashboard API key. See Authentication.


Plain Text

This endpoint is used to send an RCS (Rich Communication Services) message using a predefined campaign and template. The message is sent via a specified bot ID and can be targeted to a valid RCS-enabled phone number.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format) For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

Request

curl --location --request POST 'https://api.azmarq.com/v1/rcs' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "number": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "botId": "EXPOSE",
  "type": "TRANS",
  "templateName": "plane_text"
}'

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
    }

Rich Text

Rich Text in RCS refers to messages that go beyond simple plain text by allowing formatting and media enhancements such as: Buttons with actions.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format) For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

Request

curl --location --request POST 'https://api.azmarq.com/v1/rcs' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "number": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "botId": "EXPOSE",
  "type": "TRANS",
  "templateName": "rich_text"
}'

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
    }

Text With Variables

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

Required attributes

  • Name
    from
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format) For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

  • Name
    content
    Type
    array
    Description

    To build a message content object for RCS, typically include various fields such as param, fileUrl( images, video, and other media).

  • 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.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The RCS 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/rcs' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
         "campaignName": "rcs-api-sms",
         "botId": "EXPOSE",
         "type": "TRANS",
         "number": "+91XXXXXXXXXX",
         "templateName": "text_with_variables",
         "content": [
             {
                 "params": [
                     "Bussiness",
                      "API'\''\'\'''\''s"
                 ]
             }
         ]
     }'

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
}

Standalone If Don't Want To Change The Image In The Template

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format) For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

Request

curl --location --request POST 'https://api.azmarq.com/v1/rcs' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "number": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "botId": "EXPOSE",
  "type": "TRANS",
  "templateName": "standalone"
}'

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
    }

Standalone If Want To Change The Image In The Template

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

Required attributes

  • Name
    from
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format) For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

  • Name
    content
    Type
    array
    Description

    To build a message content object for RCS, typically include various fields such as param, fileUrl( images, video, and other media).

  • Name
    fileUrl
    Type
    string
    Description

    Publicly accessible URL to the media file you want to send

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

    The RCS 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/rcs' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "campaignName": "rcs-api-sms",
  "botId": "EXPOSE",
  "type": "TRANS",
  "number": "+91XXXXXXXXXX",
  "templateName": "standalone",
  "content": [
    {
      "fileUrl": "https://omni-whtaspp-media.s3.ap-south-1.amazonaws.com/uploads/1740046830337.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
}

Send an approved carousel template as stored. Title, description, media, and chips stay as they are on the template.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format) For example, if the number is in the India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

Request

curl --location --request POST 'https://api.azmarq.com/v1/rcs' \
--header 'Content-Type: application/json' \
--header 'apikey: YOUR_API_KEY' \
--data-raw '{
  "number": "+91XXXXXXXXXX",
  "campaignName": "api-test",
  "botId": "EXPOSE",
  "type": "TRANS",
  "templateName": "carousel_with_chips&buttons"
}'

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
    }

Override each card image at send time. Put fileUrl on content[0].card[] in card order. Do not send a flat list of fileUrl objects.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format).

  • Name
    templateName
    Type
    string
    Description

    Name of the carousel template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message.

  • Name
    type
    Type
    string
    Description

    Route type. Use TRANS for transactional traffic, PROMO for promotional traffic.

  • Name
    content[0].card[].fileUrl
    Type
    string
    Description

    Public HTTPS URL for that card's media.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

Request

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

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
    }

Title and description {{n}} are per card. Send title and description arrays that match that card's placeholder count.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format).

  • Name
    templateName
    Type
    string
    Description

    Name of the carousel template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message.

  • Name
    content[0].card[].params
    Type
    array
    Description

    title and description values for that card.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

  • Name
    content[0].card[].fileUrl
    Type
    string
    Description

    Optional media override for that card.

Request

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

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
    }

Dynamic Open URL

Use this when the template Open URL is a whole placeholder such as {{2}} with isDynamic: true (see template dynamic_url_chip).

Send the complete http(s) URL. It replaces the placeholder as-is.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format). For example, if the number is in India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message.

  • Name
    content
    Type
    array
    Description

    Body variables plus chip overrides. content[0].params must match body placeholders. Pass the resolved URL in chips.

  • Name
    chips[].action.openUrl.url
    Type
    string
    Description

    Full URL, for example https://example.com/invoice/INV-1001.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

Request

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

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
    }

Standalone Dynamic Open URL

Use this when the template Open URL is a path with a placeholder, for example https://example.com/orders/{{1}} (see template order_standalone_card).

You can send only the suffix 9912. The API splices it into the template path and sends https://example.com/orders/9912.

A full http(s) URL is still accepted and replaces the whole Open URL.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format). For example, if the number is in India, the format would be: +91XXXXXXXXXX

  • Name
    templateName
    Type
    string
    Description

    Name of the message template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message.

  • Name
    content
    Type
    array
    Description

    Title and description variables in params. Dynamic Open URL suffix in openUrl.url.

  • Name
    params
    Type
    array
    Description

    title and description values in the same order as template placeholders.

  • Name
    openUrl.url
    Type
    string
    Description

    Path suffix such as 9912, or a full http(s) URL.

Optional attributes

  • Name
    campaignName
    Type
    string
    Description

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

  • Name
    fileUrl
    Type
    string
    Description

    Publicly accessible URL to override the template media. Omit to keep the template image.

  • Name
    suggestions
    Type
    array
    Description

    Optional full chip override. If openUrl.url is a suffix, it is still spliced into the template path.

Request

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

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 suffix rule as standalone. Compact openUrl values fill carousel card Open URL placeholders in order. Optional fileUrl on each card overrides that card's media.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format).

  • Name
    templateName
    Type
    string
    Description

    Name of the carousel template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message.

  • Name
    content
    Type
    array
    Description

    Per-card params and optional fileUrl. Compact openUrl is an array of { url } values in card order.

Request

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

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 cardSuggestions to replace chips on each card. Do not send compact openUrl in the same request: if cardSuggestions is present, compact URL fill is skipped.

Each inner array is the suggestion list for that card index.

Required attributes

  • Name
    number
    Type
    string
    Description

    Recipient's phone number (must be RCS-enabled and in international format).

  • Name
    templateName
    Type
    string
    Description

    Name of the carousel template to be used.

  • Name
    botId
    Type
    string
    Description

    Identifier of the RCS bot used to send the message.

  • Name
    content
    Type
    array
    Description

    Per-card params plus cardSuggestions (one suggestion array per card).

Request

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

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?