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:
- Create a OneSignal app and note the app ID.
- 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.
- Install the OneSignal SDK and initialize it with the app ID. One OneSignal app supports multiple platforms and they share users and segments.
- For web push on a single HTTPS origin, use Typical Site, upload the service worker, and verify the Site URL.
- For email, authenticate your domain via DNS and prefer a subdomain like mail.yourdomain.com.
- 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.
