OneSignal Free Tier 2026: Real Limits, the 1,000 MAU Ceiling

OneSignal Free Tier 2026: Real Limits, the 1,000 MAU Ceiling

Communication🛠 onesignal

Indie hackers and bootstrappers get a practical OneSignal free plan walkthrough: the real MAU ceiling, web push and email setup limits, and migration numbers.

free-tieronesignalpush-notificationsweb-pushnovu

OneSignal’s free tier looks generous on the pricing page, but the numbers hide a few ceilings that bite at scale. This guide walks through every limit documented on the official pricing page and setup docs, plus the practical numbers that matter when you migrate.

This guide is based on official documentation, pricing pages, and vendor release notes fetched in September 2026 — we did not run OneSignal hands-on. Every figure below was pulled from the cited source on 2026-09-25.

What the OneSignal Free Plan Actually Includes in 2026

The Free plan costs $0/month and sits below Growth at $19/mo and the custom Professional and Enterprise tiers. Free ships 10,000 email sends/month, unlimited mobile push and in-app messages up to 1,000 MAU, web push capped at 10,000 subscribers per send, SMS/RCS purchasable, unlimited contacts and API sends, 30+ integrations, standard A/B testing, and a shared sending IP.

The inventory, taken from the OneSignal Pricing page:

  • Email: 10,000 sends/month.
  • Mobile push and in-app messages: unlimited up to 1,000 MAU.
  • Live Activities sessions: unlimited up to 1,000 MAU.
  • Web push: max 10,000 subscribers per send.
  • SMS/RCS: purchasable.
  • Contacts: unlimited.
  • API send access: unlimited.
  • 30+ core integrations; standard A/B testing.
  • Shared sending IP only; SLA on Enterprise only.

Orchestration is tightly limited: 3 active Journeys (Growth 5, Professional 20, Enterprise unlimited), 6 segments (10 / 20 / unlimited), 6 data tags (10 / 100 / unlimited), 30 days of reporting history (90 days / 1 year / 2 years), and audit logs capped at 48 hours. Webhook Journey steps are not available on Free unless annual. Paid-only features include message throttling, in-app carousel messages, confirmed receipt, user activity timeline, advanced analytics, conversion metrics, CSV notification data exports, and the notification history API.

The 1,000-MAU Ceiling: What Counts as an MAU

OneSignal defines a Monthly Active User as a mobile subscription record active in your mobile app within the last 30 days, regardless of opt-in status. The mobile bucket covers Android, iOS, Chrome Extensions, macOS, Windows, Windows Phone, Alexa, and Amazon Fire. Web push subscribers, email recipients, and SMS contacts are explicitly excluded from this count.

A web push subscriber is a device that has opted in to push on your site; unsubscribed devices are not counted. Email contacts and SMS numbers live in their own billing buckets. The MAU ceiling is mobile-only, so your install base matters far more than your notification subscriber count. Full definitions live on OneSignal Pricing and OneSignal users docs.

Web Push on the Free Tier: HTTPS, Service Workers, One App Per Origin

Web push on the Free tier requires an HTTPS site (HTTP and incognito mode do not work), server access to upload a service worker file, and a single origin. Web push follows the browser same-origin policy, so multiple domains or subdomains need multiple OneSignal apps. Configuration lives under Settings > Push & In-App > Web in the dashboard.

You set the site name, site URL, auto-resubscribe behavior (which re-subscribes users who cleared browser data when they return), and a default icon. OneSignal expects a square 256x256 PNG, JPG, or non-animated GIF; a bell icon is used if unset. Integration options include Typical Site (recommended, managed in the dashboard), the WordPress plugin, and Custom Code, with options and the service worker path set in OneSignal.init(). Framework SDK versions ship at React 3.4.0, Vue 2.5.0, Vue3 2.3.0, Angular 2.3.0, with the WordPress plugin at v3.9.3 and website SDK tag 160610 released Sep 3, 2026. Chrome, Firefox, Edge, Safari, and other major browsers are supported. The most common setup failures are an incorrectly placed service worker file, a mismatched Site URL in the dashboard, and notifications blocked in the browser’s settings. Details live in the Web Push Quickstart and Web Push FAQ.

iOS Web Push: The 16.4+ / Home-Screen Quirk

iOS web push on OneSignal needs iOS 16.4 or later, plus Apple’s required manifest.json file, plus the user adding your site to the home screen first. Push delivery on iOS web uses VAPID, so you do not need a Safari .p8 or .p12 credential.

