fshy

Home / Developer services

Pusher Beams

pusher.com · 2 records in Developer services · JSON

Records 2

Pusher Beams

Developer services

pusher.com/beams/pricing/Push notification API for iOS, Android and web browsers (hosted)dev-services/pusher-beamsJSONcomparereport an error

Free allowance
Beams Sandbox plan, priced Free: 1,000 subscribers (registered devices) and Standard support
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
emailno card, no phone
Binding limit
volume-quota1,000 subscribers (registered devices, counted as concurrent subscribers across all Beams instances for a given day)
Evidence
documented55 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-02checked 2026-11-01 (live); stale on 2026-12-02
Free tierBeams Sandbox plan, priced Free: 1,000 subscribers (registered devices) and Standard support
unit mixed; metered on object-count; A subscriber is a device registered to receive notifications. The count is the sum of concurrent subscribers across all Beams instances for a given day. A device counts from the SDK start call until the stop call, or until the platform gateway invalidates its token. Reinstalling an app on a device adds a new subscriber until the cleanup removes the old one. The pricing page names no notification count, and an older tutorial says a free plan can send unlimited push notifications to up to 1000 devices. The next plan is Startup at USD 29 a month for 10,000 subscribers.
Pricenone stated
Limits
  • volume-quota (binding) 1,000 subscribers (registered devices, counted as concurrent subscribers across all Beams instances for a given day) source
  • request-rate 100 requests per second to the Publish API; a request above the rate answers 429 source
  • per-object-cap 10 KiB request body on a publish to interests; 200 KiB on a publish to users source
  • retention-clamped notification time-to-live of at most 2419200 seconds (4 weeks) on web push and at most 4 weeks on FCM source
A publish to interests names 1 to 100 interests and a publish to users names 1 to 1000 user IDs. A device holds at most 5000 interests and a user holds at most 100 devices per platform. The vocabulary has no kind for a count cap, so the subscriber cap is filed as volume-quota.
Bindingvolume-quota The 1,000-subscriber cap is the only plan threshold on the pricing page, and it counts registered devices, not bytes, so a growing app meets it before the Publish API rate of 100 requests a second.
Identityemail The Pusher sign-up form asks for an email address and a password, or a GitHub or Google sign-in, behind an invisible reCAPTCHA, and has no phone or card field; a Beams instance is then created in the dashboard. Android delivery needs an FCM service account file from a Firebase project, iOS delivery needs an APNs key from an Apple Developer account, and Safari delivery needs a paid Apple Developer Program membership. The web SDK guide for Chrome, Firefox, Edge and Opera uses only the instance ID and secret key from the dashboard.
Egressnot stated: the pricing page lists subscribers and a support level and names no notification count, byte allowance or price per notification
Per-object cap10 KiB request body on a publish to interests; 200 KiB request body on a publish to users
RetentionAn undelivered notification expires at the platform gateway after its time-to-live: at most 4 weeks on web push and FCM, and the payload expiration timestamp on APNs. A device registration stays until the SDK stop call or until the gateway invalidates the token (28 days)
Interfacerest Publish API: HTTPS POST to INSTANCE_ID.pushnotifications.pusher.com under /publish_api/v1/instances/INSTANCE_ID/publishes/interests or /publishes/users, with a JSON body and the instance secret key as a Bearer token. Devices register through the Android, iOS and Web SDKs, which call the Device API on the same host.
ToolingOfficial client SDKs for Android, iOS, Web (JavaScript) and Flutter; official server SDKs for Go, PHP, Node.js, Python, Java and Kotlin, Ruby and Swift; or any HTTP client that posts JSON with the instance secret key. A web page needs a service worker file, served over HTTPS, that imports the hosted Beams worker script.
Composes withA worker on any free compute service posts one HTTPS request to the Publish API to reach up to 1,000 registered browsers and phones, and Pusher Channels covers live updates to open pages.
ReliabilityOver the subscriber cap a publish answers 402 after a 7-day notice period and no notification is delivered, while device registration still succeeds; Standard support has best-effort response times, and the status page lists Beams and the Beams dashboard as Operational on 2026-11-01.
NotesPusher Channels, the realtime messaging product of the same vendor, has its own record and its own Sandbox limits. The Beams pricing page labels this plan Sandbox; the tier names the product to tell it apart from the Channels Sandbox plan. The Beams docs also carry an Active Devices page that bills a Free plan on Monthly Active Devices over the last 30 days; a vendor post replaced that metric with concurrent subscribers, which the pricing page, the subscriber docs and the plan-limit article use. The newest tag of the web SDK repository is 2.1.0, dated 2025-01-17. Revisit when the pricing page changes the Sandbox subscriber count or drops the plan.
Evidence notedocumented Every limit is quoted from first-party pricing, documentation and support pages. The Publish API host answered 405 to a GET on its POST-only route, and the hosted web service worker script answered 200. No notification was published, because publishing needs an instance ID and secret key, which only an account holds; a publish with a Sandbox key would move this record to measured. unverified: whether the first Beams instance asks for a card, how many instances a Sandbox account may hold and whether an idle Sandbox instance expires, because the Beams dashboard is behind a sign-up.
Parsed numbers
  • has-free-tier 1
  • request-rate 100 requests
  • per-object-cap 10 KiB
