curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic <Base64Encoded clientId:clientSecret>' \
--header 'Content-Type: application/json' \
--data '{
"type": "CAROUSEL",
"userId": "USER_ID",
"text": "Check out our latest offers",
"parameters": {
"cards": [
{
"card_index": 0,
"type": "cta_url",
"header": {
"type": "image",
"image": { "link": "https://example.com/image1.png" }
},
"body": { "text": "Exclusive deal #1" },
"action": {
"name": "cta_url",
"parameters": {
"display_text": "Shop now",
"url": "https://shop.example.com/deal1"
}
}
},
{
"card_index": 1,
"type": "cta_url",
"header": {
"type": "image",
"image": { "link": "https://example.com/image2.png" }
},
"body": { "text": "Exclusive deal #2" },
"action": {
"name": "cta_url",
"parameters": {
"display_text": "Shop now",
"url": "https://shop.example.com/deal2"
}
}
}
]
}
}'
{
"success": true,
"messageId": "msg_123456789"
}Send an interactive carousel message with multiple cards
curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic <Base64Encoded clientId:clientSecret>' \
--header 'Content-Type: application/json' \
--data '{
"type": "CAROUSEL",
"userId": "USER_ID",
"text": "Check out our latest offers",
"parameters": {
"cards": [
{
"card_index": 0,
"type": "cta_url",
"header": {
"type": "image",
"image": { "link": "https://example.com/image1.png" }
},
"body": { "text": "Exclusive deal #1" },
"action": {
"name": "cta_url",
"parameters": {
"display_text": "Shop now",
"url": "https://shop.example.com/deal1"
}
}
},
{
"card_index": 1,
"type": "cta_url",
"header": {
"type": "image",
"image": { "link": "https://example.com/image2.png" }
},
"body": { "text": "Exclusive deal #2" },
"action": {
"name": "cta_url",
"parameters": {
"display_text": "Shop now",
"url": "https://shop.example.com/deal2"
}
}
}
]
}
}'
{
"success": true,
"messageId": "msg_123456789"
}Documentation Index
Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
Use this file to discover all available pages before exploring further.
curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic <Base64Encoded clientId:clientSecret>' \
--header 'Content-Type: application/json' \
--data '{
"type": "CAROUSEL",
"userId": "USER_ID",
"text": "Check out our latest offers",
"parameters": {
"cards": [
{
"card_index": 0,
"type": "cta_url",
"header": {
"type": "image",
"image": { "link": "https://example.com/image1.png" }
},
"body": { "text": "Exclusive deal #1" },
"action": {
"name": "cta_url",
"parameters": {
"display_text": "Shop now",
"url": "https://shop.example.com/deal1"
}
}
},
{
"card_index": 1,
"type": "cta_url",
"header": {
"type": "image",
"image": { "link": "https://example.com/image2.png" }
},
"body": { "text": "Exclusive deal #2" },
"action": {
"name": "cta_url",
"parameters": {
"display_text": "Shop now",
"url": "https://shop.example.com/deal2"
}
}
}
]
}
}'
| Field | Type | Description |
|---|---|---|
card_index | number | Card position (zero-based). |
type | string | Action type: cta_url or quick_reply. |
header.type | string | image or video. |
header.image.link / header.video.link | string | Public URL of the header media. |
body.text | string | Card body text. |
action | object | Action triggered when the card is interacted with. |
{
"card_index": 0,
"type": "quick_reply",
"header": {
"type": "image",
"image": { "link": "https://example.com/image.png" }
},
"body": { "text": "Are you interested in this offer?" },
"action": {
"buttons": [
{
"type": "quick_reply",
"quick_reply": { "id": "BUY_1", "title": "Yes, buy" }
},
{
"type": "quick_reply",
"quick_reply": { "id": "SKIP_1", "title": "No, thanks" }
}
]
}
}
image or video are supported.Basic authentication using Base64 encoded clientId:clientSecret
The unique identifier of the bot
Message payload. The structure varies based on the message type.
Type of message to send
text "text"
Unique identifier of the user receiving the message
"USER_ID"
Text content of the message
"Hello, this is a text message"
Unique identifier of the bot sending the message
"BOT_ID"
Was this page helpful?