Skip to main content
OneSignal exports one row per subscription with the push token in the file, so a migration keeps every device. BuzzKit recognizes the export from its columns and maps it without any setup.

From the dashboard

  1. Open Audience, then Subscriptions.
  2. Open the column picker and make sure External ID is selected. It is optional in the export, and it is what links each device to your own user id.
  3. Optionally filter by segment first to export only part of the audience.
  4. Download the CSV.

From the export endpoint

Large apps can request the same file through the csv_export endpoint. The extra fields are the ones the dashboard picker adds; ask for at least the external id.
The response holds a link to a gzipped CSV. Unzip it before importing. The link stays available for three days. Add "include_unsubscribed": true to the body to include unsubscribed devices, and "last_active_since" with a Unix timestamp to leave out devices that have been inactive for a long time.

What BuzzKit reads

The timezone column is a UTC offset in seconds and is ignored. The IANA name lives in timezone_id, which is an extra field, so select it in the picker or request it from the endpoint.