Skip to content
Get Started
API v2

Carousel Messaging API

Send swipeable multi-image carousels via the Sendblue API

Send multiple images as a swipeable carousel in iMessage. Carousel messaging is only available on V2 (Mac Mini) lines.

POST https://api.sendblue.co/api/send-carousel
ParameterTypeRequiredDescription
numberstringYesRecipient phone number (E.164). Aliases: recipient, to
from_numberstringYesYour V2 (Mac Mini) Sendblue line (E.164). Aliases: fromNumber, from, sendblue_number
media_urlsstring[]YesArray of 2–20 HTTPS image URLs. Alias: mediaURLs
status_callbackstringNoWebhook URL for delivery status. Alias: statusCallback
send_stylestringNoiMessage send effect. Alias: sendStyle
metadataobjectNoCustom metadata returned in webhooks
Terminal window
curl -X POST 'https://api.sendblue.co/api/send-carousel' \
-H 'sb-api-key-id: YOUR_API_KEY' \
-H 'sb-api-secret-key: YOUR_API_SECRET' \
-H 'Content-Type: application/json' \
-d '{
"number": "+19175551234",
"from_number": "+14155559876",
"media_urls": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg",
"https://example.com/image3.jpg"
]
}'
const axios = require('axios');
await axios.post(
'https://api.sendblue.co/api/send-carousel',
{
number: '+19175551234',
from_number: '+14155559876',
media_urls: [
'https://example.com/image1.jpg',
'https://example.com/image2.jpg',
'https://example.com/image3.jpg'
]
},
{
headers: {
'sb-api-key-id': 'YOUR_API_KEY',
'sb-api-secret-key': 'YOUR_API_SECRET',
'Content-Type': 'application/json'
}
}
);
{
"status": "QUEUED",
"accountEmail": "[email protected]",
"message_handle": "abc123-def456",
"number": "+19175551234",
"from_number": "+14155559876",
"media_url": "https://example.com/image1.jpg",
"is_outbound": true,
"message_type": "carousel"
}

{
"status": "ERROR",
"message": "'media_urls' is required — an array of 2-20 HTTPS URLs"
}
{
"status": "ERROR",
"message": "Carousel requires at least 2 media URLs. For single media, use /send-message with media_url."
}
{
"status": "ERROR",
"message": "'media_urls' must contain at most 20 items"
}
{
"status": "ERROR",
"message": "media_urls[0] must be an HTTPS URL"
}
{
"status": "ERROR",
"message": "You must specify a valid `from_number` in the request body."
}
{
"status": "ERROR",
"message": "Carousel messaging is only available on V2 lines"
}
{
"status": "ERROR",
"message": "Cannot send messages to self"
}
{
"status": "ERROR",
"message": "The from_number is not registered"
}
  1. V2 Only: Carousel messaging requires a V2 (Mac Mini) Sendblue line. It is not available on V1 lines.

  2. 2–20 Images: You must provide between 2 and 20 HTTPS image URLs. For sending a single image, use /api/send-message with the media_url parameter.

  3. HTTPS Required: All media URLs must use HTTPS.