Docs
Dashboard
HoneyNotify SDKs

Choose your platform

Select a platform to open its public SDK repository on GitHub.

AndroidKotlin and Firebase Cloud MessagingiOSSwift and Apple Push Notification serviceWebBrowser push and service worker support
Reference

API reference

This is the route index for HoneyNotify API v1. Each entry explains the job the endpoint performs. Follow the linked concept guides for request fields, response examples, state transitions, and integration advice.

Base URL: https://api.honeynotify.com

All routes require Authorization: Bearer <key>. JSON write requests require Content-Type: application/json.

Rate limits: Every authenticated /v1 route listed below is rate limited per organisation and app. The public /health and /status service endpoints are not rate limited.

How to read this reference#

  • Method is the HTTP action to send. GET reads data, POST creates or starts work, PATCH changes selected data, and DELETE disables, archives, or removes a resource as described.
  • Path is added to the base URL. Values in braces are placeholders that you replace with a real ID; for example, {device_id} becomes a HoneyNotify device UUID.
  • What it does explains when to use the endpoint and whether it reads data, changes state, or queues asynchronous work.
  • Scope is the permission that the bearer API key must have. It is a permission name, not a request field. See Authentication for key types and scopes.
  • Success is the usual HTTP success status and the kind of result returned. A 202 means work was accepted or queued; it does not mean the background work has finished.

Devices#

Method Path What it does Scope Success
POST /v1/devices/register Registers a new APNs, FCM, or Web Push destination, or refreshes an existing device's token, user, tags, and metadata. devices:write 201 new, 200 refreshed
GET /v1/devices Lists devices in the app, with pagination and optional platform or enabled-status filters. Push tokens are never returned. devices:write 200 paginated list
GET /v1/devices/{device_id} Retrieves one device's platform, status, metadata, and user association. devices:write 200 device
DELETE /v1/devices/{device_id} Disables and invalidates a device so it can no longer receive notifications. Use it for logout or unsubscribe. devices:write 200 disabled

Public client keys may register and delete only. See Devices and users.

Users and aliases#

Method Path What it does Scope Success
GET /v1/users/{external_user_id} Retrieves a user profile together with its aliases and associated devices. devices:write 200 user, aliases, devices
PATCH /v1/users/{external_user_id} Replaces the supplied user locale, timezone, tags, or properties used for targeting and template values. devices:write 200 updated
DELETE /v1/users/{external_user_id} Deletes the subscriber record and disables all of the user's devices. This is a destructive privacy action. devices:write 200 deleted
POST /v1/users/{external_user_id}/aliases Adds an alternate identifier, such as a CRM ID, to the user; an existing alias can be moved to this user. devices:write 201 alias created/moved
DELETE /v1/users/{external_user_id}/aliases Removes the exact alias label and value supplied in the request body. devices:write 200 deletion result

URL-encode external IDs in path segments.

Segments#

Method Path What it does Scope Success
GET /v1/segments Lists the app's current reusable audience definitions. notifications:read 200 list
POST /v1/segments Creates a reusable audience from rules about devices, users, tags, or events. notifications:write 201 created
POST /v1/segments/estimate Counts the devices that currently match a saved segment or an unsaved filter without sending anything. notifications:write 200 count
GET /v1/segments/{segment_id} Retrieves one segment and its current filter definition. notifications:read 200 segment
PATCH /v1/segments/{segment_id} Updates a segment by creating a new immutable version. Existing notification snapshots are unchanged. notifications:write 200 new version
DELETE /v1/segments/{segment_id} Archives a segment so it cannot be used for new sends while retaining its history. notifications:write 200 archived

Templates#

Method Path What it does Scope Success
GET /v1/templates Lists current metadata for reusable notification templates. notifications:read 200 list
POST /v1/templates Creates draft or published reusable notification content with optional placeholders. notifications:write 201 created
GET /v1/templates/{template_id} Retrieves one template and its current content. notifications:read 200 template
PATCH /v1/templates/{template_id} Changes a template by creating a new immutable content version. notifications:write 200 new version
DELETE /v1/templates/{template_id} Archives a template so it cannot be used for new notifications; existing snapshots remain intact. notifications:write 200 archived

