ZeepNotti Docs

Notifications

Send push notifications and track delivery status per device.

GET
/v1/apps/{app_id}/notifications

Lists notifications newest-first, optionally filtered by ?status=, paginated via ?limit=&cursor=.

Authorization

Path Parameters

app_id*string

App ID

Query Parameters

status?string

Filter by status: pending, scheduled, cancelled, sent, partial_failure, failed

limit?integer

Page size (1-100, default 50)

cursor?string

Pagination cursor

Response Body

application/json

curl -X GET "https://example.com/v1/apps/string/notifications"
{}
POST
/v1/apps/{app_id}/notifications

Creates a Notification targeting devices, a segment, or an external user, and enqueues delivery (or schedules it for send_at). Either template_id or both ad_hoc_title/ad_hoc_body is required. Repeating the same Idempotency-Key header returns the original notification instead of creating a duplicate.

Authorization

Path Parameters

app_id*string

App ID

Header Parameters

Idempotency-Key?string

Idempotency key; a repeated key returns the original notification

Request Body

application/json

Notification target and content

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/apps/string/notifications" \  -H "Content-Type: application/json" \  -d '{}'
{  "ad_hoc_body": "string",  "ad_hoc_title": "string",  "app_id": "string",  "created_at": "string",  "data": {    "property1": null,    "property2": null  },  "id": "string",  "idempotency_key": "string",  "send_at": "string",  "status": "string",  "target_type": "string",  "target_value": [    "string"  ],  "template_id": "string"}
GET
/v1/apps/{app_id}/notifications/{id}

Fetches a single Notification by ID, scoped to the App.

Authorization

Path Parameters

app_id*string

App ID

id*string

Notification ID

Response Body

application/json

curl -X GET "https://example.com/v1/apps/string/notifications/string"
{  "ad_hoc_body": "string",  "ad_hoc_title": "string",  "app_id": "string",  "created_at": "string",  "data": {    "property1": null,    "property2": null  },  "id": "string",  "idempotency_key": "string",  "send_at": "string",  "status": "string",  "target_type": "string",  "target_value": [    "string"  ],  "template_id": "string"}
DELETE
/v1/apps/{app_id}/notifications/{id}

Cancels a Notification that is still in "scheduled" state. Fails if the notification is not in that state.

Authorization

Path Parameters

app_id*string

App ID

id*string

Notification ID

Response Body

application/json

curl -X DELETE "https://example.com/v1/apps/string/notifications/string"
{  "ad_hoc_body": "string",  "ad_hoc_title": "string",  "app_id": "string",  "created_at": "string",  "data": {    "property1": null,    "property2": null  },  "id": "string",  "idempotency_key": "string",  "send_at": "string",  "status": "string",  "target_type": "string",  "target_value": [    "string"  ],  "template_id": "string"}
GET
/v1/apps/{app_id}/notifications/{id}/deliveries

Lists the per-device delivery attempts and their status for a Notification.

Authorization

Path Parameters

app_id*string

App ID

id*string

Notification ID

Response Body

application/json

curl -X GET "https://example.com/v1/apps/string/notifications/string/deliveries"
[  {    "attempts": 0,    "created_at": "string",    "device_id": "string",    "id": "string",    "last_error": "string",    "notification_id": "string",    "sent_at": "string",    "status": "string"  }]