⫻ Web Push API
Notify any browser with one request
Connect a browser once with a click, then POST a title and a link from any script, server or cron job. It lands as a native notification on desktop and mobile.
5,000 free attempts every month · Chrome · Edge · Firefox · Safari
⫻ your server
⫻
POST /push/v1/notifications
⫻ their browser
meslzy.com
now
Deploy finished
api@4f2c1a is live in production
Open deploy
02 / 04
how it works
⫻ how it works
Three steps, then one request
No SDK to install and no app to publish. The browser is the client.
01
Create a recipient
A recipient is a name like me or ops. You send to the name; Push fans out to every browser connected to it.
02
Connect a browser
Open the connect page or share a link. The person clicks Enable and allows notifications. Nothing is asked on page load.
03
Send one request
POST to /push/v1/notifications on the API host with an API key. You get an id back at once and can check every attempt’s status later.
⫻ Use it for
Deploys that finished or failed
Cron jobs and backups that broke
A new form submission or sign-up
Uptime and threshold alerts
New orders and payments
Long builds and exports that are done
03 / 04
statuses
⫻ statuses
Accepted is not the same as displayed
Push reports exactly what it can know, and never calls anything delivered.
⫻ One attempt, one browser
queued
Created and waiting for a sender.
processing
Being handed to the browser’s push service.
accepted
final
The push service took the message for that browser.
failed
final
Rejected for good, or every retry ran out.
expired
final
The TTL passed before it could be handed over.
invalid_subscription
final
The browser is gone. It is disconnected and the attempt is not counted.
accepted means the push service took it
Google, Mozilla, Apple or Microsoft accepted the message for that browser. Whether it appears depends on the device: it may be offline, muted, or in a focus mode. Messages wait until the TTL runs out.
Clicks and closes come from the browser
When the person clicks, picks an action or dismisses the notification, the browser reports it. You see those as clickedAt, actionClicked and closedAt on each attempt.
clickedAt
actionClicked
closedAt
04 / 04
pricing
⫻ pricing
5,000 attempts free, every month
One attempt is one notification to one browser. Past the free allowance, attempts are paid from your meslzy credits, the same balance every meslzy app uses. No subscription.
⫻ Every month
5,000
attempts free
The allowance starts over each calendar month. Unused attempts do not carry over.
⫻ After that
1 credit
per 1,000 attempts
One credit is taken as each new block of 1,000 starts, from your meslzy balance.
⫻ Test keys
0
credits, always
Test-mode sends are recorded with their status but never delivered and never counted.
⫻ The fine print
01
A send to a recipient with three connected browsers is three attempts.
02
Attempts to a browser that turned out to be gone are taken off the month’s count.
03
With no free attempts and no credits left, a send is refused with QUOTA_EXCEEDED. Nothing is dropped silently.