Notifications#

Method Path What it does Scope Success
GET /v1/notifications Lists notification requests and their current delivery state. notifications:read 200 paginated list
POST /v1/notifications Creates an immediate or scheduled notification, snapshots its content and audience, then queues it or holds it as a draft until due. notifications:write 202 queued/draft
GET /v1/notifications/{notification_id} Retrieves one notification's status and aggregate recipient, accepted, and failed counts. notifications:read 200 summary
POST /v1/notifications/{notification_id}/cancel Stops unsent work for a draft, queued, or processing notification. It cannot recall pushes already accepted by a provider. notifications:write 200 cancelled
GET /v1/notifications/{notification_id}/recipients Lists each targeted device's delivery state, attempts, and last error for one notification. notifications:read 200 paginated results
GET /v1/notifications/{notification_id}/events Lists lifecycle and engagement events recorded against one notification. notifications:read 200 paginated events

Creation requires an Idempotency-Key header. Requests accept interruption_level as passive, active, time_sensitive, or critical; responses return the normalized level. See Notifications.

Events and analytics#

Method Path What it does Scope Success
POST /v1/events Records a received, delivered, opened, clicked, dismissed, custom, or outcome event for engagement and targeting. events:write 202 accepted
GET /v1/analytics?days=30 Returns daily event metrics and outcome totals for the requested 1–365 day reporting window. notifications:read 200 metrics/outcomes

Public client keys may submit events. See Events and analytics.

Webhooks#

Method Path What it does Scope Success
GET /v1/webhooks Lists the HTTPS endpoints configured to receive selected HoneyNotify events. notifications:read 200 list
POST /v1/webhooks Creates a signed webhook endpoint and returns its signing secret once so your receiver can verify deliveries. notifications:write 201 created plus secret
PATCH /v1/webhooks/{webhook_id} Changes the URL, description, subscribed events, enabled state, or rotates the signing secret. notifications:write 200 updated
DELETE /v1/webhooks/{webhook_id} Permanently removes a webhook endpoint and stops future deliveries to it. notifications:write 200 deleted
POST /v1/webhooks/{webhook_id}/test Queues a signed webhook.test delivery so you can verify your receiver and signature handling. notifications:write 202 queued

Journeys#

Method Path What it does Scope Success
GET /v1/journeys Lists the app's automated messaging journeys and their current states. notifications:read 200 list
POST /v1/journeys Creates a draft or active automation graph triggered by a segment or custom event. notifications:write 201 created
GET /v1/journeys/{journey_id} Retrieves one journey and its current trigger, nodes, and versioned definition. notifications:read 200 journey
PATCH /v1/journeys/{journey_id} Changes a journey or its state by creating a new immutable version; existing executions keep their starting version. notifications:write 200 new version
DELETE /v1/journeys/{journey_id} Archives the journey and cancels its active or waiting executions while retaining history. notifications:write 200 archived/cancelled
GET /v1/journeys/{journey_id}/stats Returns execution totals grouped by statuses such as active, completed, and cancelled. notifications:read 200 counts by status

Exports and settings#

Method Path What it does Scope Success
GET /v1/exports Lists the 100 newest audience, message, recipient, event, or audit export jobs and their status. notifications:read 200 newest 100
POST /v1/exports Starts an asynchronous CSV export for the requested data type. notifications:write 202 pending
GET /v1/exports/{export_id}/download Downloads a completed, unexpired export as CSV. Export files expire after 24 hours. notifications:read 200 CSV
PATCH /v1/app/settings Changes only the supplied app defaults and delivery controls, including identity verification, frequency caps, throttling, and quiet hours. notifications:write 200 updated

Service endpoints#

Method Path What it does Authentication Success
GET /health Returns machine-readable API, database, Redis, queue, retry, and dead-letter health information for monitoring. None 200 health response
GET /status Opens the public, human-readable service status page. None 200 status page

These are service endpoints rather than versioned application resources. They do not use app API-key authentication.