On this page

Documentation Release Notes - November 2025

The biggest addition this month was the introduction of the Admin API documentation that gives you programmatic access to manage your PubNub infrastructure.

November also brought comprehensive Chat SDK improvements, expanded logging documentation, and new rate limiting guidance to help you build scalable, manageable real-time applications.

We added channel groups to JavaScript, Kotlin, and Swift Chat SDKs, refactored stream updates across all Chat SDKs for better consistency, and documented new pagination parameters for HereNow operations. We also expanded logging documentation with new platform-specific guides for Swift, C#, Dart, Go, and Unity SDKs.

We created comprehensive guidance on managing message rates for high-occupancy scenarios using PubNub's Functions-based rate limiter, perfect for live events, chat applications, and other high-traffic use cases.

General 🛠️

Rate limiting documentation

Type: New feature

We created comprehensive rate limiting documentation that covers strategies for controlling message rates in high-occupancy scenarios like live events and large-scale chat applications.

The new documentation covers:

  • Functions-based rate limiter - PubNub's recommended approach for dynamic message throttling without additional infrastructure
  • Message throttler - A before-publish Function that controls message rates based on configurable parameters
  • Message sampler - A component that monitors channels and dynamically adjusts throttling rates
  • Channel sharding - An alternative approach for scenarios with logical audience groupings (languages, teams, regions)
  • Complete sample code - Working implementations for both throttler and sampler components

The Functions rate limiter preserves the "stadium atmosphere" where users feel part of a large audience while maintaining readable message flow:

We also added companion documentation for live event rate limiting that provides use case-specific guidance for sports streaming, concerts, and other high-traffic live events.

Moderation documentation improvements

Type: Enhancement

We improved the discoverability and organization of our moderation documentation, making it easier to understand the different moderation approaches available in PubNub.

The updated documentation now clearly explains:

  • Proactive vs reactive moderation - When to intercept messages before publishing vs reviewing after delivery
  • Moderation approach comparison - A comprehensive table comparing Auto Moderation, Channel Monitor, Chat SDK features, and custom Functions
  • Common use cases - Specific guidance for live event moderation, community chat safety, customer support, and gaming scenarios

The reorganization includes a new visual flow diagram showing the decision points between different moderation strategies and clearer navigation across all moderation-related documentation sections.

SDKs 📦

Logging documentation for Swift, C#, Dart, Go, and Unity SDKs

Type: Enhancement

We added comprehensive platform-specific logging documentation for five additional SDKs, expanding on the unified logging practices we documented in October.

1import PubNub
2
3// Configure logging with OSLogWriter (iOS 14.0+, macOS 11.0+)
4let logger = PubNubLogger(
5 levels: [.error, .warn, .info],
6 writers: [OSLogWriter()]
7)
8
9let config = PubNubConfiguration(
10 publishKey: "demo",
11 subscribeKey: "demo",
12 userId: "myUserId",
13 logger: logger
14)
15
show all 16 lines

Swift SDK logging:

The Swift SDK logging guide covers Apple's native logging integration with OSLogWriter (recommended for iOS 14.0+, macOS 11.0+), plus legacy support with ConsoleLogWriter and FileLogWriter. The documentation includes structured logging through the LogMessage protocol, custom log writer implementation, and filtering by category in Xcode.

C# SDK logging:

The C# SDK logging guide explains how to configure logging levels, implement custom loggers via the IPubnubLogger interface, and use multiple loggers simultaneously. The built-in default logger automatically outputs to System.Diagnostics.Debug.

You can implement custom loggers to route logs to external monitoring services:

1public class MyCustomLogger : IPubnubLogger
2{
3 public void Trace(string msg) => Console.WriteLine($"[TRACE] {msg}");
4 public void Debug(string msg) => Console.WriteLine($"[DEBUG] {msg}");
5 public void Info(string msg) => Console.WriteLine($"[INFO] {msg}");
6 public void Warn(string msg) => Console.WriteLine($"[WARN] {msg}");
7 public void Error(string msg) => Console.WriteLine($"[ERROR] {msg}");
8}

Additional SDK logging guides:

We also added logging documentation for Dart SDK, Go SDK, and Unity SDK, ensuring all major PubNub SDKs now have comprehensive logging guidance.

All logging guides include:

  • How to enable and configure log levels
  • Custom logger implementation examples
  • Performance considerations and security best practices
  • Recommendations by environment (production, staging, development)

HereNow changes across SDKs

Type: Enhancement

We documented new limit and offset parameters for HereNow operations across multiple SDKs, enabling more control over the response size.

The updated SDKs include:

New parameters:

ParameterDescription
Limit
Default:
1000
Maximum number of occupants to return per channel. Valid range: 0-1000. Use 0 to get occupancy counts without user details.
Offset
Default:
0
Zero-based starting index for pagination. Returns occupants starting from this position in the list.

