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/rcsHeaders
- 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
}
Carousel If Don't Want To Change The Image In The Template
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
}
Carousel If Want To Change The Image In The Template
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
}
Carousel Title And Description Variables
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
titleanddescriptionvalues 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].paramsmust match body placeholders. Pass the resolved URL inchips.
- 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 inopenUrl.url.
- Name
params- Type
- array
- Description
titleanddescriptionvalues in the same order as template placeholders.
- Name
openUrl.url- Type
- string
- Description
Path suffix such as
9912, or a fullhttp(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.urlis 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
}
Carousel Dynamic Open URL
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
paramsand optionalfileUrl. CompactopenUrlis 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
}
Carousel Card Suggestions
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
paramspluscardSuggestions(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
}