Rate Limits
Push To Display has usage limits that vary by subscription tier. This page covers what each tier includes and what happens when you hit a limit.
Subscription tiers
| Tier | Price | Best for |
|---|---|---|
| Sandbox | Free | Trying it out, personal projects |
| Go | $9.99/mo | Small teams, side projects |
| Pro | $19.99/mo | Growing teams, multiple boards |
| Business | $49.99/mo | High-volume, multi-board dashboards |
| Enterprise | Contact us | Custom limits, SLAs, team management |
Quotas by tier
| Quota | Sandbox | Go | Pro | Business | Enterprise |
|---|---|---|---|---|---|
| Boards | 1 | 10 | 50 | 100 | Custom |
| Active streams | 2 | 3 | 10 | 50 | Custom |
| Devices | Unlimited | Unlimited | Unlimited | Unlimited | Unlimited |
| Monthly messages | 1,000 | 50,000 | 200,000 | 1,000,000 | Custom |
| Max message size | 4 KB | 8 KB | 32 KB | 128 KB | Custom |
| Rate (msg/s) | 1 | 1 | 1 | 2 | Custom |
| Burst | 2 | 3 | 5 | 20 | Custom |
Boards are named destinations — not physical devices. Any device can connect to any board.
Active streams are concurrent device-board connections. A device connected to a board counts as one stream.
Devices are unlimited across all tiers.
Rate limiting
Rate limiting uses two layers:
Monthly message quota
Each API call that sends an update counts as one message toward your monthly quota, regardless of how many devices receive it. The counter resets on your billing cycle.
When you exceed your monthly quota, requests return 409 Conflict.
Per-user token bucket
A token bucket rate limiter prevents short bursts from overwhelming the system. The burst bucket absorbs spikes (useful for CI/CD pipelines that fire multiple updates quickly), then refills at the per-second rate.
When the bucket is empty, requests return 429 Too Many Requests.
| Tier | Rate (msg/s) | Burst |
|---|---|---|
| Sandbox | 1 | 2 |
| Go | 1 | 3 |
| Pro | 1 | 5 |
| Business | 2 | 20 |
Management rate limit
Non-message operations (creating boards, listing API keys, registering devices) share a separate rate limit: 30 requests per 60-second window. Exceeding this returns 429 Too Many Requests.
What happens when you hit a limit
| Limit | HTTP Status | What to do |
|---|---|---|
| Monthly messages | 409 | Wait for the billing cycle to reset, or upgrade your tier. |
| Message size | 413 | Reduce payload size or upgrade your tier. |
| Rate (per-second) | 429 | Wait briefly. The bucket refills at the per-second rate. |
| Board count | 409 | Delete unused boards or upgrade your tier. |
| Active streams | 409 | Disconnect unused device-board streams or upgrade your tier. |
| Management rate | 429 | Wait 60 seconds for the window to reset. |
The free Sandbox tier is generous enough for personal use and testing. If you're building a production integration, the Go tier at $9.99/mo covers most needs.