BetaThe V4 API is in beta — endpoints and functionality may change.

Message content

Typed v4 content: text, media, multipart, rich links, and polls.

Every v4 send uses a content object with a type field. The API validates the shape before routing.

Text

{
  "content": {
    "type": "text",
    "text": "Hello!",
    "reply_to": "msg_parent"
  }
}

Optional fields (where the channel supports them) include effect for iMessage screen/bubble effects and link-preview overrides.

Media

{
  "content": {
    "type": "media",
    "attachments": [
      { "url": "https://cdn.example.com/photo.jpg" }
    ],
    "text": "Optional caption"
  }
}

See Attachments for URL requirements and common formats.

Multipart

Use multipart when you need several parts in one message (text + media, or multiple media items) in a single content object. Prefer media for a simple attachment list.

Some channels support a structured rich-link payload (title, image, URL). If unsupported, Blooio falls back or returns a capability error.

Poll

Polls are normal message content on Blooio. Constrain routing with from.type: "blooio" so only poll-capable senders are considered:

{
  "from": { "type": "blooio" },
  "to": "+15551234567",
  "content": {
    "type": "poll",
    "title": "Which day works?",
    "options": ["Monday", "Wednesday", "Friday"]
  }
}

Dedicated chat poll endpoints remain available for compatibility. Vote and results live under /chats/{chatId}/polls.

Capability-aware routing

When from is omitted or only constrains type, Blooio skips senders that cannot deliver the content type (for example polls on Twilio). Exact number / sender_key / id selectors fail clearly if that sender cannot send the content.