Evidence 55
datesourcewhat it proved
2026-11-01pusher.com/beams/pricing/the Sandbox plan is Free with 1,000 subscribers, and Startup is USD 29 a month for 10,000 subscribers
2026-11-01pusher.com/beams/pricing/the pricing page names the Sandbox plan as the free plan
2026-11-01pusher.com/beams/pricing/Sandbox, Startup and Pro carry Standard support, and Business and Premium carry Premium support
2026-11-01pusher.com/beams/pricing/Standard support has best-effort response times and Premium support targets 24 hours
2026-11-01pusher.com/beams/pricing/the pricing page counts subscribers as the sum of concurrent subscribers across all Beams instances
2026-11-01pusher.com/beams/pricing/the Sandbox plan call to action links to the Pusher account sign-up page
2026-11-01pusher.com/beams/the Beams page offers a free sandbox plan that includes 1,000 subscribers
2026-11-01pusher.com/beams/Beams reaches iOS, Android and web devices
2026-11-01docs.bird.com/pusher/beams/beams/limits/what-are-beams-subsca subscriber is a device registered to receive Beams notifications
2026-11-01docs.bird.com/pusher/beams/beams/limits/what-are-beams-subscsubscribers are summed as concurrent subscribers across all instances for a given day
2026-11-01pusher.com/docs/beams/concepts/subscribers/a device is a subscriber from the SDK start call until the stop call
2026-11-01pusher.com/docs/beams/concepts/subscribers/a reinstalled app receives a new gateway token and counts as a new subscriber until the cleanup removes the old one
2026-11-01pusher.com/docs/beams/concepts/subscribers/an uninstalled iOS app can stay in the subscriber count for up to a week
2026-11-01pusher.com/blog/new-usage-metrics-and-more-self-serve-tiers-the usage metric changed from Monthly Active Devices to the sum of concurrent subscribers across all instances
2026-11-01docs.bird.com/pusher/beams/beams/limits/what-happens-when-i-weekly usage notices start at 95% of the plan
2026-11-01docs.bird.com/pusher/beams/beams/limits/what-happens-when-i-past the plan, daily email alerts start and the account has 7 days to upgrade
2026-11-01docs.bird.com/pusher/beams/beams/limits/what-happens-when-i-after the notice period a publish answers 402 and no notification is delivered
2026-11-01docs.bird.com/pusher/beams/beams/limits/what-happens-when-i-device registrations and subscriptions still succeed over the plan limit
2026-11-01pusher.com/docs/beams/reference/publish-api/the publish endpoint is per instance on pushnotifications.pusher.com
2026-11-01pusher.com/docs/beams/reference/publish-api/the Publish API authenticates with the instance secret key as a Bearer token
2026-11-01pusher.com/docs/beams/reference/publish-api/part of the text of Limits, above
2026-11-01pusher.com/docs/beams/reference/publish-api/part of the text of Limits, above
2026-11-01pusher.com/docs/beams/reference/publish-api/the Publish API allows 100 requests per second and answers 429 above that rate
2026-11-01pusher.com/docs/beams/reference/publish-api/a publish to interests takes a request body of at most 10 KiB
2026-11-01pusher.com/docs/beams/reference/publish-api/a publish to users takes a request body of at most 200 KiB
2026-11-01pusher.com/docs/beams/reference/publish-api/the Publish API answers 402 when an instance is over its plan limits
2026-11-01pusher.com/docs/beams/concepts/device-interests/a device holds at most 5000 device interests
2026-11-01pusher.com/docs/beams/concepts/authenticated-users/part of the text of Limits, above
2026-11-01pusher.com/docs/beams/reference/publish-payloads/web push time-to-live is at most 2419200 seconds and defaults to 4 weeks
2026-11-01docs.bird.com/pusher/beams/beams/publishing/how-can-i-set-thFCM holds an unreachable device's notification for at most 4 weeks, which is also the default
2026-11-01docs.bird.com/pusher/beams/beams/publishing/how-can-i-set-thAPNs takes an expiration timestamp in the payload
2026-11-01pusher.com/docs/beams/reference/all-libraries/official client SDKs exist for Android, iOS, Web (JavaScript) and Flutter
2026-11-01pusher.com/docs/beams/reference/all-libraries/official server SDKs exist for Go, PHP, Node JS, Python, Java/Kotlin, Ruby and Swift
2026-11-01pusher.com/docs/beams/reference/device-api/the Android, iOS and Web SDKs register devices through a Device API on the instance host
2026-11-01pusher.com/docs/beams/getting-started/web/sdk-integration/the web SDK supports Chrome, Firefox, Edge and Opera
2026-11-01pusher.com/docs/beams/getting-started/web/sdk-integration/web push needs an HTTPS site, with localhost as the only exception
2026-11-01pusher.com/docs/beams/getting-started/web/sdk-integration/the web SDK needs a service worker file that imports the hosted Beams worker script
2026-11-01pusher.com/docs/beams/getting-started/web/sdk-integration/the web SDK is configured with the instance ID from the dashboard Keys tab and no gateway credential
2026-11-01pusher.com/docs/beams/getting-started/android/configure-fcm/Android delivery uses the account's own FCM credentials, a service account file
2026-11-01pusher.com/docs/beams/getting-started/android/configure-fcm/the FCM setup starts in the Firebase console
2026-11-01pusher.com/docs/beams/getting-started/ios/configure-apns/iOS delivery uses an APNs key that the account creates in an Apple Developer account
2026-11-01pusher.com/docs/beams/getting-started/web/configure-safari/Safari push needs a paid Apple Developer Program membership
2026-11-01pusher.com/tutorials/getting-started-pusher-beams/a Beams instance starts from a free sandbox Pusher account
2026-11-01pusher.com/docs/beams/a Beams instance is created in the Pusher dashboard
2026-11-01dashboard.pusher.com/accounts/sign_upthe sign-up form asks for an email address
2026-11-01dashboard.pusher.com/accounts/sign_upthe sign-up form asks for a password
2026-11-01dashboard.pusher.com/accounts/sign_upthe sign-up form is submitted through an invisible reCAPTCHA
2026-11-01dashboard.pusher.com/accounts/sign_upthe sign-up also accepts a GitHub sign-in
2026-11-01dashboard.pusher.com/accounts/sign_upthe sign-up also accepts a Google sign-in
2026-11-01pusher.com/tutorials/push-notifications-android/an older tutorial says a free plan can send unlimited push notifications to up to 1000 devices
2026-11-01pusher.com/docs/beams/concepts/active-devices/an older docs page still bills a Free plan on Monthly Active Devices over the most recent 30 days
2026-11-01status.pusher.com/part of the text of Reliability, above
2026-11-01github.com/pusher/push-notifications-web/tagspart of the text of Notes, above
2026-11-01probe: https://js.pusher.com/beams/service-worker.jsthe hosted web SDK service worker script answers 200 at js.pusher.com
2026-11-01probe: https://00000000-0000-0000-0000-000000000000.pushnotifications.pusher.com/publish_api/v1/instances/00000000-0000-0000-0000-000000000000/publishes/intereststhe Publish API route exists and answers a GET with 405, so it takes POST only
Unknown values 1
  • egress metered: egress metering was not published

