Drop-in Pusher alternative — free to use, no per-message billing.
Apinator is API-compatible with Pusher — keep your channels, your auth flow, and your client code. And it is free to use: no per-message billing, no connection tiers, no surprise invoices when traffic spikes. Migrate in minutes.
Same channel types, auth flow, and event model as Pusher. Swap the client library — nothing else changes.
Pusher charges per message and connection. Apinator is free to use, with no metered fees, no peak-connection overage, and no surprise invoices when traffic spikes.
Presence, private channels, webhooks, and multi-region are included — not gated behind a paid plan. No credit card required.
Choose the region for your app — EU or US — so connections stay close to your users and sensitive data stays in its jurisdiction.
Public, private, and presence channels. Client events. Webhooks. HMAC auth. Everything you rely on Pusher for, without the per-unit bill.
Replace pusher-js with @apinator/client and your existing channel code keeps working. Most teams migrate in under 30 minutes.
| Feature | Apinator | Pusher |
|---|---|---|
| Pricing model | Free | Per-message / per-connection |
| Free-tier connections | 500 | 100 |
| Free-tier messages / day | 500,000 | 200,000 |
| Per-message overage | None | Yes |
| Connection overage | None | Yes |
| Private channels | ||
| Presence channels | ||
| Client events | ||
| Webhooks | ||
| Multi-region | Enterprise only | |
| EU data residency | Add-on |
Replace pusher-js with @apinator/client — the channel and event API is identical. One import, done.
Where the cost difference actually comes from.
Pusher's pricing is metered. You pay for concurrent connections and for messages, and the bill climbs every time your app gets busier. Cross a plan threshold — a product launch, a viral moment, a seasonal spike — and the invoice follows. Realtime becomes a variable cost you have to forecast, cap, and explain.
Apinator removes the meter. The platform is free to use, with no per-message overage and no peak-connection charge. The current free tier covers 500 concurrent connections, 500,000 messages per day, 100 channels, and presence tracking up to 500 members per channel. Presence, private channels, webhooks, and EU/US regions are all included rather than gated behind a paid plan — so the same workload that grows your Pusher bill leaves your Apinator bill at zero.
If you just need an endpoint to point a client at, the free WebSocket server overview covers the basics. If region and data residency matter, see managed WebSocket infrastructure, and the how WebSockets scale guide explains what runs underneath.
Most teams move over in under 30 minutes. The client swap above is step one — here is the server side and channel auth.
Server-side publishing uses the same trigger() signature as the Pusher server library. Swap the import and credentials — the channel name, event name, and payload stay identical.
Private and presence channels authorize through an HMAC-signed endpoint on your backend — the same scheme Pusher uses. Swap the helper; the request/response shape is the same.
Set the client host to wss://rt.apinator.io, choose your region (EU or US) when you create the app, and deploy. Existing channel names, event bindings, and presence logic keep working unchanged — there is no data to migrate because realtime events are transient.
An honest read. Both are hosted realtime platforms with the same core primitives; the decision usually comes down to billing model and ecosystem maturity.
Completely free, no credit card required. Deploy in minutes.