Skip to main content

Documentation Index

Fetch the complete documentation index at: https://lava.so/docs/llms.txt

Use this file to discover all available pages before exploring further.

Sendblue API for sending and receiving iMessage, SMS, and RCS messages from a dedicated business phone number. Supports group chats, image carousels, tapback reactions, read receipts, typing indicators, contact management, and webhooks for inbound messages. Use when an agent needs to text a verified contact, manage a conversation thread, or run an iMessage-based chatbot. Users connect by pasting their API Key ID and API Secret Key from the Sendblue dashboard into the Connect dialog. 16 example endpoints available through Lava’s AI Gateway. See the Sendblue API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a catch-all provider — any valid URL under https://api.sendblue.com is supported. Sendblue v2 messaging API. Construct URL as https://api.sendblue.com/{path}. Common roots: /api/send-message, /api/send-group-message, /api/send-carousel, /api/create-group, /api/status/, /api/evaluate-service, /api/v2/messages, /api/v2/messages/, /api/message/, /api/send-reaction, /api/mark-read, /api/send-typing-indicator, /api/upload-media-object, /api/v2/contacts, /api/v2/contacts/, /api/v2/contacts/bulk, /api/v2/contacts/count, /api/account/webhooks, /api/lines, /accounts/lines/available-area-codes. See https://docs.sendblue.com/api-v2 for full reference. The endpoints below are curated examples.

Endpoints

Send an iMessage, SMS, or RCS message to a single recipient

POST https://api.sendblue.com/api/send-message — Free
const data = await lava.gateway('https://api.sendblue.com/api/send-message', {
  body: {
"number": "+15551234567",
"from_number": "+15557654321",
"content": "Hello from Sendblue!"
},
});

Send a message to an existing group conversation

POST https://api.sendblue.com/api/send-group-message — Free
const data = await lava.gateway('https://api.sendblue.com/api/send-group-message', {
  body: {
"group_id": "GROUP_ID",
"from_number": "+15557654321",
"content": "Hello group!"
},
});

Create a new group chat with the provided recipients

POST https://api.sendblue.com/api/create-group — Free
const data = await lava.gateway('https://api.sendblue.com/api/create-group', {
  body: {
"numbers": [
  "+15551234567",
  "+15559876543"
],
"from_number": "+15557654321",
"content": "Welcome to the group"
},
});
POST https://api.sendblue.com/api/send-carousel — Free
const data = await lava.gateway('https://api.sendblue.com/api/send-carousel', {
  body: {
"number": "+15551234567",
"from_number": "+15557654321",
"media_urls": [
  "https://example.com/image1.jpg",
  "https://example.com/image2.jpg"
]
},
});

Send a tapback reaction (love, like, dislike, laugh, emphasize, question)

POST https://api.sendblue.com/api/send-reaction — Free
const data = await lava.gateway('https://api.sendblue.com/api/send-reaction', {
  body: {
"from_number": "+15557654321",
"message_handle": "E8F2C3D1-A5B7-4E9F-8C1D-2A3B4C5D6E7F",
"reaction": "love"
},
});

Send a read receipt for an inbound message

POST https://api.sendblue.com/api/mark-read — Free
const data = await lava.gateway('https://api.sendblue.com/api/mark-read', { body: {"number":"+15551234567","from_number":"+15557654321"} });

Show a typing indicator in a conversation

POST https://api.sendblue.com/api/send-typing-indicator — Free
const data = await lava.gateway('https://api.sendblue.com/api/send-typing-indicator', { body: {"number":"+15551234567"} });

Upload media to Sendblue from a public URL

POST https://api.sendblue.com/api/upload-media-object — Free
const data = await lava.gateway('https://api.sendblue.com/api/upload-media-object', { body: {"media_url":"https://example.com/image.jpg"} });

Check whether a recipient’s number supports iMessage, SMS, or RCS

GET https://api.sendblue.com/api/evaluate-service?number=%2B15551234567 — Free
const data = await lava.gateway('https://api.sendblue.com/api/evaluate-service?number=%2B15551234567', { method: 'GET' });

List messages with optional filters (date, number, status)

GET https://api.sendblue.com/api/v2/messages?limit=50 — Free
const data = await lava.gateway('https://api.sendblue.com/api/v2/messages?limit=50', { method: 'GET' });

List all contacts in the Sendblue account

GET https://api.sendblue.com/api/v2/contacts — Free
const data = await lava.gateway('https://api.sendblue.com/api/v2/contacts', { method: 'GET' });

Create a new contact

POST https://api.sendblue.com/api/v2/contacts — Free
const data = await lava.gateway('https://api.sendblue.com/api/v2/contacts', { body: {"number":"+15551234567","first_name":"Jane"} });

List the dedicated phone numbers (lines) assigned to the account

GET https://api.sendblue.com/api/lines — Free
const data = await lava.gateway('https://api.sendblue.com/api/lines', { method: 'GET' });

List configured webhook endpoints for inbound events

GET https://api.sendblue.com/api/account/webhooks — Free
const data = await lava.gateway('https://api.sendblue.com/api/account/webhooks', { method: 'GET' });

Update an existing contact by phone number

PUT https://api.sendblue.com/api/v2/contacts/+15551234567 — Free
const data = await lava.gateway('https://api.sendblue.com/api/v2/contacts/+15551234567', { method: 'PUT', body: {"first_name":"Jane","last_name":"Doe"} });

Delete a message from the Sendblue database by handle

DELETE https://api.sendblue.com/api/message/MESSAGE_HANDLE — Free
const data = await lava.gateway('https://api.sendblue.com/api/message/MESSAGE_HANDLE', { method: 'DELETE' });

Next Steps

All Providers

Browse all supported AI providers

Forward Proxy

Learn how to construct proxy URLs and authenticate requests