Pusher

Developer services

pusher.com/channels/pricingRealtime pub/sub messaging over WebSocket with an HTTP publish APIdev-services/pusher-channelsJSONcomparereport an error

Free allowance
Channels Sandbox: 200k messages per day and 100 concurrent connections, free
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
emailno card, no phone
Binding limit
request-rate200k messages per day per account, deliveries included
Evidence
documented28 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-03checked 2026-11-02 (live); stale on 2026-12-03
Free tierChannels Sandbox: 200k messages per day and 100 concurrent connections, free
unit requests; metered on request-count; A message is each API request plus each delivery to a connected client: a publish to 50 subscribers is 51 messages. Limits are counted per account, over all the apps it owns. A warning email goes out at 80% of a limit. Past the daily message limit every trigger request answers 403 over quota; past the connection limit new connections are rejected, and on Sandbox the connection limit is enforced at once (paid plans at 120%). One trigger request reaches at most 100 channels.
Pricenone stated
Limits
  • request-rate (binding) 200k messages per day per account, deliveries included source
  • per-object-cap 10KB of event data per message source
  • retention-clamped no history; cache channels keep the last event for at most 30 minutes source
100 concurrent connections per account, enforced at once on Sandbox, and 100 channels per trigger request. The vocabulary has no kind for a concurrency cap.
Bindingrequest-rate A publish to n subscribers counts n + 1 against 200,000 a day, so a publish to 10 subscribers leaves about 18,000 publishes a day (200,000 / 11); a fan-out to more than 100 clients meets the connection cap first.
Identityemail The signup form asks for an email address and a password, or a GitHub or Google sign-in, behind an invisible reCAPTCHA; billing and card details are entered only when a plan is upgraded.
EgressEach delivery to a connected client counts as a message against the 200k daily quota; no byte allowance is stated
free allowance: 200k messages per day, deliveries included
Per-object cap10KB of event data per message; a larger event answers 413
RetentionNo message history by default; an opt-in cache channel keeps the last event in memory for at most 30 minutes or until a new event arrives
Interfacerest, unknown HTTP API at api-CLUSTER.pusher.com (for example api-mt1.pusher.com) over HTTP or HTTPS, each request signed with an HMAC SHA256 digest; clients hold WebSocket connections to ws-CLUSTER.pusher.com on port 80 for ws or 443 for wss, with an HTTP fallback transport, which the interface vocabulary has no term for.
ToolingThe pusher-js client and the Pusher server libraries, or any HTTP client that signs requests with the app secret.
Composes withA notification fan-out from a worker to a browser dashboard, sized for about 18,000 publishes a day to 10 subscribers each.
ReliabilityOver the daily message quota the HTTP API answers 403 and further publishes fail until the next day; connections over the limit are rejected at once on Sandbox.
NotesPusher Beams, the push-notification product, has its own Sandbox plan priced separately and is not part of this record.
Evidence notedocumented Every limit is quoted from first-party pricing, documentation and support pages; the HTTP API host was probed and answered 400 to an unsigned request. No event was published, because publishing needs an app key and secret. A signed publish from a Sandbox app would move it to measured.
Parsed numbers
  • has-free-tier 1
  • per-object-cap 10 KB
  • retention-clamped 30 minutes
