# OneSignal > OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard. - [User Guides (194 pages)](https://documentation.onesignal.com/_llms/en/user-guides.md): Documentation for User Guides. ## Home - [OneSignal Documentation](https://documentation.onesignal.com/docs/en/home.md): Start building faster with OneSignal. Explore quickstarts, SDKs, messaging channels, API references, and advanced features like Journeys and Live Activities. ## Developer Guides ### Developer Documentation - [Developers](https://documentation.onesignal.com/docs/en/developers.md): Set up the OneSignal Mobile and Web SDKs, find your App ID and API keys, identify Users, and test your integration before going live. - [Identity verification](https://documentation.onesignal.com/docs/en/identity-verification.md): Prevent user impersonation by requiring server-generated JWTs to verify External User IDs, email, and SMS subscriptions sent to OneSignal. #### User model - [User model & migration guide](https://documentation.onesignal.com/docs/en/user-model-migration-guide.md): Learn how to migrate from OneSignal’s device-centric model to the new user-centric APIs and SDKs for more personalized, multi-channel engagement. - [Mobile SDK Mapping](https://documentation.onesignal.com/docs/en/device-user-model-mobile-sdk-mapping.md): Compare method and property names between OneSignal's legacy Player Model (v3 & v4) and the modern User Model (v5+), with side-by-side Swift code examples for easier migration. - [Web SDK Mapping](https://documentation.onesignal.com/docs/en/device-user-model-web-sdk-mapping.md): Compare OneSignal Web SDK methods between the legacy Player Model and the new User Model. Learn how to migrate your implementation with TypeScript-based code examples and updated method references. ### Mobile SDKs #### Mobile SDK setup - [Mobile SDK setup](https://documentation.onesignal.com/docs/en/mobile-sdk-setup.md): Set up the OneSignal SDK for Android, iOS, Huawei, Amazon, and cross-platform frameworks like React Native, Expo, Flutter, Unity, Cordova, and Capacitor. - [iOS SDK setup](https://documentation.onesignal.com/docs/en/ios-sdk-setup.md): Add push notifications and in-app messages to your iOS app using OneSignal's iOS SDK. - [Android SDK setup](https://documentation.onesignal.com/docs/en/android-sdk-setup.md): Install the OneSignal Android SDK in Android Studio to add push and in-app messages, with FCM credentials, initialization, and test sends. - [Unity SDK setup](https://documentation.onesignal.com/docs/en/unity-sdk-setup.md): Set up OneSignal's Unity SDK to add push notifications to iOS, Android, Amazon, and Huawei apps, covering installation, configuration, and initialization. - [React Native SDK setup](https://documentation.onesignal.com/docs/en/react-native-sdk-setup.md): Comprehensive guide to integrate the OneSignal React Native SDK for iOS, Android, and Amazon app platforms. Includes prerequisites, configuration steps, platform-specific setup, and troubleshooting common issues. - [Expo SDK setup](https://documentation.onesignal.com/docs/en/react-native-expo-sdk-setup.md): Integrate the OneSignal Expo SDK into your iOS and Android apps using Expo SDK 53+ and EAS Build for push notifications and in-app messages. - [Flutter SDK setup](https://documentation.onesignal.com/docs/en/flutter-sdk-setup.md): Instructions for adding the OneSignal Flutter SDK to your Flutter app for iOS and Android - [Flutterflow SDK setup](https://documentation.onesignal.com/docs/en/flutterflow-sdk-setup.md): Instructions for adding the OneSignal Flutter SDK to your Flutterflow app for iOS and Android - [Cordova SDK setup](https://documentation.onesignal.com/docs/en/cordova-sdk-setup.md): Set up the OneSignal Cordova SDK to add push notifications to Cordova and Ionic Cordova apps for iOS and Android. - [Capacitor SDK setup](https://documentation.onesignal.com/docs/en/capacitor-sdk-setup.md): Set up the OneSignal Capacitor SDK to add push notifications to Capacitor apps for iOS and Android. - [.NET MAUI SDK setup](https://documentation.onesignal.com/docs/en/net-sdk-setup.md): Instructions for adding OneSignal .NET SDK to your cross-platform MAUI app for iOS, Android, and Desktop. - [Amazon SDK setup](https://documentation.onesignal.com/docs/en/amazon-sdk-setup.md): Step-by-step guide to integrate the OneSignal SDK into your Amazon Fire OS app for push notifications and in-app messaging capabilities. - [Huawei SDK setup](https://documentation.onesignal.com/docs/en/huawei-sdk-setup.md): OneSignal Huawei SDK Setup Guide for Android Studio. ##### Platform credential setup - [Android Firebase credentials](https://documentation.onesignal.com/docs/en/android-firebase-credentials.md): Configure Firebase Cloud Messaging (FCM) Service Account credentials in OneSignal to enable Android push notifications for apps on the Google Play Store. - [iOS p8 token-based connection to APNs](https://documentation.onesignal.com/docs/en/ios-p8-token-based-connection-to-apns.md): Set up a .p8 authentication key to connect your iOS or macOS app to Apple Push Notification service (APNs) through OneSignal. - [iOS p12 certificate generation](https://documentation.onesignal.com/docs/en/ios-p12-generate-certificates.md): Generate and upload a .p12 push certificate to connect your iOS or macOS app to Apple Push Notification service (APNs) through OneSignal. - [Amazon API key generation](https://documentation.onesignal.com/docs/en/generate-an-amazon-api-key.md): Step-by-step guide - [Huawei authorization](https://documentation.onesignal.com/docs/en/authorize-onesignal-to-send-huawei-push.md): Step-by-step guide to connect your Huawei app to OneSignal for push notifications, including PushKit setup, API key configuration, and Huawei's optional message self-classification for apps with users in China. #### Mobile SDK reference - [Mobile SDK reference](https://documentation.onesignal.com/docs/en/mobile-sdk-reference.md): Comprehensive API reference for the OneSignal Mobile SDK, including initialization, user identity, subscriptions, tags, permissions, in-app messages, live activities, and more. Supports Android, iOS, Unity, React Native, Flutter, and Cordova/Ionic platforms. - [Mobile service extensions](https://documentation.onesignal.com/docs/en/service-extensions.md): Intercept and customize push notifications before display on iOS and Android. Enable rich media, confirmed receipt, custom styling, and background data handling. - [Managing the notification tray](https://documentation.onesignal.com/docs/en/managing-the-notification-tray.md): How OneSignal mobile push notifications behave in the notification tray on Android and iOS: click and dismiss handling, restored notifications, badges, clearing notifications programmatically, and service extensions. - [OSNotification payload](https://documentation.onesignal.com/docs/en/osnotification-payload.md): Reference for OneSignal's OSNotification object, including all payload fields, Android and iOS-specific properties, custom data, and click actions. - [iOS: App Clip Support](https://documentation.onesignal.com/docs/en/app-clip-support.md): Learn how to enable and configure OneSignal push notifications in iOS App Clips. Covers setup steps, limitations, and support for advanced experiences like Target-Content-ID. #### Mobile SDK troubleshooting - [Mobile SDK troubleshooting](https://documentation.onesignal.com/docs/en/mobile-troubleshooting.md): Resolve common OneSignal Mobile SDK issues including push delivery failures, APNs errors, and in-app messaging problems across iOS, Android, and cross-platform frameworks. - [Getting a Debug Log](https://documentation.onesignal.com/docs/en/capturing-a-debug-log.md): Learn how to capture detailed debug logs from your mobile app using the OneSignal SDK. This guide walks through enabling verbose logging, reproducing issues, and sharing logs for troubleshooting push notification issues across Android and iOS platforms. ### Web SDKs - [Web SDK reference](https://documentation.onesignal.com/docs/en/web-sdk-reference.md): Complete OneSignal Web SDK v16 API reference covering initialization, login, user properties, push subscriptions, slidedown prompts, and event listeners. #### Web SDK setup - [Web SDK setup](https://documentation.onesignal.com/docs/en/web-sdk-setup.md): Add OneSignal web push notifications to your website with the JavaScript SDK, service worker upload, and dashboard configuration steps. - [iOS web push setup](https://documentation.onesignal.com/docs/en/web-push-for-ios.md): Complete guide to enabling web push notifications on iOS and iPadOS devices, including manifest file setup, user onboarding strategies, and implementation best practices for Safari, Chrome, and Edge browsers. - [OneSignal service worker](https://documentation.onesignal.com/docs/en/onesignal-service-worker.md): Set up and configure the OneSignalSDKWorker.js file so your website can receive and display web push notifications through OneSignal. - [Custom code web push setup with the OneSignal Web SDK](https://documentation.onesignal.com/docs/en/web-push-custom-code-setup.md): Set up OneSignal web push notifications with custom code. Add the JavaScript SDK, configure the service worker, and initialize OneSignal on your site. - [Google Tag Manager setup](https://documentation.onesignal.com/docs/en/google-tag-manager.md): Add OneSignal Web Push to your website using Google Tag Manager (GTM), including service worker setup, initialization, and sending Tags safely. - [Angular Web SDK setup](https://documentation.onesignal.com/docs/en/angular-setup.md): Integrate OneSignal Web Push Notifications into your Angular application using the onesignal-ngx package. Learn how to install, configure, and troubleshoot service workers to deliver seamless push notifications. - [ReactJS & NextJS Setup](https://documentation.onesignal.com/docs/en/react-js-setup.md): Learn how to integrate OneSignal push notifications with your ReactJS or NextJS web application, including initialization, service worker setup, and TypeScript support. - [Vue JS Web SDK setup](https://documentation.onesignal.com/docs/en/vue-js-setup.md): Integrate OneSignal Web Push Notifications into your Vue.js application using either the onesignal-vue or @onesignal/onesignal-vue3 plugin. Learn how to install, configure, and customize service workers for seamless push delivery. #### Web SDK troubleshooting - [Web SDK troubleshooting](https://documentation.onesignal.com/docs/en/troubleshooting-web-push.md): Troubleshoot OneSignal Web Push issues including service worker errors, origin mismatches, MIME types, and notifications not showing. - [Clearing cache and resetting push permissions](https://documentation.onesignal.com/docs/en/clearing-cache-and-resetting-push-permissions.md): Learn how to reset browser push permissions, service workers, and site data across Chrome, Firefox, and Safari to ensure clean test environments and resolve web push notification issues. - [Web push webhooks](https://documentation.onesignal.com/docs/en/webhooks.md): Set up HTTP webhooks to receive real-time notifications when users display, click, or dismiss web push notifications. Complete guide with examples for Chrome, Firefox, and Safari browser support. ### Live Activities - [Live Activities developer setup](https://documentation.onesignal.com/docs/en/live-activities-developer-setup.md): Set up iOS Live Activities with OneSignal to display real-time updates on the Lock Screen and Dynamic Island. - [Cross-platform Live Activity SDK setup](https://documentation.onesignal.com/docs/en/cross-platform-live-activity-setup.md): Add iOS Live Activities to a React Native, Flutter, Unity, Cordova, Capacitor, or .NET MAUI app. The setupDefault method lets the OneSignal SDK own the ActivityKit lifecycle, so the only native code you write is the widget layout. - [Android Live Update notifications](https://documentation.onesignal.com/docs/en/android-live-notifications.md): Build Android Live Updates on top of OneSignal push. This pattern mirrors iOS Live Activities by routing a structured payload through a Notification Service Extension to update one persistent, promoted notification in place. ### Desktop & Watch Setup - [macOS app setup](https://documentation.onesignal.com/docs/en/macos-app-setup.md): Learn how to integrate OneSignal into your macOS app, whether using Mac Catalyst or direct API access. Step-by-step guidance for configuring platforms and sending push notifications. - [Windows app setup](https://documentation.onesignal.com/docs/en/windows-app-setup.md): Complete guide for integrating OneSignal push notifications into your Universal Windows Platform (UWP) app using Windows Push Notification Service (WNS) and OneSignal's REST API - [watchOS & Wear OS Support](https://documentation.onesignal.com/docs/en/watchos-and-wear-os-support.md): Complete guide to implementing OneSignal push notifications for standalone Apple watchOS and Android Wear OS applications, including setup instructions and API integration. ## Tutorials ### Tutorials - [Tutorials & use cases](https://documentation.onesignal.com/docs/en/tutorials.md): Explore step-by-step tutorials and best-practice examples to help you implement OneSignal features and boost engagement, retention, and revenue. ### Industry strategies - [Mobile-first strategies](https://documentation.onesignal.com/docs/en/mobile-first.md): Implementation hub for mobile-first messaging: External IDs, Tags, Custom Events, segments, and lifecycle Journeys for subscription, freemium, and trial-driven apps. - [Gaming strategies](https://documentation.onesignal.com/docs/en/gaming-industry.md): Implementation hub for gaming messaging — player IDs, lifecycle Tags, behavioral Custom Events, segments, and Journey playbooks for mobile and live-service games. - [Ecommerce strategies](https://documentation.onesignal.com/docs/en/ecommerce-strategies.md): Implementation hub for ecommerce messaging — customer IDs, RFM Tags, browse and purchase Custom Events, segments, and Journey playbooks for cart recovery, loyalty, and re-engagement. - [News and media strategies](https://documentation.onesignal.com/docs/en/news-and-media-industry.md): Implementation hub for news and media messaging — user IDs, category interest Tags, reading-behavior Custom Events, segments, and Journey playbooks for audience growth, paywall conversion, and re-engagement. - [Financial and fintech strategies](https://documentation.onesignal.com/docs/en/financial-fintech-industry.md): Implementation hub for financial and fintech messaging — user IDs, KYC and security Tags, product-holding and transaction Custom Events, segments, and Journey playbooks for compliance, verification, cross-sell, and retention. ### Onboard new users - [Mobile-first lifecycle Journeys](https://documentation.onesignal.com/docs/en/mobile-first-journeys.md): Welcome, trial-to-paid, event-driven, retention, and win-back Journey playbooks for mobile-first apps, with both basic and advanced data integrations covered. - [Welcome Journey: Mobile gaming](https://documentation.onesignal.com/docs/en/welcome-journey-mobile-gaming.md): Build an automated onboarding flow that drives new players to their first meaningful in-game action — from minimal data setup to fully event-driven personalization. - [Category onboarding for news and media](https://documentation.onesignal.com/docs/en/welcome-journey-news-media.md): Welcome Journey for news and media apps that nudges readers to complete their profile and pick category preferences using Yes/No branches, Wait Until steps, follow-up pushes, and tailored emails. - [Build a button-driven onboarding carousel](https://documentation.onesignal.com/docs/en/in-app-onboarding-carousel-tutorial.md): Create a multi-step onboarding flow using HTML In-App Messages with button navigation and automatic dismissal. - [Request location permissions with in-app messages](https://documentation.onesignal.com/docs/en/location-opt-in-prompt.md): Guide users to enable location tracking in your mobile app using a soft pre-prompt in OneSignal before triggering the native Android or iOS location permission request. - [Onboard users with banner in-app messages](https://documentation.onesignal.com/docs/en/example-create-a-tutorial.md): Guide users with contextual top and bottom banner in-app messages that don't block your app UI. ### Engage and convert - [Event-driven Journeys](https://documentation.onesignal.com/docs/en/event-driven-journeys.md): Design Journeys that respond to user behavior using Custom Events as entry rules, Wait Until conditions, exit rules, and message personalization sources. - [Abandoned cart tutorial](https://documentation.onesignal.com/docs/en/abandoned-cart.md): Recover lost sales with abandoned cart notifications using OneSignal by tracking cart activity, building targeted segments, and sending timely reminders with Journeys. - [Loyalty Journey](https://documentation.onesignal.com/docs/en/loyalty-journey.md): Build automated loyalty messaging that keeps customers informed about their points balance, notifies them when rewards unlock and drives repeat purchases with measurable ROI. - [Flash sale Journey](https://documentation.onesignal.com/docs/en/flash-sale.md): Build an automated flash sale campaign that drives conversions during a time-limited promotion, from a simple time-based flow to a fully personalized Journey with VIP early access and buyer suppression. - [Back-in-stock alerts](https://documentation.onesignal.com/docs/en/back-in-stock-alerts.md): Send restock alerts via push, email, or SMS to users who opted in. Use SKU-keyed tags with the Create Message API or Custom Events with a Journey. - [Location-based messages](https://documentation.onesignal.com/docs/en/location-triggered-event.md): Segment users by country, GPS coordinates, or geofence and send location-triggered push notifications with OneSignal. - [iOS: Image Carousel Push Notifications](https://documentation.onesignal.com/docs/en/ios-image-carousel-push-notifications.md): How to implement an image carousel in OneSignal iOS push notifications using Swift. - [Social activity](https://documentation.onesignal.com/docs/en/social-activity.md): Send push, email, and SMS notifications for likes, follows, direct messages, and gaming events, using custom_data for backend-triggered alerts. - [Create activity feed](https://documentation.onesignal.com/docs/en/create-an-activity-feed.md): Learn how to build an in-app activity feed using OneSignal's REST API, Event Streams, or on-device logic to track and display user notification history. - [Create a survey to ask for feedback](https://documentation.onesignal.com/docs/en/example-create-a-survey.md): Build a multi-page in-app survey using Carousel, Button Click Actions, Outcomes, and Tags for analytics and segmentation. ### Retain and re-engage - [Paid plan subscription renewal & expiry Journey](https://documentation.onesignal.com/docs/en/paid-plan-renewal-expiry.md): Win back users who turn off auto-renew and remind them before their paid plan expires, using a Custom Event entry trigger plus date-relative Wait Until steps. - [Daily streak journey](https://documentation.onesignal.com/docs/en/daily-streak.md): Use Journeys to build daily streak reminders that keep users coming back, using last session time or tags and custom events. - [Get more app store reviews](https://documentation.onesignal.com/docs/en/example-app-store-review.md): Prompt users to review your app using OneSignal in-app messages with native iOS and Android review prompts, reducing friction and increasing ratings. - [Target outdated app versions to encourage app updates](https://documentation.onesignal.com/docs/en/app-version-update.md): Use in-app messages to detect outdated app versions and prompt users to update, with platform-specific segments for iOS and Android. - [Fallback messages: Ensuring delivery across channels](https://documentation.onesignal.com/docs/en/push-fallback-method.md): Implement a fallback strategy with OneSignal to ensure critical messages are delivered via email or SMS when push notifications fail. Learn how to set up cross-channel messaging using Journeys, APIs, and segmentation for reliable user engagement. ### Operational - [Transactional messages](https://documentation.onesignal.com/docs/en/transactional-messages.md): Learn how to send transactional messages like OTPs, billing updates, and reminders using OneSignal’s API with personalized data via push, email, or SMS. - [Set up confirmed opt-in for email](https://documentation.onesignal.com/docs/en/double-opt-in-email.md): Implement double opt-in (confirmed opt-in) for email in OneSignal using Tags, Segments, and Journeys to improve engagement, compliance, and list quality. - [Preference center](https://documentation.onesignal.com/docs/en/preference-center.md): Learn how to implement a custom user preference center in your app or website using OneSignal APIs to manage notification topics, frequencies, channels, and data privacy settings. - [Booking confirmations](https://documentation.onesignal.com/docs/en/booking-confirmations.md): Use custom events, Journeys, and Data Feeds to send booking confirmation or recovery emails based on real-time booking status. - [Send verification, magic link, OTP, and double opt-in messages](https://documentation.onesignal.com/docs/en/example-verification-magic-link-otp.md): Examples of email and SMS verification messages using OneSignal, including one-time passwords, magic links, and double opt-in flows with templates and API examples. - [Track topic interest for smarter targeting](https://documentation.onesignal.com/docs/en/auto-segment-users-by-page-visit.md): Tag users based on the pages they visit and the page they subscribe to push notifications from, then segment for targeted campaigns. - [Target certain Android manufacturers and devices](https://documentation.onesignal.com/docs/en/example-target-certain-android-manufacturers-and-devices.md): Use OneSignal in-app messages to coach Android users on Samsung, Xiaomi, and similar devices that block push delivery when apps are force-stopped or have notification categories disabled. ## API Reference ### Using the REST APIs - [REST API overview](https://documentation.onesignal.com/reference/rest-api-overview.md): Programmatic access to OneSignal messaging, user management, segments, Journeys, and data exports over HTTPS with rate limiting and retry support. - [Rate limits and error handling](https://documentation.onesignal.com/reference/rate-limits.md): Understand OneSignal API and application rate limits, common errors, retry behavior, and how to safely recover from failures without sending duplicate messages or disabling your app. - [Idempotent API requests](https://documentation.onesignal.com/reference/idempotent-notification-requests.md): Prevent duplicate messages or custom events when retrying API requests. - [Server SDK reference](https://documentation.onesignal.com/docs/en/server-sdk-reference.md): Install, configure, and use OneSignal server SDKs to send push notifications, emails, and SMS from your backend in Node.js, Python, Java, Go, PHP, Ruby, C#, and Rust. ### API reference #### Messages - [Sending messages with the OneSignal API](https://documentation.onesignal.com/reference/create-message.md): Send push notifications, emails, SMS, and Live Activities with the OneSignal API. Covers audience targeting, message composition, scheduling, and response handling. - [Push notification](https://documentation.onesignal.com/reference/push-notification.md): Send a message using the push notification channel. - [Email](https://documentation.onesignal.com/reference/email.md): Send a message using the email channel. - [SMS](https://documentation.onesignal.com/reference/sms.md): Send a message using the SMS channel. - [View message](https://documentation.onesignal.com/reference/view-message.md): View the details of a single message and the Outcomes associated with it. - [View messages](https://documentation.onesignal.com/reference/view-messages.md): View the details for a collection of messages. - [Cancel message](https://documentation.onesignal.com/reference/cancel-message.md): Stop a scheduled or currently outgoing message. - [Message history](https://documentation.onesignal.com/reference/message-history.md): View which subscriptions received a particular message - [Estimated recipients](https://documentation.onesignal.com/reference/count-unsaved.md): Returns the estimated number of recipients for a notification's targeting, without creating or sending anything. #### Live Activities - [Start Live Activity](https://documentation.onesignal.com/reference/start-live-activity.md): Remotely start an iOS Live Activity with the OneSignal REST API, also known as push-to-start. Covers required body fields, choosing an activity_id, and audience targeting. - [Update Live Activity](https://documentation.onesignal.com/reference/update-live-activity-api.md): Update the content of a running iOS Live Activity or end it with the OneSignal REST API. Covers required body fields, update priority, and dismissal timing. #### Custom Events - [Create custom events](https://documentation.onesignal.com/reference/create-custom-events.md): The Custom Events API allows you to record user events. Custom events can represent any action users take in your application, such as completing a purchase, viewing content, or achieving milestones. #### Users - [Create user](https://documentation.onesignal.com/reference/create-user.md): Create a new user or modify the subscriptions associated with an existing User. - [View user](https://documentation.onesignal.com/reference/view-user.md): Retrieve a user including aliases, properties, and subscriptions. - [Update user](https://documentation.onesignal.com/reference/update-user.md): Modify a user's properties. - [Delete user](https://documentation.onesignal.com/reference/delete-user.md): Delete a user including all associated properties, subscriptions, and identity. - [View user identity](https://documentation.onesignal.com/reference/fetch-aliases.md): Retrieve all aliases associated with a user using a known alias, such as an `external_id`, `onesignal_id`, or a custom alias. This API helps you map back to a user's full identity from any one piece of identifying information. - [View user identity (by subscription)](https://documentation.onesignal.com/reference/fetch-identity-by-subscription.md): Retrieve all aliases linked to a user using a known `subscription_id`. This is useful when the user's identity is unknown but you have access to one of their push, email, or SMS subscriptions. - [Create or update alias](https://documentation.onesignal.com/reference/create-alias.md): Add or update aliases on an existing user when you already know one of that user's aliases, such as an external_id, onesignal_id, or custom alias. Updates the identity object only. - [Create alias (by subscription)](https://documentation.onesignal.com/reference/create-alias-by-subscription.md): Create or update an alias for a user using a known subscription ID. - [Delete alias](https://documentation.onesignal.com/reference/delete-alias.md): Remove a specific alias from a user. #### Subscriptions - [Create Subscription by alias](https://documentation.onesignal.com/reference/create-subscription.md): Attach a new subscription (email, SMS, or push) to an existing OneSignal user identified by an alias. - [Update Subscription by ID](https://documentation.onesignal.com/reference/update-subscription.md): Update properties on an existing OneSignal subscription using its subscription_id. Commonly used to enable or disable a subscription when managing outside of the OneSignal SDK. - [Update Subscription by token](https://documentation.onesignal.com/reference/update-subscription-by-token.md): Update properties on an existing Subscription using its token. Commonly used to enable or disable subscription status when managing outside of the OneSignal SDK. - [Delete Subscription](https://documentation.onesignal.com/reference/delete-subscription.md): Delete a specific subscription by its subscription_id. This stops messages from being sent to that subscription but does not prevent future subscriptions with the same token. - [Transfer Subscription](https://documentation.onesignal.com/reference/transfer-subscription.md): Transfer a Subscription to a different user within the same OneSignal app. Useful for associating existing Subscriptions like push, email, or SMS with a new or updated user identity. - [Unsubscribe email with token](https://documentation.onesignal.com/reference/unsubscribe-with-token.md): Unsubscribe an email address from future messages by calling this API from your custom unsubscribe page. Automatically disables the associated email subscription using a token-based approach. #### Templates - [Create template](https://documentation.onesignal.com/reference/create-template.md): Create reusable message templates for push, email, and SMS channels. Templates can be accessed through both the dashboard and API using a `template_id`. - [Update template](https://documentation.onesignal.com/reference/update-template.md): Update existing OneSignal message templates for push, email, or SMS. Changes apply immediately across dashboard and API usage via the `template_id` reference. - [View templates](https://documentation.onesignal.com/reference/view-templates.md): Retrieve a paginated list of message templates from your OneSignal app. This endpoint returns summary information for each template, including ID, name, creation, and update timestamps. - [View template](https://documentation.onesignal.com/reference/view-template.md): Retrieve the details of a specific message template in your OneSignal app using its template ID. This API returns the template content, target channel, and timestamps for creation and last update. - [Delete template](https://documentation.onesignal.com/reference/delete-template.md): Permanently delete a specific message template from your OneSignal app using its template ID. Templates used in Journeys must be removed from those Journeys before deletion. - [Copy template to another app](https://documentation.onesignal.com/reference/copy-template-to-another-app.md): Create a duplicate of a template in another app. The new template will be completely separate from the original (including having a new template_id) but will be created with all the same content. #### Segments - [View segments](https://documentation.onesignal.com/reference/view-segments.md): Retrieve a list of segments associated with a specific OneSignal app. Useful for programmatically accessing segment metadata such as name, creation date, and status. - [View segment](https://documentation.onesignal.com/reference/view-segment.md): Retrieve details for a single segment by its ID, including subscriber count and optionally segment metadata and filters. - [Create segment](https://documentation.onesignal.com/reference/create-segments.md): Programmatically create segments in your OneSignal app using flexible filters and targeting rules. - [Update segment](https://documentation.onesignal.com/reference/update-segment.md): Update an existing segment's name and/or filters. The name parameter is always required. When filters are provided, all existing filters are replaced with the new ones. - [Delete segment](https://documentation.onesignal.com/reference/delete-segments.md): Delete segments from OneSignal. Does not delete users or subscriptions. #### Journeys - [View journeys](https://documentation.onesignal.com/reference/view-journeys.md): Retrieve a paginated list of journeys for an app, with cursor-based pagination and a lightweight summary representation of each journey. - [View journey](https://documentation.onesignal.com/reference/view-journey.md): Retrieve the full configuration of a single journey by its UUID, including its audience, schedule, and node graph. - [View journey stats](https://documentation.onesignal.com/reference/view-journey-stats.md): Retrieve performance stats for a single journey, including journey-level counts, per-node counts, per-branch counts, and channel delivery stats. - [Create journey](https://documentation.onesignal.com/reference/create-journey.md): Create a new journey with an audience and a node graph. Journeys are always created in the draft state. - [Update journey](https://documentation.onesignal.com/reference/update-journey.md): Apply a partial update to a journey with JSON Merge Patch, and activate a draft journey by transitioning its state. - [Update journey node](https://documentation.onesignal.com/reference/update-journey-node.md): Apply a partial update to a single journey node, located by its server-assigned id, with JSON Merge Patch. - [Delete journey](https://documentation.onesignal.com/reference/delete-journey.md): Permanently delete a journey by its UUID. Deletion cannot be undone; archive a running journey instead if you need to keep its data. #### Organization - [List audit logs](https://documentation.onesignal.com/reference/list-audit-logs.md): Retrieve a paginated, time-scoped list of audit log events for an organization. Requires an Enterprise plan. Supports filtering by app, action, actor, target, and IP address. - [View apps](https://documentation.onesignal.com/reference/view-apps.md): Retrieve a list of all OneSignal apps associated with your account, including key app details like name, App ID, subscription counts, and timestamps. Useful for managing multiple apps through the OneSignal API. - [View an app](https://documentation.onesignal.com/reference/view-an-app.md): View the details of a single OneSignal app - [Create an app](https://documentation.onesignal.com/reference/create-an-app.md): Programmatically create a new OneSignal app via the REST API. This guide explains required fields, supported platform configurations (Web, Android, iOS), and how to properly authenticate using your Organization API key. - [Update an app](https://documentation.onesignal.com/reference/update-an-app.md): Use to update the name or push platform configuration of an existing app. This guide explains required parameters and platform-specific update rules - [View API keys](https://documentation.onesignal.com/reference/view-api-keys.md): View the details of all of your current app API keys (Rich Authentication Token) for a single OneSignal app. - [Create API key](https://documentation.onesignal.com/reference/create-api-key.md): Use the OneSignal API to create a new Rich Authentication Token (App API Key) for a specific app. This guide explains how to authenticate with the Organization API key and configure optional IP allowlists using CIDR notation. - [Delete API key](https://documentation.onesignal.com/reference/delete-api-key.md): Delete a specific Rich Authentication Token (App API Key) for a OneSignal app. Requires your Organization API Key and the token's unique ID, not the token value itself. - [Update API key](https://documentation.onesignal.com/reference/update-api-key.md): Update a Rich Authentication Token (App API Key) for a OneSignal app. Modify the token's name or IP allowlist settings using your Organization API Key. - [Rotate API key](https://documentation.onesignal.com/reference/rotate-api-key.md): Rotate an existing App API Key (Rich Authentication Token) for a OneSignal app. Useful when a token is compromised or needs replacement without creating a new key from scratch. #### Analytics - [Export subscriptions CSV](https://documentation.onesignal.com/reference/csv-export.md): Generate a GZip-compressed CSV export of your current subscription data using this API endpoint. - [Export audience activity CSV](https://documentation.onesignal.com/reference/export-csv-of-events.md): Export a compressed CSV report of audience-level delivery and engagement data for a specific message. This includes sent, delivered, clicked, failed, and unsubscribed events across Push, Email, and SMS channels. - [View outcomes](https://documentation.onesignal.com/reference/view-outcomes.md): View and export push notification outcome metrics such as clicks, conversions, and custom events. #### Deprecated - [View players](https://documentation.onesignal.com/reference/view-devices.md): GET `https://onesignal.com/api/v1/players?app_id={app_id}&limit={limit}&offset={offset}` - [View player](https://documentation.onesignal.com/reference/view-device.md): GET https://onesignal.com/api/v1/players/{player_id} - [Add a player](https://documentation.onesignal.com/reference/add-a-device.md): POST `https://onesignal.com/api/v1/players` - [Edit player](https://documentation.onesignal.com/reference/edit-device.md): put https://onesignal.com/api/v1/players/{player_id} - [Edit tags with external user id](https://documentation.onesignal.com/reference/edit-tags-with-external-user-id.md): put https://onesignal.com/api/v1/apps/{app_id}/users/{external_user_id} - [Delete player record](https://documentation.onesignal.com/reference/delete-user-record.md): delete https://onesignal.com/api/v1/players/{player_id}?app_id={app_id} ## Release Notes ### Release Notes - [Changelog](https://documentation.onesignal.com/release-notes/changelog.md): Follow the OneSignal changelog for new features, product updates, and bug fixes across push, email, SMS, in-app messages, Journeys, and analytics. - [SDK Releases](https://documentation.onesignal.com/release-notes/sdk-releases.md): View the latest OneSignal SDK releases and updates. ## Customer Success Hub ### Workshops & Events - [Customer Success Hub](https://documentation.onesignal.com/docs/en/customer-success-hub.md): Everything you need to get the most from OneSignal ## OpenAPI Specs - [openapi](/openapi.json) ## Optional - [Blog](https://onesignal.com/blog) - [GitHub](https://github.com/OneSignal) - [YouTube](https://www.youtube.com/@onesignalofficial/playlists) > The links below point to documentation indexes. Follow each `/_llms/` index recursively until you reach documentation pages. ## Indexes - [English / User Guides (194 pages)](https://documentation.onesignal.com/_llms/en/user-guides.md): Documentation for English / User Guides. - [Chinese (318 pages)](https://documentation.onesignal.com/_llms/cn.md): Documentation for Chinese. - [Chinese / 用户指南 (177 pages)](https://documentation.onesignal.com/_llms/cn/tab-4ef7ed40.md): Documentation for Chinese / 用户指南. - [Korean (319 pages)](https://documentation.onesignal.com/_llms/ko.md): Documentation for Korean. - [Korean / 사용자 가이드 (178 pages)](https://documentation.onesignal.com/_llms/ko/tab-e7325d8b.md): Documentation for Korean / 사용자 가이드. - [Japanese (319 pages)](https://documentation.onesignal.com/_llms/ja.md): Documentation for Japanese. - [Japanese / ユーザーガイド (178 pages)](https://documentation.onesignal.com/_llms/ja/tab-61970413.md): Documentation for Japanese / ユーザーガイド. - [Turkish (319 pages)](https://documentation.onesignal.com/_llms/tr.md): Documentation for Turkish. - [Turkish / Kullanıcı Kılavuzları (178 pages)](https://documentation.onesignal.com/_llms/tr/kullanici-kilavuzlari.md): Documentation for Turkish / Kullanıcı Kılavuzları. - [Brazilian Portuguese (319 pages)](https://documentation.onesignal.com/_llms/pt-br.md): Documentation for Brazilian Portuguese. - [Brazilian Portuguese / Guia do Usuário (178 pages)](https://documentation.onesignal.com/_llms/pt-br/guia-do-usuario.md): Documentation for Brazilian Portuguese / Guia do Usuário. - [Spanish (319 pages)](https://documentation.onesignal.com/_llms/es.md): Documentation for Spanish. - [Spanish / Guías del Usuario (178 pages)](https://documentation.onesignal.com/_llms/es/guias-del-usuario.md): Documentation for Spanish / Guías del Usuario. - [French (319 pages)](https://documentation.onesignal.com/_llms/fr.md): Documentation for French. - [French / Guides utilisateur (178 pages)](https://documentation.onesignal.com/_llms/fr/guides-utilisateur.md): Documentation for French / Guides utilisateur.