How it works end-to-end
You (Developer)
1
Create an app in Studio mode
2
Add a device — get a Device Code & QR code
3
Program the Device Code into your firmware
4
Ship the hardware
7
Send a notification from your firmware
Your Customer (Subscriber)
5
Downloads NotifyBridge, opens Subscriber mode
6
Scans the QR code or enters the Device Code
8
Notification appears on their phone instantly
1

Setup Your Free Creator Space

Download NotifyBridge from the app page and open it in Studio mode. Your account is created automatically — no forms, no email verification. A default app called "NotifyBridge" is ready to use right away, complete with an API token.

Android available now. The iOS version is currently under App Store review — this guide will be updated with App Store links once it's live.

You'll use two credentials to send notifications:

API Token
Identifies your app. Find it under Studio → tap your app.
User Key
Identifies your account. Find it under Settings → Account.
One app, many devices. All devices under the same app share the same API Token. You can create multiple apps if you have separate product lines that need different tokens.
2

Create a device

Each physical unit you build needs its own device in NotifyBridge. A device is the link between a specific hardware unit and the subscriber who receives its notifications.

  1. Open Studio mode and tap on your app.
  2. Scroll to the Devices section and tap Add Device.
  3. Give it a descriptive name (e.g. "Greenhouse Sensor #42").
  4. A Device Code is generated — format: MS-XXXX-XXXX — along with a scannable QR code.
Keep the Device Code. Program it into your firmware, or print the QR code and include it with your hardware so the end user can activate the device themselves.
3

Send notifications from firmware

Once a subscriber has claimed the device, send notifications with a single HTTP POST. No SDKs. No special libraries. Any device that can make an HTTP request can use this API.

#include <WiFi.h> #include <HTTPClient.h> void sendNotification(const String& message, int priority = 0) { HTTPClient http; http.begin("https://notifybridge.mindeon.net/v1/messages/send"); http.addHeader("Content-Type", "application/json"); String body = "{"; body += "\"api_token\":\"YOUR_API_TOKEN\","; body += "\"user_key\":\"YOUR_USER_KEY\","; body += "\"device_code\":\"MS-ABCD-EF12\","; body += "\"message\":\"" + message + "\","; body += "\"priority\":" + String(priority); body += "}"; int code = http.POST(body); http.end(); }
curl -X POST https://notifybridge.mindeon.net/v1/messages/send \ -H "Content-Type: application/json" \ -d '{ "api_token": "YOUR_API_TOKEN", "user_key": "YOUR_USER_KEY", "device_code": "MS-ABCD-EF12", "message": "Temperature exceeded 40°C", "priority": 1 }'
import requests requests.post("https://notifybridge.mindeon.net/v1/messages/send", json={ "api_token": "YOUR_API_TOKEN", "user_key": "YOUR_USER_KEY", "device_code": "MS-ABCD-EF12", "message": "Temperature exceeded 40°C", "priority": 1, })

All available fields in the request body:

FieldRequiredDescription
api_tokenYesYour app's API token
user_keyYesYour account key
device_codeNoThe device to target (MS-XXXX-XXXX). Omit to broadcast — see below.
relay_idNoAlternative to device_code. The internal device ID (e.g. relay_abc123).
messageYesNotification body text
priorityNo-1 Low · 0 Normal (default) · 1 High · 2 Emergency
device_nameNoTarget a specific subscriber device by name (useful for multi-device households)
Targeted vs. broadcast. Include device_code (or relay_id) to send to the one device and the subscriber who claimed it. Omit both and the notification goes to every device claimed under your app, plus your own registered devices. Ship firmware with the device code hardcoded — broadcast is meant for testing.
Device-specific examples. Full working firmware for ESP32, Arduino, Raspberry Pi, and more is available in the NotifyBridge-Devices repository on GitHub.
4

Your subscriber activates the device

This is the end user's side — it takes about 30 seconds and requires no technical knowledge.

  1. They download NotifyBridge from Google Play.
  2. They open the app and choose Subscriber mode.
  3. They tap + and either scan the QR code on the hardware or type the Device Code manually.
  4. Done. Every notification you send from that device now arrives on their phone.
No account required for subscribers. They don't sign up, they don't log in — they just scan and go. Multiple people can subscribe to the same device and all receive its notifications.

Under the hood: claiming

When you create a device in Studio mode the backend generates a Device Code, assigns it a Device ID, and marks it UNCLAIMED. Your User Key is stored as the device's owner. Think of it as a virtual mailbox waiting to be linked to a phone.

Two ways to distribute the Device Code:

Option A — Firmware
Hardcode the Device Code directly into each unit's firmware before shipping.
Option B — Packaging
Print the QR code on the box or label. The customer scans it on first use.

What happens when the customer scans:

  1. Backend validates the Device Code exists and is unclaimed
  2. Device status changes: UNCLAIMEDCLAIMED
  3. The customer's User Key is stored in the device record
  4. The device appears in their Devices list — they're ready to receive

Two User Keys — the key concept:

User KeyOwnerPurpose
DeveloperYouAuthenticates API requests to send notifications
SubscriberYour customerRoutes notifications to their specific device

You never need your customer's User Key. Send a notification with your credentials and a Device Code — the backend looks up who claimed that device and routes to them automatically.

Multiple customers, same firmware

Every unit you ship runs the same firmware with the same API Token and User Key — only the Device Code differs. The Device Code determines which customer gets the notification.

