Send and manage mobile and web push notifications from the OneSignal dashboard or API across platforms with powerful targeting and personalization features.
Push notifications (also known as remote notifications) are one of the most effective ways to re-engage users with timely, personalized content across devices—even when they’re not actively using your app or website.
OneSignal provides a complete platform to manage push notifications across mobile, web, and desktop. Whether you’re a marketer, product manager, or developer, you can launch high-impact push campaigns in minutes.
Before sending notifications, complete platform-specific setup:
Configure iOS, Android, Huawei, and Amazon push notifications.
Enable push for Chrome, Firefox, Safari, and Edge.
Add OneSignal to your mobile app codebase.
Add OneSignal to your website.
Learn how to migrate to OneSignal.
Configure OneSignal to work with your macOS app..
Configure OneSignal to work with your Windows desktop app.
Add OneSignal to your Apple Watch and WearOS devices.
A great opt-in experience maximizes your push audience:
Best practices for prompting push permissions in apps.
Customize the prompt timing and message for web push.
Start sending push notifications to iOS users. Provisional push notifications go straight to the notification center and cannot play a sound or pop-up on screen.
Allow Android users to customize how they want to receive notifications for your app. Provides a great user experience.
Add dynamic content to personalize messages for each user.
Send push notifications in multiple languages.
Control notification delivery speed.
Limit the number of push notifications per user.
Send data-only notifications for background tasks.
Send VOIP-specific push notifications.
Track performance and optimize engagement:
Use built-in analytics for message-level reporting.
Stream events to your data warehouse or BI tools.
Pull message analytics.
Understand analytics capabilities in OneSignal.
Choose your preferred sending method:
Test up to 10 message variants.
Build automated and personalized message flows.
Send programmatically via the REST API.
Continue below to learn how to send push from the OneSignal dashboard.
Steps for sending messages with OneSignal:
Select the message channel
Go to Messages > Push > New Push or use the Create message API.
How to send push from the OneSignal dashboard.
Choose a composition method
Select blank push or use an existing Template.
Set a name and label
Optionally set internal metadata for tracking.
name
Set an audience
Include or exclude Segments:
Sending from the dashboard uses Segments.
Targeting method | Dashboard | API |
---|---|---|
Segments | ✅ | ✅ |
Filters (API only) | ❌ | ✅ |
Aliases (API only) | ❌ | ✅ |
Schedule notifications up to 30 days in advance. Push can be sent to users in their respective timezones or intelligently optimized based on each user’s behavior.
Scheduling and delivery options in the OneSignal dashboard.
send_after
)delayed_option: last-active
)delayed_option: timezone
& delivery_time_of_day
)throttle_rate_per_minute
)enable_frequency_cap
)Push messages can either display user-facing content or perform background operations.
1: Title, 2: Message, 3: Icon, 4: Image, 5: Action buttons, 6: App name or browser, 7: Timestamp received
Top-most customizable text of the notification. Text appearance is controlled by the operating system (no custom fonts or styling like bold or italics).
headings
Secondary text supported on iOS and macOS only (via APNs). Not available on Android or web.
subtitle
Main content of the notification. Does not support custom fonts or styling such as bold, italics or underlines. The style is set by the operating system.
contents
Customize small and large icons on Android and web. iOS always uses the app icon.
Add a large image to notifications on Android, iOS, and Chrome for Windows/Android.
1024×512px
(2:1 aspect ratio)PNG
, JPG
, GIF
(animated only on iOS)ios_attachments
– iOSbig_picture
– Androidchrome_web_image
– Chrome webThe name of the app displaying the notification.
AndroidManifest.xml
under <application android:label="YOUR APP NAME">
Add interactive buttons to the push notification.
Control where users go when tapping the notification.
url
: single universal URLapp_url
: deep link (e.g. your-app://screen
)web_url
: http
or https
web linkShow dots or badge numbers on app icons.
ios_badgeType
, ios_badgeCount
chrome_web_badge
Play a sound when the push is delivered.
sound
Add custom key-value pairs to the payload for SDK handling.
data
data
field: up to 2048 bytesReplace earlier notifications with a newer one if they share the same collapse_id
.
collapse_id
Example: A weather alert system might send the following notifications:
If the user opens their device at 4:00 PM, only the last message will display.
Avoid replacing older notifications on web by using unique web_push_topic
values.
web_push_topic
Example:
Set the urgency of the push, especially in battery-saving modes.
API: priority
Platform docs:
How long to keep a message if the device is offline.
ttl
If a user is offline and the TTL expires, the message is discarded.
Example:
Set ttl: 0
— If the device is offline when the message is sent, it will never be delivered.
iOS limitation: APNs stores only the most recent notification while offline. Earlier ones are dropped.
Learn more →
Android and iOS will automatically group notifications together after the device receives 4 or more notifications for your app.
iOS notification grouping
thread_id
REST API property with the same value to group messages together.Android notification grouping
android_group
REST API property with the same value to group messages together.If you need more customizations see the Android NotificationExtenderService to group messages and add another NotificationExtenderService
to update the summary notification. See Android’s Group Notify Guide for more details.
Note there are some limitations that Android 7+ has for these summary notifications. You can only modify the text, accent color and small icon (not large icon). However, you can still modify the children.
You can cancel a message if it has not been Delivered yet. OneSignal will stop sending the message to all Subscriptions that have not been added to the queue. This does not remove the message from a device if already delivered.
In the Message Report, select Actions > Cancel or use the Cancel Message API to cancel a message.
Once a push has been delivered, there are few options for removing it from a user’s device. You can replace a push notification with a new one if you set a Collapse ID or Web push topic.
If you do not set a Collapse ID or Web push topic, you cannot replace it.
Send and manage mobile and web push notifications from the OneSignal dashboard or API across platforms with powerful targeting and personalization features.
Push notifications (also known as remote notifications) are one of the most effective ways to re-engage users with timely, personalized content across devices—even when they’re not actively using your app or website.
OneSignal provides a complete platform to manage push notifications across mobile, web, and desktop. Whether you’re a marketer, product manager, or developer, you can launch high-impact push campaigns in minutes.
Before sending notifications, complete platform-specific setup:
Configure iOS, Android, Huawei, and Amazon push notifications.
Enable push for Chrome, Firefox, Safari, and Edge.
Add OneSignal to your mobile app codebase.
Add OneSignal to your website.
Learn how to migrate to OneSignal.
Configure OneSignal to work with your macOS app..
Configure OneSignal to work with your Windows desktop app.
Add OneSignal to your Apple Watch and WearOS devices.
A great opt-in experience maximizes your push audience:
Best practices for prompting push permissions in apps.
Customize the prompt timing and message for web push.
Start sending push notifications to iOS users. Provisional push notifications go straight to the notification center and cannot play a sound or pop-up on screen.
Allow Android users to customize how they want to receive notifications for your app. Provides a great user experience.
Add dynamic content to personalize messages for each user.
Send push notifications in multiple languages.
Control notification delivery speed.
Limit the number of push notifications per user.
Send data-only notifications for background tasks.
Send VOIP-specific push notifications.
Track performance and optimize engagement:
Use built-in analytics for message-level reporting.
Stream events to your data warehouse or BI tools.
Pull message analytics.
Understand analytics capabilities in OneSignal.
Choose your preferred sending method:
Test up to 10 message variants.
Build automated and personalized message flows.
Send programmatically via the REST API.
Continue below to learn how to send push from the OneSignal dashboard.
Steps for sending messages with OneSignal:
Select the message channel
Go to Messages > Push > New Push or use the Create message API.
How to send push from the OneSignal dashboard.
Choose a composition method
Select blank push or use an existing Template.
Set a name and label
Optionally set internal metadata for tracking.
name
Set an audience
Include or exclude Segments:
Sending from the dashboard uses Segments.
Targeting method | Dashboard | API |
---|---|---|
Segments | ✅ | ✅ |
Filters (API only) | ❌ | ✅ |
Aliases (API only) | ❌ | ✅ |
Schedule notifications up to 30 days in advance. Push can be sent to users in their respective timezones or intelligently optimized based on each user’s behavior.
Scheduling and delivery options in the OneSignal dashboard.
send_after
)delayed_option: last-active
)delayed_option: timezone
& delivery_time_of_day
)throttle_rate_per_minute
)enable_frequency_cap
)Push messages can either display user-facing content or perform background operations.
1: Title, 2: Message, 3: Icon, 4: Image, 5: Action buttons, 6: App name or browser, 7: Timestamp received
Top-most customizable text of the notification. Text appearance is controlled by the operating system (no custom fonts or styling like bold or italics).
headings
Secondary text supported on iOS and macOS only (via APNs). Not available on Android or web.
subtitle
Main content of the notification. Does not support custom fonts or styling such as bold, italics or underlines. The style is set by the operating system.
contents
Customize small and large icons on Android and web. iOS always uses the app icon.
Add a large image to notifications on Android, iOS, and Chrome for Windows/Android.
1024×512px
(2:1 aspect ratio)PNG
, JPG
, GIF
(animated only on iOS)ios_attachments
– iOSbig_picture
– Androidchrome_web_image
– Chrome webThe name of the app displaying the notification.
AndroidManifest.xml
under <application android:label="YOUR APP NAME">
Add interactive buttons to the push notification.
Control where users go when tapping the notification.
url
: single universal URLapp_url
: deep link (e.g. your-app://screen
)web_url
: http
or https
web linkShow dots or badge numbers on app icons.
ios_badgeType
, ios_badgeCount
chrome_web_badge
Play a sound when the push is delivered.
sound
Add custom key-value pairs to the payload for SDK handling.
data
data
field: up to 2048 bytesReplace earlier notifications with a newer one if they share the same collapse_id
.
collapse_id
Example: A weather alert system might send the following notifications:
If the user opens their device at 4:00 PM, only the last message will display.
Avoid replacing older notifications on web by using unique web_push_topic
values.
web_push_topic
Example:
Set the urgency of the push, especially in battery-saving modes.
API: priority
Platform docs:
How long to keep a message if the device is offline.
ttl
If a user is offline and the TTL expires, the message is discarded.
Example:
Set ttl: 0
— If the device is offline when the message is sent, it will never be delivered.
iOS limitation: APNs stores only the most recent notification while offline. Earlier ones are dropped.
Learn more →
Android and iOS will automatically group notifications together after the device receives 4 or more notifications for your app.
iOS notification grouping
thread_id
REST API property with the same value to group messages together.Android notification grouping
android_group
REST API property with the same value to group messages together.If you need more customizations see the Android NotificationExtenderService to group messages and add another NotificationExtenderService
to update the summary notification. See Android’s Group Notify Guide for more details.
Note there are some limitations that Android 7+ has for these summary notifications. You can only modify the text, accent color and small icon (not large icon). However, you can still modify the children.
You can cancel a message if it has not been Delivered yet. OneSignal will stop sending the message to all Subscriptions that have not been added to the queue. This does not remove the message from a device if already delivered.
In the Message Report, select Actions > Cancel or use the Cancel Message API to cancel a message.
Once a push has been delivered, there are few options for removing it from a user’s device. You can replace a push notification with a new one if you set a Collapse ID or Web push topic.
If you do not set a Collapse ID or Web push topic, you cannot replace it.