PubNub API Limits

General API limits

All API requests, made either by the SDK or directly through the REST interface, can be throttled if Requests Per Second (RPS) exceed 25. This limit applies to every PubNub API. Contact PubNub Support if you need more than 25 requests per second.

These global limits apply alongside the feature‑specific limits below.

Keysets

Account TierSoft LimitHard LimitIf hard limited is exceeded?
Free
3
3
You can't exceed the limit.

Limit of 3 keysets for Free tier accounts

Effective February 3, 2025, all Free tier accounts will be limited to a maximum of three keysets. If your account exceeds this limit, you must delete existing keysets to create new ones.

Starter
unlimited
unlimited
n/a
Pro
unlimited
unlimited
n/a

Publish

FunctionSoft Limit (Best Practices)Hard LimitIf hard limited is exceeded
Publish Rate
  • Best practice: 10–15 messages/sec per channel.
  • Publishing faster is possible.
  • Slow subscribers may miss messages.
  • Message buffer default: 100 messages per reconnect window (configurable).
  • Multiplexing uses a single 100‑message buffer across channels.
  • Example: 230 ms reconnect → ~400 msg/sec without loss.
  • Example: 50 ms reconnect → ~2000 msg/sec.
  • Larger buffers (300 or 500) help subscribers keep up.
  • Consider buffer TTL. See Message Buffer Cache.
  • If you wish to change the message queue limit, contact support@pubnub.com.
No throttling for keys in good standing (paid plan present or Free Tier within allowed limits).

Use HTTP pipelining for higher throughput.
Free Tier accounts can upgrade for higher usage. For a first overage, we attempt to contact you before taking action.

Error message (Channel quota exceeded)
# of users (publishers) per channel or keyset
Unlimited
N/A
Message Size
Less than < 30 KiB to be safe.
Length of GET request, including HTTP headers & URI encoding overhead (~32 KiB)
HTTP 400 error
Channel Name Length
2,048 characters
Channel ID Length
92 characters
User ID Length
92 characters
# of API keys per PubNub account?
An API is available if you need to manage an large number of keys (> 50). Contact us at support@pubnub.com if you need access to the Key Provisioning API.
Unlimited
N/A

Subscribe

FunctionSoft LimitHard LimitIf hard limited is exceeded?
Subscribe Rate
Soft limit depends on subscriber constraints (buffer, round trips).
No limit

Use HTTP Streaming for maximum throughput
N/A
# of Channels
Unlimited
N/A
# of Subscribers per channel or keyset
Unlimited
N/A
Message Buffer Cache
Size: 100 message queue.

TTL: up to 16 minutes (can be shorter).

If disconnect > 8–10 minutes, use Message Persistence.

NOTE:
  • Each socket has an in-memory message buffer (FIFO).
  • It keeps the most recent 100 messages for 12–16 minutes.
  • Publishing over 100 during reconnect can overflow the buffer and drop older messages.
  • For long‑term retrieval, enable Message Persistence (up to 6 months or unlimited) and use its API.
Size: configurable on our end (may add costs).

TTL: hard limit 20 minutes. Effective percent 90% → 18 minutes. Currently 80% → 16 minutes.
N/A
Catch-Up
100 messages (or size of buffer cache)
N/A
Channel Name Length
2,048 characters
# of Sockets/Instances per client
PubNub does not limit sockets/instances. Devices or platforms often limit TCP connections (some browsers allow ~40).

Each PubNub client instance uses two TCP sockets: one for subscribes and one for non‑subscribe operations.
Unlimited
N/A
Multiplexing (available without Stream Controller)
10 to 50 channels

When subscribing to many channels, channel groups allows for the persistence of channel lists.
No limit in client SDKs, but we advertise a hard limit of 100 channels.

No server side limit, only limited by URI length of 32 KiB.
Channel Groups
Up to 10 channel groups, each with 100 channels for a total of 1,000 channels.

You can change the limit of channels in the Admin Portal under your app's keyset configuration.

Paid customers can increase the limit to up to 2,000 channels per channel group, for a total of 20,000 channels.
If subscribing to more than 10 channel groups, receive 400 HTTP status code with description Maximum channel registry count exceeded
Wildcard Subscribe
Depends on subscribe rate

NOTE: refer to the note for Publish Rate
3 levels (2 dots) of wildcards:

a.

a.b.


No limit to # of channels able to subscribe to in a wildcard subscribe.

Wildcard Channel Names aren't allowed in Channel Groups.
Channel Group Name Length
92 Characters

File sharing

FunctionSoft LimitIf hard limited is exceeded?
File Size
5 MB
Contact us at support@pubnub.com to increase the file size limit.
File Retention
1, 3, 7, 15, or 30 days, or Unlimited

Presence

FunctionSoft LimitHard Limit
Heartbeat
Minimum: 1 minute heartbeat & 29 second interval
Minimum: heartbeat:10; interval: 4 (lowest common denominator across 3.x SDKs; each have different hard limits)