Your Factory: ┌─────────────────────────────────────┐ │ Unit #1: Device Code AB-1234-CDEF │ → Customer A's phone │ Unit #2: Device Code AB-5678-GHIJ │ → Customer B's phone │ Unit #3: Device Code AB-9012-KLMN │ → Customer C's phone └─────────────────────────────────────┘ All use same: - API Token - Your User Key - Same firmware code
One device, one subscriber at a time. If a customer needs to transfer a device to a new phone, they unclaim it first — then anyone can claim it again with the same Device Code.

Test before you ship

Run through the complete flow on a real device before shipping to customers. Push notifications don't work in the Android emulator — you need a physical Android phone.

1. Claim for testing

  1. Create a device in Studio mode and note its Device Code
  2. Tap Claim Device (visible in Studio for testing)
  3. Enter the Device Code — status changes to "Claimed"

2. Send a test notification

  1. Tap the device in Studio mode
  2. Scroll to "Usage Example" and tap Copy Example
  3. Paste into Terminal and run — you should receive the notification

3. Test as an end user

  1. Go to Settings → Change Role → switch to Subscriber mode
  2. The claimed device appears in your Devices list
  3. Send another notification — it should arrive

4. Test unclaiming

  1. In Subscriber mode, tap the device and tap Unclaim Device
  2. Status returns to "Unclaimed"
  3. Try sending — it should fail with "Device is not claimed"

Multiple devices, one account

You can create as many devices as you need under a single app:

The Device Code is what links each unit to a specific customer's phone. Your firmware, API Token, and User Key stay identical across every unit you manufacture.

Advanced features

Groups: Multiple Subscribers, One Device

One of NotifyBridge's most powerful features is Groups — multiple people all receiving notifications from the same device. Perfect for shared devices.

Common use cases:

How it works:

When someone claims a device, they get a User Key. Others who also want to receive notifications from that device can join by entering the same key — they all share it.

Example — Smart Doorbell:

  1. Alice buys your doorbell and claims it — she gets User Key a1b2c3...
  2. Alice: Devices → Menu (⋮) → "Invite to Group" — a QR code appears
  3. Bob: opens NotifyBridge → + → "Join a Group" → scans the QR
  4. Both Alice and Bob now receive every doorbell notification
No firmware changes required. Send to the Device Code as usual — NotifyBridge automatically delivers to every device in the group. One API call reaches everyone.

Group characteristics:

AspectBehavior
Shared User KeyAll group members use the same User Key
Shared device listAll members see all devices claimed by the group
Claim accessAny member can claim new devices for the group
DeliveryOne notification → delivered to ALL group members simultaneously
Group sizeNo technical limit (rate limits apply per device)
Leave groupMember generates a new User Key and re-registers
User Keys are sensitive. They grant access to all devices in the group. Advise your users to share only with trusted people — there is no revocation once someone joins.

QR Code Display

Every device comes with a built-in QR code that encodes its Device Code. Tap Show QR Code in the device detail view to display, share, or export it. Print it on your hardware or packaging so customers can claim by scanning instead of typing the code manually.

Unclaim and Re-Claim

If a customer needs to transfer their device to a new phone, they open the device in the Devices tab and tap Unclaim Device. Status returns to "Unclaimed" and anyone can claim it again with the same Device Code. As a developer you can also unclaim devices from Studio mode, but only if they haven't yet been claimed by a subscriber.

Delete Devices

To remove a device permanently (e.g. a scrapped unit), open it in Studio mode and tap Delete Device. You can only delete unclaimed devices — if a subscriber has claimed it, they must unclaim it first.

Priority levels

Use priority to control how urgently the notification interrupts the subscriber.

ValueNameBehavior
2EmergencyCritical alert sound — bypasses Do Not Disturb and silent mode
1HighStandard sound, cuts through Focus filters
0NormalStandard notification (default)
-1LowSilent delivery, no sound or banner interruption

Push credits

Every notification costs one push credit. Credits work the same way for everyone — developers and end users alike. When a developer creates a device it draws from their allowance; once an end user claims it, pushes to that device draw from theirs instead.

Free monthly allowance

Every account — developer or end user — gets 3,000 push notifications per month, free. No credit card required. Resets on the first of each calendar month regardless of when you signed up.

Credit packs

When you need more capacity, purchase a one-time credit pack inside the app under Settings → Push Credits. Three sizes are available:

25K
pushes
100K
pushes
500K
pushes
Purchased credits stack on top of your free monthly allowance — the monthly 3,000 are always consumed first. Credits never expire and carry over indefinitely.

Auto-Recharge

Enable Auto-Recharge under Settings → Push Credits to have the app automatically purchase a pack when your balance drops below a threshold you choose: 20%, 10%, or 5% remaining. Automatic purchases are capped at one per month to prevent unexpected charges.

No hidden fees

No subscriptions. No per-device charges. Both developers and end users pay only when their notification volume exceeds the free monthly allowance. Pricing for credit packs varies by region and is shown in the app before purchase.

When your credits run out, the API returns a 429 response until you add more credits or your monthly allowance resets.

Quick reference

What you needWhere to find it
API TokenStudio → tap your app → API Token section
User KeySettings → Account
Device CodeStudio → tap your app → Devices → tap a device
Send endpointPOST https://notifybridge.mindeon.net/v1/messages/send
Invite to GroupSubscriber → Devices → Menu (⋮) → "Invite to Group"
Join a GroupSubscriber → + → "Join a Group"
Device examplesgithub.com/mindeon/NotifyBridge-Devices