Push notifications.
Sweetly simple.

Register devices with native, Flutter, React Native, Web Push SDKs, or our ready-made CMS plugins, then reach precise audiences through one server API and understand what happens after every send.

No card required · Unlimited pushes · First send in minutes
LLM? Click here →
send-push.shREST
curl --request POST \ --url https://api.honeynotify.com/v1/notifications \ --header "Authorization: Bearer $HONEYNOTIFY_API_KEY" \ --header "Idempotency-Key: order-2084-ready-v1" \ --header "Content-Type: application/json" \ --data '{ "title": "Your order is ready", "body": "Tap to track your delivery.", "target": { "type": "user", "external_user_id": "customer_42" }, "data": {"order_id": "hn_2084"} }'
202 Accepted · queued safely with idempotency
One API · APNs · FCM · Web Push · Signed webhooks
And counting 500,143,290,264 notifications sent
Built on experience

Push infrastructure shaped by years of doing the work.

HoneyNotify brings long-standing operational experience and high-volume delivery knowledge into one focused platform for modern product teams.

Meet HoneyNotify →
8+years in business

Building and operating dependable digital services for customers who need clear ownership and reliable support.

500B+pushes sent yearly

Delivery experience at the scale needed to understand throughput, resilience, and the moments that matter after send.

The whole hive

More than a send button.

HoneyNotify covers the notification lifecycle: identity, targeting, content, delivery, automation, and measurable outcomes.

01

One delivery API

Send transactional or campaign pushes to Apple, Android, and browser destinations from one endpoint.

POST /v1/notifications
02

Precise audiences

Target a device, user, tag, saved segment, or every enabled device, with inclusion and exclusion rules.

device · user · tag · segment · all
03

Journeys

Build versioned flows with event or segment triggers, waits, branches, splits, pushes, webhooks, and goals.

trigger → wait → branch → push
04

Content controls

Use templates, localisation, rich media, deep links, actions, expiry, collapse IDs, and platform overrides.

templates · actions · localisations
05

Events and outcomes

Separate provider acceptance from received, opened, clicked, custom, and conversion outcome events.

received · opened · outcome
06

Secure operations

Use scoped keys, public client keys, optional verified identity, encrypted credentials, and signed webhooks.

least privilege by default
Developer first

A clean boundary between clients and servers.

Native, cross-platform, and web SDKs register devices, manage user identity, parse payloads, and report lifecycle events. Your trusted backend sends through the REST API.

✓Swift package for iOS 15+
✓Kotlin client with Firebase token helpers
✓Flutter and React Native for iOS + Android
✓Web Push SDK plus WordPress, Magento, Drupal, and Joomla packages
✓Retries for throttling and transient server errors
curl --request POST \
  --url https://api.honeynotify.com/v1/notifications \
  --header "Authorization: Bearer $HONEYNOTIFY_API_KEY" \
  --header "Idempotency-Key: welcome-customer-123-v1" \
  --header "Content-Type: application/json" \
  --data '{
    "title": "Welcome to the hive",
    "body": "Your account is ready.",
    "target": {
      "type": "user",
      "external_user_id": "customer_123"
    }
  }'
let honey = HoneyNotify(
  baseURL: URL(string: "https://api.honeynotify.com")!,
  clientKey: publicClientKey
)

let granted = try await honey.requestPermissionAndRegister()

let deviceId = try await honey.register(
  deviceToken: deviceToken,
  externalUserId: "customer_123",
  tags: ["plan": "pro"]
)
val honey = HoneyNotify(
  applicationContext,
  "https://api.honeynotify.com",
  publicClientKey
)

honey.registerCurrentToken(
  externalUserId = "customer_123",
  tags = mapOf("plan" to "pro")
) { result ->
  result.onSuccess { deviceId -> save(deviceId) }
}
final honey = HoneyNotify(
  clientKey: publicClientKey,
);

final deviceId = await honey.requestPermissionAndRegister(
  options: const HoneyNotifyRegistrationOptions(
    externalUserId: "customer_123",
    tags: {"plan": "pro"},
  ),
);
const honey = new HoneyNotify({
  clientKey: publicClientKey,
});

const deviceId = await honey.requestPermissionAndRegister({
  externalUserId: 'customer_123',
  tags: { plan: 'pro' },
});
CMS Web Push

Install a ready-made package. Paste two public values. Start collecting subscribers.

HoneyNotify packages bundle the Web SDK, provide a root-scoped service worker, and add a configurable visitor opt-in.

✓WordPress 6, Magento 2, Drupal 10/11, and Joomla 4/5
✓Platform-native settings for public client and VAPID keys
✓No secret sending key or VAPID private key in your CMS
WMDJ

HoneyNotify Web Push

Ready-made integrations connected to the same HoneyNotify audience, targeting, sends, and analytics as every other platform.

Packages4 ready to install
Service workerRoot-scoped
PermissionVisitor-controlled
Ready-to-build demo apps

Put your website in a native app and test push end to end.

Start with configurable iOS and Android WebView projects that already connect HoneyNotify registration, token refresh, notification opens, click URLs, and lifecycle events.

iOS · Xcode

SwiftUI and WKWebView

Set your app name, HTTPS website URL, bundle identifier, and public HoneyNotify key, then add Apple signing and run it on a device.

Android · Android Studio

Kotlin, WebView, and Firebase

Set the same simple app values, add your Firebase configuration, and run on a device or Google Play-enabled emulator.

Pricing without the sting

Start free. Scale simply.

No per-message maths. Pick the plan that fits your hive and keep shipping.

Free
£0 / month

For testing, side projects, and early launches.

  • 2,500 monthly active devices
  • Unlimited push notifications
  • 4 apps
  • iOS, Android, and Web Push
  • Ticket support - 48-hour response
  • 2 team members
Create free account
Best value
Unlimited
£24.99 / month

One flat price for production teams.

  • Unlimited devices
  • Unlimited push notifications
  • Unlimited apps
  • iOS, Android, and Web Push
  • Ticket support - 2 hours, 24/7/365
  • Unlimited team members
Choose Unlimited →

Ready to make your app buzz?

Register a test device, send from your backend, and follow the result from provider acceptance to user action.

Start building free →