Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.usetitan.app/llms.txt

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

WhatsApp Channels (also called Newsletters) are one-way broadcast channels separate from regular group chats. Followers can read posts but cannot reply in the channel itself. Only channel admins can publish content. Titan gives you full API access to create and manage channels, follow or unfollow them, and send posts using the standard send endpoint.
Channels are fundamentally different from groups. Groups are multi-participant conversations. Channels are one-way broadcasts — followers receive posts but cannot send messages back.

Channel operations

All channel endpoints are scoped to a {session}, which is the name of the WhatsApp session performing the operation.

Create a channel

POST /api/sessions/{session}/channels
name
string
required
The channel’s display name.
description
string
A short description of what the channel is about.
profileUrl
string
URL of the channel’s profile picture.
curl -X POST https://api.titan.io/api/sessions/default/channels \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Product Updates",
    "description": "The latest news about our products and features."
  }'

List channels

Retrieve all channels the session follows or owns.
GET /api/sessions/{session}/channels

Get channel info

Fetch details for a single channel.
GET /api/sessions/{session}/channels/{channelId}
The response includes the channel’s name, description, followers count, muted status, and profileUrl.

Delete a channel

Permanently delete a channel you own.
DELETE /api/sessions/{session}/channels/{channelId}
Deleting a channel is permanent. All posts and follower relationships are removed immediately.

Following and muting

Follow a channel

Subscribe the session to receive posts from a channel.
POST /api/sessions/{session}/channels/{channelId}/follow

Unfollow a channel

Remove the session’s subscription.
POST /api/sessions/{session}/channels/{channelId}/unfollow

Mute a channel

Silence notifications for a channel without unfollowing.
POST /api/sessions/{session}/channels/{channelId}/mute

Unmute a channel

Restore notifications for a previously muted channel.
POST /api/sessions/{session}/channels/{channelId}/unmute
curl -X POST https://api.titan.io/api/sessions/default/channels/120363012345678901@newsletter/follow \
  -H "Authorization: Bearer YOUR_API_KEY"

Sending to a channel

To publish a post to a channel, use the send messages endpoint with the channel ID as the chatId. All message types are supported — text, image, video, document, and more.
curl -X POST https://api.titan.io/api/messages/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session": "default",
    "chatId": "120363012345678901@newsletter",
    "type": "text",
    "text": "We just shipped a new feature. Here is what is new:"
  }'
Channel JIDs end with @newsletter. Group JIDs end with @g.us. Individual chat JIDs end with @s.whatsapp.net. You can always tell the chat type from the JID suffix.

Webhook events

Titan emits a newsletter.update event when channel state changes. Key fields in the payload:
  • id — the channel JID (ends with @newsletter)
  • action — one of join, leave, mute, unmute, or live_update
  • muted — present for mute/unmute actions, true when muted
{
  "event": "newsletter.update",
  "session": "default",
  "data": {
    "id": "120363012345678901@newsletter",
    "action": "join"
  }
}

Channel object

name
string
The channel’s display name.
description
string
The channel’s description or topic.
followers
integer
Number of accounts following the channel.
muted
boolean
Whether the session has muted notifications for this channel.
profileUrl
string
URL of the channel’s profile picture.
preview
boolean
Whether the channel is in preview mode.
lid
string
The channel’s JID (Linked Device ID format).