That trio of requirements is easy to miss. In practice the user has to install your site to the home screen before push can be enabled at all, and VAPID keeps credential setup lighter than native iOS push. Plan the rollout alongside your PWA installer rather than as a standalone push campaign. References: web push for iOS and Web Push Quickstart.

Email on the Free Tier: 10,000 Sends and the DNS Tax

The Free plan caps email at 10,000 sends/month. Setup takes about 10 to 30 minutes once your DNS is ready, and OneSignal requires a sender address on a domain you own. Free mailboxes from Gmail or Outlook are not supported as sending domains, so you need access to your own DNS records before you start.

The setup path runs: pick a provider (OneSignal Email, or bring SendGrid, Mailgun, or Mailchimp Transactional), create a sender (default sender email, sender name, reply-to, sending domain), then configure DNS records to authenticate the domain. You can use OneSignal’s auto-configure or add records manually. A subdomain such as mail.yourdomain.com is preferred for deliverability. Free and Growth both use a shared sending IP; dedicated IPs are higher tiers only. Emails sent from an unauthenticated domain are more likely to be rejected or filtered to spam. The full walkthrough is in the Email setup and email reputation best practices docs.

In-App, Live Activities, and Journeys: The 3 / 6 / 6 Caps

In-app messages and Live Activities sessions are unlimited up to the 1,000 MAU mobile ceiling. On the orchestration side, Free caps you at 3 Journeys, 6 segments, and 6 data tags. Message steps inside a Journey are unlimited, but webhook Journey steps need an annual commitment on Free.

The paid tiers lift those caps in clear steps. Growth adds 5 Journeys, 10 segments, and 10 tags with 90-day reporting. Professional bumps it to 20 Journeys, 20 segments, and 100 tags with 1-year reporting. Enterprise removes the caps and pushes reporting history to 2 years. Confirmed receipt, in-app carousel messages, conversion metrics, and the notification history API stay paid-only. Numbers and feature gates are listed on OneSignal Pricing; orchestration behavior is documented under in-app messages setup.

Data Retention: 30-Day Reports, 48-Hour Audit Logs, the 18-Month Rule

Reporting history on Free is capped at 30 days; audit logs disappear after 48 hours. Subscription records active in the past 18 months are retained. A record is dormant if the user has not used the app or visited the site in over 18 months, or if OneSignal has processed no data points for it in over 18 months.

If you need longer reporting history, upgrade: Growth reaches 90 days, Professional 1 year, Enterprise 2 years. The 18-month dormancy rule applies to subscription records regardless of plan. Treat Free as a 30-day analytics window plus an 18-month user archive, not as a long-term compliance store. Definitions and tier comparisons are documented on OneSignal Pricing and OneSignal users docs.

Free vs Growth vs Paid: Numbers-Only Comparison Table

Below is a numbers-only comparison of Free, Growth ($19/month), Professional and Enterprise (custom annual). Growth bills mobile push at $0.012 per MAU, web push at $0.004 per web push subscriber, and email at $1.50 per 1,000 sends above 20,000. Reporting history stretches to 90 days on Growth, 1 year on Professional, and 2 years on Enterprise.

Capability Free Growth Paid / Notes
Price $0/month $19/month Professional and Enterprise are custom annual plans
Email sends 10,000 sends/month 20,000 free, then $1.50 per 1,000 sends Billed per volume of sends
Mobile push MAU Unlimited up to 1,000 MAU $0.012 per MAU Billed per monthly active mobile user, unlimited sends and unlimited in-app messages
Web push Max 10,000 subscribers per send $0.004 per web push subscriber Billed per subscriber, unlimited sends
In-app messages Unlimited up to 1,000 MAU Included Bundled with mobile push billing
Live Activities sessions Unlimited up to 1,000 MAU Included Higher MAU tiers
Active Journeys 3 Journeys 5 Professional 20, Enterprise unlimited
Segments 6 segments 10 Professional 20, Enterprise unlimited
Data tags 6 data tags 10 Professional 100, Enterprise unlimited
Reporting history 30 days 90 days Professional 1 year, Enterprise 2 years
Audit logs 48 hours 48 hours 90 days on Enterprise
Contacts Unlimited Unlimited —
API send access Unlimited Unlimited —
Integrations 30+ core 30+ core —
A/B testing Standard Standard —
Sending IP Shared sending IP only Shared Dedicated IPs on higher tiers
SLA Not included Not included Enterprise only
Webhook Journey steps Not on Free unless annual Included —
Message throttling Paid-only Included —
In-app carousel messages Paid-only Included —
Confirmed receipt Paid-only Included —
User activity timeline Paid-only Included —
Advanced analytics Paid-only Included —
Conversion metrics Paid-only Included —
CSV notification data exports Paid-only Included —
Notification history API Paid-only Included —
Billing model — Fixed platform fee + variable usage fee Same model on Professional and Enterprise
Downgrade rule — Month-to-month; can downgrade to Free from the dashboard at any time, effective end of current billing period —
Payment currency / methods — USD only, by card or PayPal —
Legacy plans — — Customers on legacy Starter or monthly Professional plans cannot return to that legacy pricing if they change plans

