Overview
Newsletters (also called channels) are broadcast-style messaging in WhatsApp. Unlike groups, newsletter messages are plaintext (no Signal E2E encryption) and flow one-way from admins to subscribers. This guide covers creating newsletters, managing subscriptions, sending messages, and handling live updates.Accessing the Newsletter API
All newsletter operations are accessed through thenewsletter() method:
Creating a newsletter
NewsletterMetadata contains the channel’s JID (with @newsletter server), name, subscriber count, and invite code.
See Newsletter API reference for details.
Listing subscribed newsletters
Fetching metadata
By JID
By invite code
Joining and leaving
Join a newsletter
Leave a newsletter
Updating a newsletter
You can update the name and/or description of a newsletter you own:None for fields you don’t want to change.
See Newsletter API reference for details.
Sending messages
Newsletter messages are plaintext — they bypass Signal encryption entirely. You send newsletter messages through the unifiedclient.send_message() method, just like regular and group messages.
Text messages
type attribute (text, media, reaction, poll) and mediatype attribute from the message content. Stanza-level <meta> nodes (for polls, events, etc.) are also injected automatically, matching WhatsApp Web behavior.
For media messages (images, videos, etc.), you must upload the media separately using the newsletter-specific upload endpoint before sending. Text messages work directly.
Reactions
Send a reaction to a specific newsletter message using itsserver_id:
Editing and revoking messages
Channels use a plaintext edit/revoke flow that’s separate from DM and group messages. Call the helpers onclient.newsletter() and pass the original message’s message_id (the wire stanza id returned by send_message, not the server_id used for reactions):
Fetching message history
Retrieve past messages with pagination support:Pagination
Use theserver_id from a previous response to paginate backwards:
Live updates
Subscribe to real-time updates for a newsletter to receive reaction count changes:NewsletterLiveUpdate events with updated reaction counts. Handle them in your event handler:
The subscription duration (typically 300 seconds) is returned by the server. You need to re-subscribe periodically to continue receiving live updates.
Error handling
Newsletter operations returnMexError for metadata/management operations and anyhow::Error for message operations:
Key differences from groups
Next steps
- Newsletter API reference — Full API details and types
- Events — Handle newsletter live update events
- Sending messages — Send messages to groups and contacts
- MEX API — Understand the GraphQL layer used by newsletters