Evidence 28
datesourcewhat it proved
2026-10-30pusher.com/channels/Sandbox is free with 200k messages a day and 100 concurrent connections
2026-10-30pusher.com/channels/pricinga message is each API request plus each delivery
2026-10-31docs.bird.com/pusher/account-billing/account-billing/plans/hmessage limits are aggregated over every app an account owns
2026-10-30docs.bird.com/pusher/channels/channels/limits/what-happens-wpast the event limit every trigger request is refused
2026-10-30docs.bird.com/pusher/channels/channels/limits/what-happens-wpast the connection limit new client connections fail
2026-10-31pusher.com/docs/channels/using_channels/connectionconnection limits are enforced at once on Sandbox
2026-10-31pusher.com/docs/channels/using_channels/connectionclients use WebSockets with an HTTP-based fallback transport
2026-10-30docs.bird.com/pusher/channels/channels/limits/what-is-the-mean event carries at most 10KB of data
2026-10-30docs.bird.com/pusher/channels/channels/events/does-channels-Channels keeps no message history by default
2026-10-30docs.bird.com/pusher/channels/channels/events/does-channels-a cache channel keeps the last event for at most 30 minutes
2026-10-30pusher.com/docs/channels/library_auth_reference/rest-api/the HTTP API is hosted per cluster, over HTTP or HTTPS
2026-10-30pusher.com/docs/channels/library_auth_reference/rest-api/the HTTP API answers 403 when the app is over its message quota
2026-10-30pusher.com/docs/channels/library_auth_reference/rest-api/one trigger request reaches at most 100 channels
2026-10-30pusher.com/docs/channels/library_auth_reference/rest-api/requests are signed with an HMAC SHA256 digest
2026-10-30dashboard.pusher.com/accounts/sign_upthe signup form asks for an email address
2026-10-30dashboard.pusher.com/accounts/sign_upthe signup form asks for a password
2026-10-30dashboard.pusher.com/accounts/sign_upthe signup form is submitted through an invisible reCAPTCHA
2026-10-30dashboard.pusher.com/accounts/sign_upthe signup also accepts a GitHub sign-in
2026-10-31docs.bird.com/pusher/account-billing/account-billing/plans/hbilling and card details are entered when a plan is upgraded
2026-10-31probe: https://api-mt1.pusher.com/apps/1/channelsthe HTTP API host answers and refuses an unsigned request
2026-11-01pusher.com/docs/channels/library_auth_reference/pusher-websoclients connect to ws-CLUSTER.pusher.com on port 80 for ws or 443 for wss
2026-11-01probe: ws-mt1.pusher.com:443the WebSocket host of the mt1 cluster accepts a TCP connection on port 443
2026-11-01probe: https://api-mt1.pusher.com/apps/1/channelsthe HTTP API host answers and refuses an unsigned request
2026-11-01pusher.com/channels/pricinga concurrent connection is a live connected user, counted across the whole Channels application
2026-11-01pusher.com/docs/channels/library_auth_reference/rest-api/an event whose data exceeds 10KB is refused with a 413 error code
2026-11-01dashboard.pusher.com/accounts/sign_upthe signup form asks for an email address
2026-11-01dashboard.pusher.com/accounts/sign_upthe signup form is submitted through an invisible reCAPTCHA
2026-11-01pusher.com/channels/pricingthe Sandbox plan is free with 200k messages a day and 100 concurrent connections, unchanged