Generate a compressed CSV export of all of your current user data

This method can be used to generate a compressed CSV export of all of your current subscriptions data. It is a much faster alternative than retrieving this data using the /subscriptions API endpoint. The file will be compressed using GZip.

On average, the file is generated at a rate of 2,000 records per second.

The file will be accessible via the URL for 3 days and includes random v4 uuid as part of the resource name to be unguessable.

🚧

404 Error Responses

You can check if the file is complete by making a GET request to the csv_file_url value. This file may take time to generate depending on how many records are being pulled. If the file is not ready, a 404 error will be returned. In which case, you set setup a retry to pull again after some time has passed. Otherwise the file itself will be returned.

🚧

Concurrent Exports

Only one concurrent export is allowed per OneSignal account. Please ensure you have successfully downloaded the .csv.gz file before exporting another app.

Result Format - CSV export

Default ColumnsDetails
idOneSignal Subscription Id
identifierPush Token
session_countNumber of times they visited the app or site
languageDevice language code
timezoneNumber of seconds away from UTC. Example: -28800
game_versionVersion of your mobile app gathered from Android Studio versionCode in your App/build.gradle and iOS uses kCFBundleVersionKey in Xcode.
device_osDevice Operating System Version. Example:
80 = Chrome 80, 9 = Android 9
device_typeDevice Operating System Type. See device_type for Integer Value codes. Example:
0 = iOS mobile app
1 = Android mobile app
5 = Chrome Web Push
11 = Email
14 = SMS
device_modelDevice Hardware String Code.
Example:
Mobile Web Subscribers will have Linux armv
iOS Hardware Strings
ad_idBased on the Google Advertising Id for Android, identifierForVendor for iOS. OptedOut means user turned off Advertising tracking on the device.
tagsCurrent OneSignal Data Tags on the device.
last_activeDate and time the user last opened the mobile app or visited the site based on UTC.
playtimeTotal amount of time in seconds the user had the mobile app open.
amount_spentMobile only - amount spent in USD on In-App Purchases. More details.
created_atDate and time the device record was created in OneSignal. Mobile - first time they opened the app with OneSignal SDK. Web - first time the user subscribed to the site.
invalid_identifiert = unsubscribed
f = subscribed
badge_countCurrent number of badges on the device

Extra Fields - CSV export

extra_fieldsDetails
external_user_idYour User Id set on the device.
notification_typesCheck this value if invalid_identifier is t (true) to know why the device is unsubscribed.

1 = subscribed
-2 = unsubscribed, via SDK method or REST API
null = default, if invalid_identifier is t (true) and identifier is null then device was never subscribed
0 = permission not granted.
-3 = missing_android_support_library
-4 = missing_google_play_services_library
-5 = outdated_android_support_library
-6 = invalid_google_project_number
-7 = outdated_google_play_services_app
-8 = google_play_services_library_error
-9 = GSM_SERVICE_NOT_AVAILABLE
-10= Web push blocked notifications, cleared all data and workers, Android, iOS, and WP uninstalled app
-11 = google_play_services_library_error # Google Play services returned an IOException error, check logcat
-12 = google_play_services_library_error # Google Play services returned unknown error, check logcat
-13 = iOS missing_push_capability
-14 = iOS apns_delegate_never_fired or cannot connect to APNs
-15 = ios_simulator_unsupported
-16 = iOS unknown_apns_error_response
-17 = iOS other_apns_3000_error
-18 = iOS never_prompted
-19 = iOS prompted_but_never_answered
-20 = temp_web_record
-21 = Web, pushsubscriptionchange permission revoked
-22 = Email, unsubscribed via dashboard, manually_unsubscribed
-23 = Web service_worker_403
-24 = Web service_worker_404

The secondary use of this field is for iOS devices (device_type = 0).
For numbers greater than zero for iOS devices this indicates the notification options enabled for your app as bitflags.

bit 0 - badges
bit 1 - sounds
bit 2 - alert
bit 3 - lockscreen
Example: 31 = all the iOS notification settings are on. badges, sounds, banner, etc

See the OneSignal-iOS-SDK Source for more details on these iOS bitflags.
locationLocation points (Latitude and Longitude) set on the device.
countryCountry code
rootedAndroid device rooted or not
ipIP Address of the device if being tracked. See Handling Personal Data.
web_authWeb Only authorization key.
web_p256Web Only p256 key.
onesignal_idOnesignal User ID
unsubscribed_atDate and time the device was unsubscribed.
test_subscription_nameThe name of the test device that is associated with this subscription.
Language