API · Exports
CSV files of devices, deliveries and statistics, with a temporary download link.
Base: https://api.pushtifly.com. Every response uses { errCode, errMsg, data, meta }. Authentication and keys · Error catalog
GET/v1/exports
Company exports (most recent first)
Key: sk_
Parameters
| Name | In | Type | Description |
|---|---|---|---|
page | query | integer | |
perPage | query | integer |
Responses: 200
curl -X GET "https://api.pushtifly.com/v1/exports" \
-H "Authorization: Bearer sk_test_YOUR_SECRET_KEY"POST/v1/exports
Request a CSV export (202, generated in the background)
Key: sk_
type devices (also requires devices:read; filters platform, status), deliveries (notificationId, or appId + from + to up to 31 days) or stats (from + to up to 366 days, hourly). Dates YYYY-MM-DD inclusive, in UTC. Optional notifyEmail: an email with the link. Up to 3 in progress per company (3003). The file expires after 24 h.
Body
| Field | Type | Description |
|---|---|---|
type* | "devices" | "deliveries" | "stats" | |
appId | string | |
platform | "android" | "ios" | "web" | |
status | "active" | "invalid" | "pending_credential" | |
notificationId | string | |
from | string | |
to | string | |
notifyEmail | string | |
language | "es" | "en" |
Responses: 202422
curl -X POST "https://api.pushtifly.com/v1/exports" \
-H "Authorization: Bearer sk_test_YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "devices",
"appId": "text",
"platform": "android",
"status": "active",
"notificationId": "text",
"from": "2026-11-15",
"to": "2026-11-15",
"notifyEmail": "text",
"language": "es"
}'GET/v1/exports/{id}
Status (queued, running, ready, failed, expired), rows and a signed downloadUrl when it is ready
Key: sk_
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id* | path | string |
Responses: 200
curl -X GET "https://api.pushtifly.com/v1/exports/ID_ID" \
-H "Authorization: Bearer sk_test_YOUR_SECRET_KEY"GET/v1/exports/{id}/download
Download the CSV (UTF-8 with BOM). No key needed: the link is signed; 1109 if it expired or was tampered with
Key: sk_
Depending on the installation it returns the file (200) or redirects (302) to a temporary file-storage link, valid for a few minutes. HTTP clients must follow the redirect.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id* | path | string | |
expires* | query | integer | |
signature* | query | string |
Responses: 200302401
curl -X GET "https://api.pushtifly.com/v1/exports/ID_ID/download" \
-H "Authorization: Bearer sk_test_YOUR_SECRET_KEY"