> ## 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

> Sendblue API for sending and receiving iMessage, SMS, and RCS messages from a dedicated business phone number.

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](https://docs.sendblue.com/api-v2) for full documentation.

<Warning>This provider requires your own credentials — connect your API key or OAuth account before use.</Warning>

<Info>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/\&#123;path\&#125](https://api.sendblue.com/\&#123;path\&#125);. Common roots: /api/send-message, /api/send-group-message, /api/send-carousel, /api/create-group, /api/status/\{handle}, /api/evaluate-service, /api/v2/messages, /api/v2/messages/\{id}, /api/message/\{handle}, /api/send-reaction, /api/mark-read, /api/send-typing-indicator, /api/upload-media-object, /api/v2/contacts, /api/v2/contacts/\{phone}, /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](https://docs.sendblue.com/api-v2) for full reference. The endpoints below are curated examples.</Info>

## Endpoints

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

**POST** `https://api.sendblue.com/api/send-message` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/send-message', {
      body: {
    "number": "+15551234567",
    "from_number": "+15557654321",
    "content": "Hello from Sendblue!"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fsend-message" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"number":"+15551234567","from_number":"+15557654321","content":"Hello from Sendblue!"}'
    ```
  </Tab>
</Tabs>

### Send a message to an existing group conversation

**POST** `https://api.sendblue.com/api/send-group-message` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/send-group-message', {
      body: {
    "group_id": "GROUP_ID",
    "from_number": "+15557654321",
    "content": "Hello group!"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fsend-group-message" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"group_id":"GROUP_ID","from_number":"+15557654321","content":"Hello group!"}'
    ```
  </Tab>
</Tabs>

### Create a new group chat with the provided recipients

**POST** `https://api.sendblue.com/api/create-group` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/create-group', {
      body: {
    "numbers": [
      "+15551234567",
      "+15559876543"
    ],
    "from_number": "+15557654321",
    "content": "Welcome to the group"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fcreate-group" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"numbers":["+15551234567","+15559876543"],"from_number":"+15557654321","content":"Welcome to the group"}'
    ```
  </Tab>
</Tabs>

### Send a swipeable multi-image carousel (V2 lines only)

**POST** `https://api.sendblue.com/api/send-carousel` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    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"
    ]
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fsend-carousel" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"number":"+15551234567","from_number":"+15557654321","media_urls":["https://example.com/image1.jpg","https://example.com/image2.jpg"]}'
    ```
  </Tab>
</Tabs>

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

**POST** `https://api.sendblue.com/api/send-reaction` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    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"
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fsend-reaction" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"from_number":"+15557654321","message_handle":"E8F2C3D1-A5B7-4E9F-8C1D-2A3B4C5D6E7F","reaction":"love"}'
    ```
  </Tab>
</Tabs>

### Send a read receipt for an inbound message

**POST** `https://api.sendblue.com/api/mark-read` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/mark-read', { body: {"number":"+15551234567","from_number":"+15557654321"} });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fmark-read" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"number":"+15551234567","from_number":"+15557654321"}'
    ```
  </Tab>
</Tabs>

### Show a typing indicator in a conversation

**POST** `https://api.sendblue.com/api/send-typing-indicator` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/send-typing-indicator', { body: {"number":"+15551234567"} });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fsend-typing-indicator" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"number":"+15551234567"}'
    ```
  </Tab>
</Tabs>

### Upload media to Sendblue from a public URL

**POST** `https://api.sendblue.com/api/upload-media-object` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/upload-media-object', { body: {"media_url":"https://example.com/image.jpg"} });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fupload-media-object" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"media_url":"https://example.com/image.jpg"}'
    ```
  </Tab>
</Tabs>

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

**GET** `https://api.sendblue.com/api/evaluate-service?number=%2B15551234567` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/evaluate-service?number=%2B15551234567', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fevaluate-service%3Fnumber%3D%252B15551234567" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

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

**GET** `https://api.sendblue.com/api/v2/messages?limit=50` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/v2/messages?limit=50', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fv2%2Fmessages%3Flimit%3D50" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List all contacts in the Sendblue account

**GET** `https://api.sendblue.com/api/v2/contacts` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/v2/contacts', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fv2%2Fcontacts" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Create a new contact

**POST** `https://api.sendblue.com/api/v2/contacts` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/v2/contacts', { body: {"number":"+15551234567","first_name":"Jane"} });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fv2%2Fcontacts" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"number":"+15551234567","first_name":"Jane"}'
    ```
  </Tab>
</Tabs>

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

**GET** `https://api.sendblue.com/api/lines` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/lines', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Flines" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List configured webhook endpoints for inbound events

**GET** `https://api.sendblue.com/api/account/webhooks` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/account/webhooks', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Faccount%2Fwebhooks" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Update an existing contact by phone number

**PUT** `https://api.sendblue.com/api/v2/contacts/+15551234567` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/v2/contacts/+15551234567', { method: 'PUT', body: {"first_name":"Jane","last_name":"Doe"} });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fv2%2Fcontacts%2F%2B15551234567" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"first_name":"Jane","last_name":"Doe"}'
    ```
  </Tab>
</Tabs>

### Delete a message from the Sendblue database by handle

**DELETE** `https://api.sendblue.com/api/message/MESSAGE_HANDLE` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.sendblue.com/api/message/MESSAGE_HANDLE', { method: 'DELETE' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.sendblue.com%2Fapi%2Fmessage%2FMESSAGE_HANDLE" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json"
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
