Reply Button API
Th
To access the reply button API, perform the following steps:
- Signup or Login to Kaleyra.io and create your API key.
Before you get started, sign up for a Kaleyra.io account for free and Create an API Key. To view the API Key and the SID, see View API Key and SID.
Note:
After you sign up, your account will be on the trial version. You must complete the KYC to access all the features in Kaleyra.io.
- API command for Reply Button API
Base URL
https://<api_domain>/v1/<SID>
API Domain and Value
api_domain | Value |
---|---|
IN pod | api.in.kaleyra.io |
SG Pod | api.kaleyra.io |
EU Pod | api.eu.kaleyra.io |
NA pod | api.na.kaleyra.ai |
Request Format - POST
curl --location --request POST 'https://<api_domain>/v1/<SID>/messages'
--header 'Content-Type: <CONTENT_TYPE>'
--header 'api-key: <API_KEY>'
--form 'to="<TO_NUMBER>"'
--form 'type="<MESSAGE_TYPE>"'
--form 'channel="<CHANNEL_NAME>"'
--form 'from="<FROM_NUMBER>"'
--form 'body="<BODY_TEXT>"'
--form 'footer="<FOOTER_TEXT>"'
--form 'action="{
\"buttons\": [
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"1\",
\"title\": \"First Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"2\",
\"title\": \"Second Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"3\",
\"title\": \"Third Button Title\"
}
}
]
}"'
--form 'callback_url="<CALLBACK_URL>"'
--form 'header_type="<HEADER_TYPE>"'
--form 'header_value="<HEADER_VALUE>"'
Parameters and Variables
The following table displays the parameter and variables used:
Parameter | Variable | Description | Example | Mandatory |
---|---|---|---|---|
SID | String | Account SID (Security Identifier). Generated by Kaleyra.io while creating an API key. | HXXXXXXX071IN | True |
CONTENT_TYPE | Alphanumeric | Indicates the format of the content the API will be processing. | application/JSON | True |
API_KEY | String | Your API Key generated by Kaleyra.io. Refer to the Creating An API Key and Security Identifier document for steps to create API Key. | Ac4XXXXX21f | True |
TO_NUMBER | Integer | Specifies to number to be sent. | +1202XXXXXXX | True |
MESSAGE_TYPE | String | Format of the message that is to be sent. For more details on the supported formats, refer to the Messaging on WhatsApp Business document. | Text, list, reply and template | True |
CHANNEL_NAME | String | Specifies the channel name. | True | |
FROM_NUMBER | Integer | The WhatsApp business number registered with Kaleyra.io from which the message is to be sent. | +1202XXXXXXX | True |
BODY_TEXT | String | Optional for type product. Required for other message types. The body of the message. Emojis and markdown are supported. The maximum length is set to 1024 characters. | This is the text message content. | True |
FOOTER_TEXT | String | Optional. The footer of the message. Emojis and markdown are supported. The maximum length is set to 60 characters. | This is the footer content. | True |
CALLBACK_URL | Object | The URL you want to receive the status of the message that is sent. This URL can be accessed publicly. | https://webhook.site/3cbfa310-7615-4bf6-b6f3-0e564493a254 | True |
HEADER_TYPE | String | Optional. If you decide to include the header text, you must set the header’s type to text and add a text field with the desired content. | This is a header content. | True |
Sample Request
Reply Message - with a Text Header
curl --location --request POST 'https://api.in.kaleyra.io/v1/HXXXXXXX071IN/messages'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'api-key: Ac4XXXXX21f'
--form 'to="91XXXXXXXXXX"'
--form 'type="reply"'
--form 'channel="WhatsApp"'
--form 'from="+91XXXXXXXXXX"'
--form 'body="Hi Test"'
--form 'footer="Hey footer"'
--form 'action="{
\"buttons\": [
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"1\",
\"title\": \"First Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"2\",
\"title\": \"Second Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"3\",
\"title\": \"Third Button Title\"
}
}
]
}"' \
--form 'callback_url="https://webhook.site/962dXXXX-2c91-43XX-bd01-513XXXXXXX68"'
--form 'header_type="text"'
--form 'header_value="Header text value"
Reply Message - with an Image Header
curl --location --request POST 'https://api.kaleyra.io/v1/HXXXXXXX071US/messages'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'api-key: Ac4XXXXX21f'
--form 'to="91XXXXXXXXXX"'
--form 'type="reply"'
--form 'channel="WhatsApp"'
--form 'from="91XXXXXXXXXX"'
--form 'body="Hi Test"'
--form 'footer="Hey footer"'
--form 'action="{
\"buttons\": [
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"1\",
\"title\": \"First Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"2\",
\"title\": \"Second Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"3\",
\"title\": \"Third Button Title\"
}
}
]
}"'
--form 'callback_url="https://webhook.site/9XXXXX48-2XXc-XXXX-XXXX-XXXXXXXX516c"'
--form 'header_type="image"'
--form
'header_value="https://s3.ap-south-1.amazonaws.com/stage-hexa/docs/XXXXXX1334KLlogo.png"'
--form 'caption="atul_image-Caption"'
Reply Message - with Video Header
curl --location --request POST 'https://api.kaleyra.io/v1/HXXXXXXX071US/messages'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'api-key: Ac4XXXXX21f'
--form 'to="91XXXXXXXXXX"'
--form 'type="reply"'
--form 'channel="WhatsApp"'
--form 'from="+91XXXXXXXXXX"'
--form 'body="Hi Test"'
--form 'footer="Hey footer"'
--form 'action="{
\"buttons\": [
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"1\",
\"title\": \"First Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"2\",
\"title\": \"Second Button Title\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"3\",
\"title\": \"Third Button Title\"
}
}
]
}"'
--form 'callback_url="https://webhook.site/XXXXXXXX-2c91-4XXX-bd01-51XXXXXX3a6c"'
--form 'header_type="video"'
--form 'header_value="http://techslides.com/demos/sample-videos/small.mp4"'
--form 'caption="testfilename"'
Reply Message - with Document Header
curl --location --request POST 'https://api.kaleyra.io/v1/HXXXXXXX071US/messages'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'api-key: Ac4XXXXX21f'
--form 'to="91XXXXXXXXXX"'
--form 'type="reply"'
--form 'channel="WhatsApp"'
--form 'from="+91XXXXXXXXXX"'
--form 'body="Hi Test"'
--form 'footer="Hey footer"'
--form 'action="{
\"buttons\": [
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"abc\",
\"title\": \"First Button Test\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"111\",
\"title\": \"Second Button Test\"
}
},
{
\"type\": \"reply\",
\"reply\": {
\"id\": \"3\",
\"title\": \"Third Button Test\"
}
}
]
}"'
--form 'callback_url="https://webhook.site/XXXXXX98-2c91-4320-bd01-513XXXXXXXXX"'
--form 'header_type="document"'
--form
'header_value="https://s3.ap-south-1.amazonaws.com/stage-hexa/docs/1614XXXXXXtestdoc.pdf"'
--form 'caption="fileNametest"'
Success Response
{
"id": "fXXXXX8e-4e7d-4621-a36a-43XXXXXX7fbb",
"type": "reply",
"body": "Hi akshay",
"createdDateTime": "2021-11-19 08:47:16+00:00",
"totalCount": 1,
"data": [
{
"message_id": "fXXXXXXX-4XXX-4XXX1-a36a-43XXXXXXXXb7:0",
"recipient": "91XXXXXXXX89"
}
],
"error": {}
}
Failure Response
{
"code": "E413",
"message": "Invalid/incorrect inputs",
"data": [],
"error": {
"type": "type field is mandatory"
}
}
{
"code": "E413",
"message": "Invalid/incorrect inputs",
"data": [],
"error": {
"body": "For the type reply, body field is mandatory and cannot be empty!"
}
}
Error Codes
The following table provides information about the error codes you would receive when executing the List Message API.
Error Code | Description |
---|---|
'E413' | Invalid/incorrect inputs. |
Updated 9 days ago