Learn how to manage and customize app icon badge counts for push notifications on iOS and Android, including disabling auto-clearing, using the OneSignal API, implementing native badge logic, and testing setup.
Badges are the little numbered dots that appear on your mobile app icon. They help capture user attention and can influence engagement behavior. On iOS in particular, badges require additional setup and offer flexible control, as outlined below.
For Android Web Push notifications, the badge refers to the small icon shown on notifications—not the app icon—and can be customized. See Web Push Badges.
Android badges
Android app icon badge behavior can be managed through Android notification categories. You can control whether a category (channel) displays a badge and set badge behavior on a per-category basis.
iOS badges
To ensure badge counts increment correctly on iOS, you must configure:
- The
OneSignalNotificationServiceExtension
- App Groups
See Mobile SDK setup for full instructions.
By default, the OneSignal SDK will:
- Clear the app icon badge when the app is opened.
- Remove notifications from the Notification Center.
If you want to retain notifications and manage badge logic manually (e.g., using your own counter or syncing state across devices), you can disable this automatic behavior.
Common use cases for manual badge control
- Reset badge when the app launches or resumes
- Increment badge when a notification is received in the foreground
- Decrement when a message is read or dismissed
- Sync badge state across devices or app extensions via App Groups or your backend
Disable automatic notification and badge clearing
In your app’s info.plist
, add the Key: OneSignal_disable_badge_clearing
with Boolean type to Value YES

Example info.plist with ` OneSignal_disable_badge_clearing` turned off (set to `YES `).
This prevents the SDK from automatically removing notifications or resetting the badge when the app opens.
iOS native badge management
If you disable OneSignal’s automatic badge clearing, you can use Apple’s native APIs to control badge behavior.
Apple deprecated UIApplication.shared.applicationIconBadgeNumber
in iOS 17. You should now use the following methods from the UserNotifications framework:
Set badge count
To set the badge on the app icon to a specific value:
Get current badge count
iOS does not provide a method to retrieve the current badge count from the system. You must keep track of the badge count in your app’s state (for example, using UserDefaults
, your app’s data model, or syncing with your backend).
Increment or decrement badge
You must manage badge logic manually, as relative changes (like +1 or -1) are not supported in payloads. Update your stored badge count and then set it:
Clear badge
To remove the badge entirely:
Send iOS push with badges
You can set the badge count in the OneSignal dashboard or using the API.
- Go to Messages > Push or Templates
- Under Platform Settings > Send to Apple iOS > Badges
- Choose either:
- Set to a specific number
- Increase by a relative amount

Set badges in the OneSignal dashboard message form.
- Go to Messages > Push or Templates
- Under Platform Settings > Send to Apple iOS > Badges
- Choose either:
- Set to a specific number
- Increase by a relative amount

Set badges in the OneSignal dashboard message form.
Use the following parameters in the Create message API:
ios_badgeType
- Set toSetTo
orIncrease
ios_badgeCount
- The number to set or increase by
When sending iOS push notifications, the badge count will change based on these options.
If the app is open, the badge count will reset unless you followed the instructions above to disable automatic badge clearing.
Badges tutorial complete! Next steps: