CSV exports
Devices, deliveries and statistics as CSV, with a temporary download link.
You can export to CSV:
- Devices: token, platform, status, external user, language, time zone, versions, SDK and tags.
- Deliveries: of one send, or of an app in a date range (up to 31 days). With status, error code, attempts and the send, open and click times.
- Hourly statistics: sent, accepted, failed, invalid, received, opened, clicks and dismissed, per send and platform (up to 366 days).
Exports are generated in the background. The file is available for 24 hours with a signed link; after that you have to generate another one.
From the panel
In Exports, choose what to export and click Generate CSV. When it's ready, you get an email with the link and the Download button appears. You can also export from an app's device list and from a send's details.
The read-only role (viewer) can't export, because the file includes the devices' tokens.
From the API
Use a secret key with notifications:read. For devices you also need devices:read.
curl -X POST https://api.pushtifly.com/v1/exports \
-H "Authorization: Bearer sk_live_YOUR_KEY" -H "Content-Type: application/json" \
-d '{ "type": "deliveries", "notificationId": "01J…", "notifyEmail": "data@yourcompany.com" }'
It responds 202 with status: "queued". Poll until it's ready:
curl https://api.pushtifly.com/v1/exports/01K… -H "Authorization: Bearer sk_live_YOUR_KEY"
# → { "status": "ready", "rows": 1520, "downloadUrl": "https://api.pushtifly.com/v1/exports/01K…/download?expires=…&signature=…" }
downloadUrl doesn't need the key: its signature validates it. If it expires or is tampered with, it responds 1109. It may respond with the file or redirect (302) to a temporary download link: use a client that follows redirects (in curl, -L).
| Field | For | Description |
|---|---|---|
type |
all | devices, deliveries or stats. |
appId |
all | One app; without it, the whole company. With a key restricted to one app, always that one. |
platform, status |
devices |
android / ios; active / invalid / pending_credential. |
notificationId |
deliveries |
The deliveries of one send. |
from, to |
deliveries, stats |
Dates YYYY-MM-DD inclusive, in UTC. |
notifyEmail |
all | Email to notify when it's ready. |
You can have up to 3 exports in progress per company (3003 if you request more). Each file has a maximum of one million rows; if it's reached, the export is marked truncated.
The file
- UTF-8 with BOM (Excel opens it with accents), comma-separated, with a header.
- Dates in ISO 8601 UTC (
2026-10-25T14:03:00Z). - Cells starting with
=,+,-or@are prefixed with', so the spreadsheet doesn't run them as a formula.