These parameters help you efficiently retrieve presence information for high-occupancy channels without hitting response size limits.

Channel groups in JavaScript, Kotlin, and Swift Chat SDKs

Type: New feature

We documented channel groups functionality in the JavaScript, Kotlin, and Swift Chat SDKs.

Channel groups let you manage and subscribe to multiple channels as a single unit. Instead of subscribing to each channel individually, you can add channels to a group and receive messages from all of them with a single subscription.

Key methods documented:

  • getChannelGroup() - Get a reference to a channel group
  • removeChannelGroup() - Delete a channel group from the server
  • listChannels() - Get a paginated list of channels in a group
  • addChannels() / addChannelIdentifiers() - Add channels to a group
  • removeChannels() / removeChannelIdentifiers() - Remove channels from a group
  • connect() - Start receiving messages from all channels in the group
  • whoIsPresent() - Get users present on channels in the group
  • streamPresence() - Receive real-time presence updates for the group
1const channelGroup = chat.getChannelGroup("my-channel-group")
2
3const disconnect = channelGroup.connect((message) => {
4 console.log(`Received message on channel ${message.channelId}: ${message.text}`)
5})

We also documented the new ChannelGroup entity in the Chat SDK entity documentation.

Stream updates refactor across Chat SDKs

Type: Enhancement

We refactored and documented stream updates methods across all Chat SDKs for better consistency and functionality.

User updates:

The JavaScript, Kotlin, Swift, and Unreal Chat SDK documentation now includes clearer explanations of:

  • streamUpdates() - Monitor a single user for changes
  • streamUpdatesOn() - Monitor multiple users simultaneously
  • Callback behavior - Understanding when you receive the full list vs individual updates with change types

Unity Chat SDK stream updates refactor:

We significantly expanded the Unity Chat SDK stream updates documentation across multiple features:

The Unity documentation now clearly explains the two StreamUpdatesOn() overloads:

  • One returns the complete list of entities each time any change occurs
  • One returns only the specific entity that was updated along with the change type (Updated or Deleted)

Get invitees in Unity Chat SDK

Type: New feature

We documented the GetInvitees() method in the Unity Chat SDK, allowing you to retrieve the list of users who have been invited to a channel.

The method returns invitation details including the inviter, invitee, and channel information, making it easier to manage pending invitations in your chat application.

PHP SDK code snippets expansion

Type: Enhancement

We added remaining dynamic code snippets to the PHP SDK documentation, continuing our effort to source examples directly from SDK repositories.

The expanded coverage includes:

These repository-sourced snippets stay synchronized with SDK changes, ensuring you always see tested, up-to-date examples.

Configuration updates for Java and Kotlin SDKs

Type: Enhancement

We removed the deprecated fileMessagePublishRetryLimit configuration property from the Java SDK and Kotlin SDK documentation. This property is no longer supported in current SDK versions.

GCM to FCM updates

Type: Enhancement

We completed additional GCM to FCM terminology updates in the JavaScript SDK mobile push documentation and other SDK references, ensuring consistency with the migration work completed in October.

Other 🌟

Admin API documentation

Type: New feature

We published the Admin API documentation, giving you programmatic access to manage your PubNub infrastructure. This is a significant milestone for developers who need to automate account management, implement infrastructure-as-code workflows, or build custom tooling around PubNub.

The Admin API enables you to:

  • Manage applications - Create, read, update, and delete PubNub applications programmatically
  • Configure keysets - Provision and configure keysets with full control over features and settings
  • Access usage metrics - Retrieve usage data for monitoring and billing integration

This opens up powerful automation scenarios:

Use caseHow the Admin API helps
Infrastructure as code
Define your PubNub apps and keysets in version-controlled configuration files and deploy them automatically
Multi-tenant platforms
Dynamically provision isolated keysets for each customer without manual Admin Portal work
CI/CD pipelines
Automatically create test keysets for integration tests and tear them down afterward
Custom dashboards
Build internal tools that display usage metrics alongside your other infrastructure data
Partner integrations
Programmatically manage resources for end customers through your own portal

The documentation includes a built-in version selector that lets you switch between API versions, ensuring you can always reference the correct specification for your implementation. Each version has its own OpenAPI specification available for download, making it easy to generate client libraries or import into tools like Postman.

Previously, managing PubNub applications and keysets required manual interaction with the Admin Portal. With the Admin API, you can now treat your real-time infrastructure the same way you treat your other cloud resources: automated, repeatable, and version-controlled.

Documentation bug fixes

Type: Enhancement

We addressed several documentation issues this month:

  • Fixed a Mermaid diagram rendering issue in dark mode
  • Removed a duplicate occupants print statement from Python SDK presence examples
Last updated on