Bark-simple push on iPhone and Android.
Bark is one of the nicest ways to get a push onto an iPhone: free, open source, one URL to call, and encryption the server cannot read. It also stops at the iPhone. Pocket Alert keeps the one-request API and adds the parts Bark leaves out: an Android app, a web dashboard, history shared by every device on the account, and webhook URLs that turn GitHub, Sentry or Grafana payloads into readable alerts with no script in between.
Where Bark runs out
Bark gets the sending right. The gaps show up once there is more than one phone, or more than one service.
iPhone only
There is no Android app. If a teammate or your second phone runs Android, the alert never reaches it.
You shape every message
Bark expects title and body in its own parameter names. A service that posts its own JSON needs a script to translate it first.
History stays on one phone
Archived pushes are stored in the app on that phone. There is no dashboard or account to read them from anywhere else.
One key, one device
A key belongs to a single device. Put the same key on two phones and only the one opened last gets the push.
Pocket Alert vs Bark, feature by feature
Both send a push from a single HTTP request. The difference is what is there once you need more than one iPhone.
| Feature | Pocket Alert | Bark |
|---|---|---|
| Where you use it | ||
| iOS app | iOS 15 and later | |
| Android app | ||
| Web dashboard | Devices, keys, apps, webhooks | |
| Chrome extension | Send a link or note to your phone | Community-built only |
| Command-line tool | Official binary for Linux, macOS, Windows | Any HTTP client |
| MCP server for AI agents | 10 tools | HTTP endpoint per device key |
| Sending alerts | ||
| Send via HTTP API | GET, POST or JSON | |
| Inbound webhook URL per source | One URL per service | The device URL takes POST, without mapping |
| Payload mapping into the message | %field.path% into title, body and buttons | The sender uses Bark's parameters |
| Scheduled delivery | Up to 30 days, listable and cancellable | |
| Priority levels | Five, silent to critical | Four iOS interruption levels |
| Critical alerts that override Do Not Disturb | On paid plans | iOS critical alerts, ring on silent |
| Action buttons on the notification | Up to 3: open, HTTP request, copy | Open a URL or copy, no custom buttons |
| Attachments | Images | Image by URL |
| Grouping by source | Applications, filtered in the app | group parameter |
| Email delivery | ||
| SMS or phone-call delivery | call=1 repeats the ringtone for 30 s | |
| Records and debugging | ||
| Message history | Account-wide, synced to app and web | In the app, on that phone only |
| Webhook call log | Headers, payload, rendered message, result | |
| History retention | 7 days free, 365 on the top plan | Until deleted, or a per-message ttl |
| Delivery statistics | Per application and per device | |
| Account and data | ||
| Content encryption | At rest with a per-account key, secrets redacted | End-to-end AES with your own key |
| Two-factor authentication | TOTP with recovery codes | No account, a device key |
| Open source or self-hosted | MIT, Docker image | |
Bark data from bark.day.app, the Bark and bark-server GitHub repositories and the App Store listing (v1.6.4), checked October 2026.
What you’ll pay
| Pocket Alert | Bark | |
|---|---|---|
| Free plan | 50 messages a day, no card | Free app and public server, no sign-up |
| Entry paid plan | $6/month — 1,000 messages a day, 5 webhooks | No paid plans |
| Highest tier | $25/month — unlimited messages, 365-day history | No paid plans; self-hosting costs only your server |
Pocket Alert pricing as of October 2026. Bark figures from bark.day.app and the App Store. See full pricing.
Coming from Bark
Install and get a key
Install the app on your iPhone or Android phone, sign in, and copy your API key from the dashboard.
Swap the URL
Replace api.day.app/your-key with the Pocket Alert endpoint. body becomes message, and level=timeSensitive becomes level=high.
Point services at webhooks
Where a script was reshaping JSON into Bark parameters, create a webhook and map the payload with %field.path% instead.
Add the other phones
On a paid plan, sign in on every phone that should get alerts. Leave the device out of the request and the push goes to all of them, no list of keys to keep.
curl https://api.day.app/push \
-H 'Content-Type: application/json' \
-d '{
"device_key": "YOUR_DEVICE_KEY",
"title": "Deploy finished",
"body": "main is live",
"level": "timeSensitive",
"url": "https://github.com/you/repo/actions"
}'curl https://api.pocketalert.app/v1/messages \
-H 'Token: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "Deploy finished",
"message": "main is live",
"level": "high",
"actions": [{ "type": "view", "label": "Open run",
"value": "https://github.com/you/repo/actions" }]
}'Questions, answered
No. Bark is an iOS app, and bark-server delivers through Apple Push Notification service only. Pocket Alert has apps for iPhone and Android, and one API key reaches every device on the account, whichever platform it runs: one device on the free plan, three or more on paid plans.
For one iPhone and a handful of scripts you may not need to: Bark is free and open source. Pocket Alert has a free plan as well, 50 messages a day with no card. What it adds on every plan is Android, a web dashboard, history shared across your devices, and inbound webhooks with field mapping and a log of every call. Paid plans raise the volume and add scheduling, longer history and critical delivery.
Bark has the stronger answer here. You can run bark-server yourself, and its encrypted push uses a key only your phone knows, so neither the server nor Apple can read the content. Pocket Alert is a hosted service: message content is encrypted at rest with a per-account key, secrets in webhook payloads are redacted, and the account can be locked with two-factor authentication.
Bark can: level=critical uses iOS critical alerts and rings in silent mode at a volume you choose. On Pocket Alert, the critical level overrides Do Not Disturb on Android. On iPhone it arrives as a time-sensitive notification that gets through Focus; the full critical-alert sound is rolling out as Apple grants the entitlement.
Yes, and it is the biggest difference day to day. Each Pocket Alert webhook has its own URL. Point GitHub, Sentry, Grafana or Stripe at it, and placeholders like %repository.name% pull fields from the raw JSON into the title, body and action buttons. Bark expects its own parameter names, so a service that posts its own JSON needs a script in between.
The same one-line push, on every phone you own.
One API key for every phone on the account, and a webhook URL for every service that needs to reach it.