All numbers in this table are taken verbatim from OneSignal Pricing.

When to Migrate Off, and to What

Alternatives in StacksFree’s Communication cluster include Firebase Cloud Messaging and Novu. FCM is no-cost on the Spark plan with no per-message charge, but you build and host the sender yourself; Spark caps Identity Platform at 50K MAU for adjacent products. Novu’s free plan ships 10,000 workflow runs/month across all channels, with US and EU residency, 20 workflows, and 2 environments.

Novu’s paid tiers climb quickly. Pro starts at $30/month, Team at $250/month with 250,000+ workflow runs, 90-day activity retention, RBAC, and expanded rate limits of 600 RPS triggers; Enterprise is custom. Novu is open source and self-hostable. ntfy is an open-source, self-hostable pub/sub push tool, qualitatively different from OneSignal, with no measured numbers in this guide. Stream Chat and Pusher Channels are also part of StacksFree’s Communication cluster, but no numbers were measured for them here. Sources: Firebase Cloud Messaging, Firebase pricing, Novu Pricing, ntfy.

Getting Started: A Bootstrapper’s Step-by-Step Path

The bootstrapper’s path is short. Create the app, choose platforms under Settings > Push & In-App, drop in the right credentials, install and initialize the SDK with your app ID, then layer in web push via Typical Site and email via DNS authentication. Stay inside the 3 Journeys, 6 segments, and 6 data tags caps until growth proves the upgrade.

The ordered sequence:

  1. Create a OneSignal app and note the app ID.
  2. Under Settings > Push & In-App, enable your platforms. iOS uses a .p8 token (recommended) or .p12 certificate. Android uses Firebase/FCM. Amazon uses an API key. Huawei uses HMS authorization.
  3. Install the OneSignal SDK and initialize it with the app ID. One OneSignal app supports multiple platforms and they share users and segments.
  4. For web push on a single HTTPS origin, use Typical Site, upload the service worker, and verify the Site URL.
  5. For email, authenticate your domain via DNS and prefer a subdomain like mail.yourdomain.com.
  6. Build your first Journeys, segments, and tags inside the Free caps of 3, 6, and 6.

Huawei devices route through FCM when Google Play Services is present and through HMS when the app was installed from Huawei AppGallery; OneSignal defaults to FCM when both apply. References: Mobile SDK Setup, Web Push Quickstart, Email setup.

FAQ

Below are short answers to the three questions that come up most often during OneSignal evaluation and migration planning. Each answer sticks to documented numbers and rules; for the deeper context, scroll to the matching section above. Where the docs disagree or leave a number out, we say so plainly rather than guess.

Does the 1,000 MAU limit count users who never opted in to push?

Yes. OneSignal defines a Monthly Active User as a mobile subscription record active in your app within the last 30 days, regardless of opt-in. That means a user who downloaded your app, opened it once, and disabled notifications still counts toward the 1,000 MAU ceiling. Web push subscribers, email recipients, and SMS contacts are excluded from this mobile bucket entirely. Plan capacity around active installs, not notification subscribers.

What breaks most often during OneSignal web push setup?

Three issues account for most failures. First, the service worker file is not in the right path on your origin, so the browser cannot register it. Second, the Site URL in the OneSignal dashboard does not match the URL users actually visit. Third, the visitor has blocked notifications in their browser settings and never re-enables them. Verify the worker path, double-check the dashboard URL, and surface a clear permission prompt before requesting opt-in.

Can I send email from a Gmail or Outlook address on the free tier?

No. OneSignal requires a sender address on a domain you own, and free mailbox providers such as Gmail and Outlook are not supported as sending domains. You will need access to your domain’s DNS to authenticate the sending domain, either through OneSignal’s auto-configure or by adding records manually. A subdomain like mail.yourdomain.com is recommended for deliverability. Emails sent from an unauthenticated domain are more likely to be rejected or filtered to spam.