4.x SDKs do not currently have limitations.
Presence Announce Max
100
We can adjust this limit, but there are considerations
Webhook Retries
Presence webhooks will try to POST to your URL endpoint for a maximum of 4 times, each with a 5s timeout;

Ensure that the customer's server (REST endpoint) returns 200

NOTE: If a channel has reached the Presence Announce Max limit, we will not send webhook requests for that channel
If webhook has reached maximum number of retries, the request is lost.

Message Persistence

FunctionSoft LimitHard Limit
Data Retention
1 day, 7 days, 30 days, 3 months, 6 months, 1 year, or Unlimited
7 days for Free tier customers
Maximum # of channels with message count
100 channels per a single API call
N/A

App Context

ItemSoft LimitNotes
Size of a record
32 KiB
Maximum size of a user or channel metadata stored in the database, including custom fields.
Max user metadata records
1 million
Recommended maximum number of user metadata records using App Context API.
Max channel metadata records
1 million
Recommended maximum number of channel metadata records using App Context API.
Members added in a channel
5,000
Recommended maximum number of members per channel using App Context API.
Memberships per user
50,000
Recommended maximum number of memberships per user using App Context API.
Members per transaction request
20
Maximum number of members added or removed in a single call using App Context API.
EndpointItemHard LimitNotes
Set user metadata
name
2,048 characters
Maximum length of the name asigned to the User ID.
Set user metadata
externalId
2,048 characters
Maximum length of the user's identifier in an external system that you want to refer to.
Set user metadata
profileUrl
2,048 characters
Maximum length of the URL to an image that can be used to visually represent the user.
Set user metadata
email
320 characters
Maximum length of the user' email address.
Set user metadata
type
50 characters
Maximum length of the tag that lets you categorize a user by their functional role. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set user metadata
status
50 characters
Maximum length of the tag that lets you categorize a user by their current state. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set user metadata
custom
9007199254740991
If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.
Set channel metadata
description
2,048 characters
Maximum length of additional channel information.
Set channel metadata
type
50 characters
Maximum length of the tag that lets you categorize a channel by its functional role. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set channel metadata
status
50 characters
Maximum length of the tag that lets you categorize a channel by its current state. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set channel metadata
custom
9007199254740991
If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.
Set channel membership metadata
type
50 characters
Maximum length of the tag that lets you categorize a membership by its functional role. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set channel membership metadata
status
50 characters
Maximum length of the tag that lets you categorize a membership by its current state. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set channel membership metadata
custom
9007199254740991
If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.
Set channel members' metadata
type
50 characters
Maximum length of the tag that lets you categorize a channel member by their functional role. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set channel members' metadata
status
50 characters
Maximum length of the tag that lets you categorize a channel member by their current state. Limited to alphanumeric characters (0-9, a-z, A-Z) and the period/dot character (.).
Set channel members' metadata
custom
9007199254740991
If you set custom fields with integer values, do not specify numbers larger than 9007199254740991 due to precision limitations in JSON implementations. For large integer values, for example PubNub timetoken values, use string values instead of integers.

Mobile push

FunctionSoft Limit
# of Push Certificates
1 APNs certificate & 1 FCM key per PubNub Key Set
Push Notification Message Size
Maximum: 2 kB for APNs, 4 kB for FCM

Access Manager

FunctionSoft LimitHard Limit
# of Tokens
No limits
N/A
Grant latency
Server to server (grant by server for server usage), give it 1 second between grant and usage

Separate process (server grant, client usage), wait for grant callback before returning to client
N/A
Channels per grant
200
N/A

Functions

ActivitySoft LimitHard Limit
Number of Modules/Functions
10 modules per key
If you'd like a larger limit, contact support.
Number of Outbound Calls
10 requests per request type in a function execution (request types include PubNub API, xhr, and KVStore calls)
If you'd like a larger limit, contact support.
Rate Limit for Outbound Calls
100 total requests / second (include PubNub API, xhr and KVStore calls)
If you'd like a larger limit, contact support.
Execution Recursion Limit
Depth = 3, meaning how many recursions but also how many Function Types chaining
If you'd like a larger limit, contact support.
CPU Wall Time
10 seconds
If you'd like a larger limit, contact support.
KV Store Get Keys Limit for single call
100 Keys
If you'd like a larger limit, contact support.
KV Store Byte Size Limit for Keys
1KB
1KB
KV Store Byte Size Limit for Values
32KB
32KB
Max Interval for Interval Functions
1 hour
If you'd like a larger limit, contact support.
Number of console debug/error messages
250 messages
If you'd like a larger limit, contact support.

Events & Actions

ItemFreeIntroTier 1Tier 2Tier 3Tier 4Tier 5Tier 6
Max events ingested
10K
2M
4M
25M
66M
200M
500M
Unlimited
Listeners
1
Unlimited
Unlimited
Unlimited
Unlimited
Unlimited
Unlimited
Unlimited
Actions per listener
1
3
3
3
3
3
Unlimited
Last updated on