Push notifications, as an API

One request. Straight to their lock screen.

People subscribe by scanning a QR code with the Nudgebox app, with no account, email or phone number. Your backend reaches every one of them with a single HTTPS call. No app to build, no device tokens to store.

POSTapi.nudgebox.app/v1/notifications

Sign-ups open when the iOS app lands on the App Store 1,000 notifications / month free No card required No SDK

acme-storeDemo · nothing is sent
Channel
POST /v1/notifications
curl https://api.nudgebox.app/v1/notifications \
  -H "Authorization: Bearer $NUDGEBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Your order has shipped",
    "body": "Order 1042 is on its way. Expected Thursday.",
    "channel": "orders"
  }'
  1. Back in stock2h ago

    The Field Jacket in olive is available again in all sizes.

to reach everyone1 requestEvery subscribed phone, from one call.
personal data asked for0 fieldsNo account, email or phone number.
free every month1,000Notifications on the free plan.
subscribers on ProUnlimitedFree covers your first 100.

how it works

One loop, three steps.

A QR code on your side, the Nudgebox app on theirs, and one HTTP request in between.

01 scan
Sample Nudgebox subscribe code for Acme Store
nudgebox.app/s/acme-store

Show a code

Put the QR code or link on your site, a receipt, a package or the counter. Every application gets one, and every channel can have its own.

02 subscribe

They choose what to get

People scan with the Nudgebox app and pick the channels they care about. No account, email or phone number changes hands.

03 notify
→ POST /v1/notifications
  { "channel": "orders", … }

← 202 { "status": "queued" }

Your backend sends

Call POST /v1/notifications with your API key. Nudgebox delivers to every subscribed device and records each attempt.

handled for you

Everything between your request and their lock screen.

You get a 202 right away. Nudgebox does the rest in the background: checks, fan-out, delivery and the paper trail.

POST/v1/notifications202ntf_8f3k2m9qx4wd7hc5vb1tr6gpsent
  1. 01

    Authenticate

    Keys belong to your organization. Scope one to a single application and revoke it any time.

    key
    nbx_…a91f
    scope
    acme-store
  2. 02

    Validate

    Body, channel and your plan's quota are checked. A retried request returns the original instead.

    channel
    orders
    idempotency
    new
  3. 03

    Fan out

    Channel and whole-app subscribers, one delivery per device. Paused subscriptions are skipped.

    subscribers
    214
    devices
    209
  4. 04

    Deliver & record

    Every attempt is kept as sent, failed or invalid token. Dead tokens leave your audience for good.

    sent
    206
    invalid token
    3

one endpoint, three audiences

Everyone, a topic, or one person.

The same request body for all three. Add a field to narrow who gets it; Nudgebox works out which phones that means.

broadcast

Everyone

Leave out channel and recipient to reach every phone subscribed to the application.

{
  "title": "Sale ends Sunday",
  "body": "20% off everything.",
  …
}
channel

A topic

Split what you send into channels. People pick theirs, and each channel can have its own QR code.

{
  "channel": "orders",
  "title": "Shipped!",
  …
}
recipient

One person

Mint a single-use subscribe link for one of your users, then send to them by your own id.

{
  "recipient": "user_123",
  "title": "Table ready",
  …
}

use cases

Anywhere a QR code fits, a notification follows.

Counters, receipts, packaging, status pages, posters. If people can scan it, you can reach them later.

channel: "orders"

Orders & deliveries

Print the code on the receipt or the box. Shipped, out for delivery and delivered, without asking for a number.

channel: "restocks"

Restocks & drops

Let people follow what they care about and tell them the moment it's back, not a newsletter later.

recipient: "ticket-87"

Ready for pickup

A personal code on the ticket at the counter, a push when the order is ready. Nobody waits by a buzzer.

channel: "incidents"

Status & incidents

Put a code on your status page. Customers who scanned it hear about an outage before they open a ticket.

for developers

An API you can read in one sitting.

No SDK, no device tokens, no push certificates. JSON over HTTPS from any language, with the guarantees you would have built yourself.

  • Safe retries

    Idempotency-Key

    Same key and body: you get the original notification back. Nothing is delivered twice.

  • Delivery you can check

    GET /v1/notifications/:id

    Sent, failed and invalid-token counts for every notification, from the API or the dashboard.

  • Recipients you can revoke

    DELETE /v1/recipients/:id/subscriptions

    Closing an account? One call removes that user's personal subscriptions and unused links.

  • Keys your team owns

    Authorization: Bearer nbx_…

    API keys belong to the organization, can be scoped to one application and revoked at any time.

The free plan includes 2 applications.
curl https://api.nudgebox.app/v1/notifications \
  -H "Authorization: Bearer $NUDGEBOX_API_KEY" \
  -H "Idempotency-Key: order-1042-shipped" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "orders",
    "title": "Your order has shipped",
    "body": "Order 1042 is on its way. Expected Thursday.",
    "url": "https://acme.example/orders/1042"
  }'

for subscribers

Notifications without handing over your inbox.

Scanning a Nudgebox code subscribes this phone, not you. Publishers see an anonymous subscription and whether a delivery worked. Nothing that identifies you.

What Nudgebox never asks for

  • An account
  • An email address
  • A phone number
  • Your name

stored per device: a push token, app version, locale, time zone

What stays in your hands

  • Choose channels. Get order updates without the promotions. Change it any time.
  • Leave in one tap. Unsubscribe from any publisher from the app. They can't re-add you.
  • Forget this device. Remove the device and every subscription with it.
iOS app coming soonRead the privacy policy

pricing

Start free. Upgrade when your audience does.

Subscribers never pay and never see a plan. Publishers pay for applications, volume and seats.

Free

For side projects and evaluating Nudgebox.

$0/ month

Free forever. No card required.

Applications
2
Subscribers
100
Notifications / month
1,000
Deliveries / month
25,000
Scheduled notifications
100
Team members
3
API keys
5
Advanced analytics
—

Pro

For production

For products with real audiences.

$29/ month

Billed monthly. Cancel any time.

Applications
25
Subscribers
Unlimited
Notifications / month
250,000
Deliveries / month
2,500,000
Scheduled notifications
10,000
Team members
25
API keys
50
Advanced analytics

Prices in USD. Upgrade, switch interval or cancel from the dashboard; checkout is handled by Polar.

faq

Questions, answered.

Do my subscribers need an account?
No. They install the Nudgebox app and scan your code. The app registers the phone with a random id; nobody is asked for a name, email address or phone number.
Which phones can I reach?
iPhone, through the Nudgebox app for iOS. Notifications arrive as native pushes with your name and icon.
Do I need an SDK?
No. Sending is one HTTPS endpoint that takes JSON, so any HTTP client works. The examples on this page use cURL, Node.js and Python.
What counts toward my limits?
Each accepted notification counts once as a notification, and once per phone it reaches as a delivery: a broadcast to 400 followers is 1 notification and 400 deliveries. Free covers 100 subscribers; Pro has no subscriber limit. A send whose audience doesn't fit the deliveries left this month is refused, never cut short, and a retry replayed with the same Idempotency-Key doesn't count again.
Can I notify one specific person?
Yes. Create a subscribe link for one of your users with POST /v1/subscribe-links, show it as a QR code, then send with recipient set to your id for them. Links are single-use and expire after 15 minutes unless you ask for longer.
How do people stop notifications?
From the app: pause or leave any publisher, change channels, or forget the device entirely. Publishers can't re-add them.

scan → subscribe → POST → delivered

Your first push is one request away.

Create an application, put its code where people already look, and send. Free to start, no card required.

Sign in