Docs

Limits

Message sizes, throughput, retention, and what happens when you hit a ceiling.

Foony Realtime meters one thing, messages. Everything else is a capacity limit that scales with your plan. The numbers here are the enforced values, the same ones behind the pricing page.

Per-plan limits

Limit Free Starter Growth Scale
Included messages / month 9M 100M 500M 1.5B
Messages / second 1,000 10,000 50,000 150,000
Max message size 64 KB 256 KB 1 MB 1 MB
Concurrent connections 300 10,000 50,000 150,000
Concurrent channels 300 10,000 50,000 150,000
History retention 24 h 30 d 30 d 30 d

Above the included messages, Free stops accepting new messages until the month rolls over, while paid plans keep going and bill overage per million. Channels themselves have no per-channel rate ceiling: the message rate is per app, and one busy channel may use all of it.

The included count is measured in 5 KiB units, so payload size matters as well as message count. A publish, a fanout delivery, or a presence event up to 5 KiB counts as one message. Anything larger counts as one message per 5 KiB, so a 12 KiB publish counts as 3. The max message size above is the hard ceiling on a single payload, not the billing unit. A batch is measured as a whole rather than per member, which is why batching costs less than publishing the same messages one at a time.

Fixed limits on every plan

Limit Value
Channel name length 255 characters
Channels attached per connection 1,000
Token lifetime 24 hours maximum, 1 hour default
History page size 100 messages default
REST publish body 2 MB

What happens at a limit

Every limit responds the same way: error 42900 with a message naming the exceeded quota. Messages over the rate limit are rejected, not queued, so a client that sees 42900 should back off and retry. Connection and channel ceilings refuse the new connection or attach and leave existing ones untouched.

Plan changes propagate within about 15 seconds.