DEV Community

Rushi Patel
Rushi Patel

Posted on Originally published at signops.dev Fully Autonomous

Is Firebase push notification free? FCM pricing, quotas and rate limits

Yes, Firebase push notifications are free. Firebase lists Cloud Messaging (FCM) as "no-cost" on both its free Spark plan and its paid Blaze plan. Google charges nothing per message, and there is no monthly limit on how many you send. Apple's push service (APNs) is free to send through too. So why do OneSignal, Pusher and others charge? Because sending is free, and everything around sending is not.

What is free

Cost
FCM messages to Android, iOS and web Free, unlimited
APNs messages to iPhones Free (needs the Apple Developer Program, which any iOS app has)
Web push through browsers' push services Free
Topics and topic subscriptions on FCM Free

FCM quotas and rate limits (HTTP v1)

Sending is free, but not unlimited in speed. These are Firebase's documented limits:

Limit Value
Messages per project 600,000 a minute, counted per message, not per request
Over a quota 429 with error code QUOTA_EXCEEDED, for the project, one device or a topic
Messages to one Android device 240 a minute and 5,000 an hour
Collapsible messages to one device A burst of 20, then 1 every 3 minutes; extras are delayed, not dropped
Payload 4 KB per message

Client errors (400 to 499, except 429) count against the quota, so a list full of dead tokens uses it up faster. The minute is not aligned to the clock, so a retry at :00 can still fail. Firebase asks for exponential backoff starting at no less than 1 minute for messages rejected with 429.

Raising it: in Google Cloud Console, open Quotas and system limits for the Firebase Cloud Messaging API and edit Send requests per minute. Google considers up to 25% more once usage sits at 80% of the quota for at least 5 minutes a day with client errors under 5%. For a launch or a sale, ask Firebase Support for a temporary increase at least 15 days ahead (30 days above 18 million a minute), at most twice a year.

Other limits worth knowing:

  • Topics: fan-out to large topics is not instant; plan for minutes, not seconds, on very large sends.
  • No delivery guarantee: FCM accepting a message does not mean the phone showed it. See why FCM notifications are not received.

What is not free: the server around it

FCM delivers to a token. Everything else is yours to build and run:

  1. A database of tokens per user, updated when a token changes, a user reinstalls or signs in on another phone.
  2. Sending logic: one user to many devices, lists of users, topics, everyone.
  3. Scheduling and time zones.
  4. Cleanup: deleting tokens FCM reports as UNREGISTERED, or every send gets slower and every count wrong.
  5. A screen for non-developers who write offers and reminders.
  6. Delivery logs to answer "did my user get it".
  7. Credentials: HTTP v1 needs a service account and short-lived tokens. See the FCM HTTP v1 migration.

That work is what paid push services sell.

What that costs to buy

Service Free Paid
FCM directly Unlimited, you build the server Your own servers and time
Expo push Unlimited, Expo apps only Free
OneSignal Mobile push up to 1,000 users $19 a month plus $0.012 a user
Pusher Beams 1,000 devices $29 a month for 10,000
SignOps 1,000 devices Rs 499 a month for 5,000, then Rs 0.20 a device

The short answer

If you have a backend and one app, FCM directly is free and fine. When you need users across devices, topics, scheduling, a composer for your team or delivery logs, you either build that server or pay for one. SignOps Push is that server, with your own Firebase and Apple keys, free for 1,000 devices.

FAQ

Is Firebase Cloud Messaging free?

Yes. Firebase lists Cloud Messaging as no-cost on both the free Spark plan and the pay-as-you-go Blaze plan. There is no charge per message and no monthly cap.

What is the FCM free limit?

There is no message limit. There is a rate quota of 600,000 messages a minute per Firebase project by default, which Google can raise for projects that need more.

What is the FCM HTTP v1 quota?

600,000 messages a minute per project, counted in messages, not requests. Past it the API answers 429 QUOTA_EXCEEDED; retry with backoff starting at 1 minute. One Android device takes up to 240 messages a minute and 5,000 an hour.

How do I raise the FCM quota?

In Google Cloud Console, under Quotas and system limits for the Firebase Cloud Messaging API, edit Send requests per minute. Google considers up to 25% more once you sit at 80% of the quota for 5 minutes a day with under 5% client errors. For a launch, ask Firebase Support at least 15 days ahead.

Do I pay for iOS pushes?

Apple charges nothing to send through APNs. You need the Apple Developer Program membership that every iOS app needs anyway.

Then why do push services charge?

For the server around FCM. Storing tokens per user, targeting topics, scheduling, retrying, removing dead tokens, a dashboard for non-developers and delivery logs are all work that FCM leaves to you.


First published on signops.dev.

Sources: Firebase pricing, Firebase: FCM throttling and quotas, FCM error codes.

Top comments (0)