Leave OneSignal without
losing a subscriber.
Your subscribers are yours. This guide moves them — tokens, tags, opt-in status, templates and message history — in an afternoon, with a verification step so you never send blind.
Pull your audience with a REST key
On the Migrate page, paste your OneSignal app ID and a REST API key. OpenPush asks OneSignal for its own subscriber export — tokens, external IDs, tags, country, timezone and subscription status — waits for it, and imports it. The key is used for the pull and never stored. Prefer to do it by hand? Audience → Export CSV in OneSignal and upload the file.
On the free plan, exports are still available. Do this before anything else.
Create your app in OpenPush
One click generates per-app keys. Add your FCM service-account JSON — the same one OneSignal uses for Android — and your APNs auth key for iOS. Nothing new to provision.
Import
Columns map automatically and subscribed / unsubscribed status is preserved exactly — nobody gets re-permissioned, nobody gets ghost-messaged. Message history and templates come with it; segment names arrive as paused shells for you to re-enter the rules. Large accounts import in the background, and a re-import never overwrites a live OpenPush snapshot.
Swap the SDK config
Replace the OneSignal import and keys — the SDK keeps the same method names on purpose. Ship your next release; both SDKs can coexist during rollout, so you migrate at your own pace.
Verify with a test device
Test subscriptions don't touch your reports. Send yourself the first push, watch it land in the delivery funnel, then flip the switch and go live.
iOS (APNs), Android (FCM) and web push are all live from the Oct 10 launch — migrate whatever you run. Import your subscribers, swap SDK keys per platform, and send. "OneSignal-compatible" covers the segment vocabulary, the importer, and the SDK surface we've validated — see the compatibility matrix for exact SDK versions, token/VAPID types, tag mapping, and known gaps before you cut over. The developer-level detail is in the docs.
Nothing about your users changes.
Migration questions.
Can I export on OneSignal's free plan?
Yes — CSV export is available on the free plan, and OpenPush can pull it for you with a REST key. Export your audience first; the file includes tokens, external IDs, tags, and subscription status.
Can both SDKs run at the same time?
Yes. OpenPush and OneSignal SDKs coexist in the same build during rollout, so you can migrate a percentage of traffic at a time and verify before you fully cut over.
What's the rollback plan?
Because both SDKs can run together, rollback is a config change, not a migration: point sends back at OneSignal while you investigate. Your OpenPush data stays put, and nothing is deleted on either side.
What happens to my segments?
Segment names come across as paused shells — OneSignal's API does not export the rules — and you re-enter them in OpenPush's identical filter vocabulary: last_session, session_count, tags, language. Most paste straight over; the few that don't are usually simpler to express here.
Will anyone get re-permissioned or double-messaged?
No. The importer preserves opt-in status exactly, and test subscriptions never touch reports — so nobody who unsubscribed gets messaged, and you won't send duplicates during the cutover.
Keep your subscribers. Drop the bill.
Free forever to 1M MAU · No credit card · Your own APNs and FCM credentials · read the pledge