Skip to content
Skillpedia
APIs & servers (backend)48k · #4679

sendblue-api

Helps your agent send and receive SMS and iMessage messages from applications. It can handle texts, media, and group chats.

What it does

This tool allows computer programs to send and receive text messages (SMS, iMessage, RCS) using a phone number. You can send individual or group messages, add special effects, reactions, and even know when someone is typing.

When to use it

  • ✓When an application needs to send SMS notifications.
  • ✓To build a chatbot that responds to text messages.
  • ✓To integrate message sending into a larger system.

Example of what to ask your AI

“Send a text message with a special effect to a friend.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/sendblue/sendblue-api/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/skills/sendblue/sendblue-api/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

Your program sends a request to the Sendblue API with the message details (who to, what to say, etc.). Sendblue handles sending the message through the configured phone number.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill sendblue-api

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/skills/sendblue/sendblue-api/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Sendblue API

Overview

Sendblue is a REST API that sends iMessage (blue bubbles), SMS, and RCS from a provisioned phone number. Everything is plain JSON over HTTPS — no SDK is required. The API covers outbound 1:1 and group sends, iMessage effects, reactions, typing indicators, status callbacks, and inbound webhooks.

When to Use This Skill

  • Use when writing application code (server, worker, function) that sends Sendblue messages as part of a long-running service.
  • Use when receiving inbound messages via webhooks.
  • Use when you need features the CLI does not expose: send styles, reactions, group messages, typing indicators, status callbacks, media uploads, or the contacts API beyond basic CRUD.
  • Reach for [[sendblue-cli]] instead for shell-context outbound: one-shot scripts, cron jobs, agent hooks, "ping me when X" workflows.

How It Works

Step 1: Authenticate

https://api.sendblue.com

Every request needs two headers:

sb-api-key-id: <YOUR_API_KEY_ID>
sb-api-secret-key: <YOUR_API_SECRET>
Content-Type: application/json

Keep both values server-side — never ship them to a browser or mobile client.

Step 2: Send a message

curl -X POST https://api.sendblue.com/api/send-message \
  -H "sb-api-key-id: $KEY_ID" \
  -H "sb-api-secret-key: $SECRET" \
  -H 'Content-Type: application/json' \
  -d '{
    "number": "+15551234567",
    "from_number": "+1YOUR_SENDBLUE_NUMBER",
    "content": "Hello from the API!"
  }'

Phone numbers must be E.164. from_number must be a line you own — list yours with GET /api/lines.

Step 3: Track delivery

The synchronous response includes a message_handle (Apple GUID — persist this; you need it for reactions and replies) and a status from REGISTERED, PENDING, QUEUED, ACCEPTED, SENT, DELIVERED, DECLINED, ERROR. Only DELIVERED means it landed. Use status_callback instead of polling /api/status.

Step 4: Receive inbound

Configure webhook URLs in the dashboard or via POST /api/account/webhooks. Sendblue POSTs JSON to your endpoint. Respond with 2xx promptly — non-2xx triggers retries and duplicate deliveries. Event types: receive, outbound, typing_indicator, call_log, line_blocked, line_assigned, contact_created.

Core Endpoints

Method Path Purpose
POST /api/send-message Send a 1:1 message (text and/or media)
POST /api/send-group-message Send to multiple recipients
POST /api/create-group Create a named group thread
POST /api/send-reaction Send a tapback (love/like/dislike/laugh/emphasize/question)
POST /api/send-typing-indicator Show "typing…" in the recipient's thread
POST /api/mark-read Send a read receipt
POST /api/upload-file / /api/upload-media-object Upload media (direct or from URL)
GET /api/status Poll a message's delivery status
GET /api/evaluate-service Check whether a number is on iMessage
GET /api/v2/messages / /api/v2/messages/:id Read message history
GET / POST / PUT / DELETE /api/v2/contacts[...] Manage contacts
GET /api/lines List your Sendblue phone numbers
POST /api/account/webhooks CRUD webhook subscriptions

Examples

Example 1: Send with media, effects, and a status callback

POST /api/send-message
{
  "number": "+15551234567",
  "from_number": "+1YOUR_SENDBLUE_NUMBER",
  "content": "Optional text",
  "media_url": "https://example.com/img.jpg",
  "send_style": "celebration",
  "status_callback": "https://yourapp.com/sendblue/status"
}

content and/or media_url is required. send_style is iMessage-only — valid values: celebration, shooting_star, fireworks, lasers, love, confetti, balloons, spotlight, echo, invisible, gentle, loud, slam. Ignored on SMS. Text up to 18,996 chars; media up to 100 MB on iMessage, 5 MB on SMS.

Example 2: Group message

POST /api/send-group-message
{
  "numbers": ["+15551234567", "+15557654321"],
  "from_number": "+1YOUR_SENDBLUE_NUMBER",
  "content": "Hey team"
}

The response returns a group_id — persist it to send follow-ups into the same thread instead of creating a new one each time.

Example 3: React to a message

POST /api/send-reaction
{
  "from_number": "+1YOUR_SENDBLUE_NUMBER",
  "message_handle": "<message_handle from prior send>",
  "reaction": "love"
}

…

FAQ

What are iMessage, SMS, and RCS?

These are different ways to send messages. iMessage is from Apple (blue bubbles), SMS is traditional text, and RCS is a more modern version of SMS.

What are 'webhooks'?

They are like a 'notification' that Sendblue sends to your program when a new message arrives or when a sent message is delivered.

Can I send pictures and videos?

Yes, you can send media like photos and videos, but there are size limits depending on whether it's iMessage or SMS.

Details

Original description by the author

Send and receive iMessage, SMS, and RCS from application code via the Sendblue HTTP API — text, media, group messages, send styles, reactions, typing indicators, status callbacks, and inbound webhooks.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#4679
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills