Bark alternative

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.

iOS and AndroidWebhooks with field mappingFree tier · 50 msg/day
Pocket AlertHosted · integrated · history
vs
BarkOpen source · iPhone only
The gap

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.

Feature comparison

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.

FeaturePocket AlertBark
Where you use it
iOS appiOS 15 and later
Android app
Web dashboardDevices, keys, apps, webhooks
Chrome extensionSend a link or note to your phoneCommunity-built only
Command-line toolOfficial binary for Linux, macOS, WindowsAny HTTP client
MCP server for AI agents10 toolsHTTP endpoint per device key
Sending alerts
Send via HTTP APIGET, POST or JSON
Inbound webhook URL per sourceOne URL per serviceThe device URL takes POST, without mapping
Payload mapping into the message%field.path% into title, body and buttonsThe sender uses Bark's parameters
Scheduled deliveryUp to 30 days, listable and cancellable
Priority levelsFive, silent to criticalFour iOS interruption levels
Critical alerts that override Do Not DisturbOn paid plansiOS critical alerts, ring on silent
Action buttons on the notificationUp to 3: open, HTTP request, copyOpen a URL or copy, no custom buttons
AttachmentsImagesImage by URL
Grouping by sourceApplications, filtered in the appgroup parameter
Email delivery
SMS or phone-call deliverycall=1 repeats the ringtone for 30 s
Records and debugging
Message historyAccount-wide, synced to app and webIn the app, on that phone only
Webhook call logHeaders, payload, rendered message, result
History retention7 days free, 365 on the top planUntil deleted, or a per-message ttl
Delivery statisticsPer application and per device
Account and data
Content encryptionAt rest with a per-account key, secrets redactedEnd-to-end AES with your own key
Two-factor authenticationTOTP with recovery codesNo account, a device key
Open source or self-hostedMIT, 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.

Pricing

What you’ll pay

Pocket AlertBark
Free plan50 messages a day, no cardFree app and public server, no sign-up
Entry paid plan$6/month — 1,000 messages a day, 5 webhooksNo paid plans
Highest tier$25/month — unlimited messages, 365-day historyNo 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.

Migration

Coming from Bark

1

Install and get a key

Install the app on your iPhone or Android phone, sign in, and copy your API key from the dashboard.

2

Swap the URL

Replace api.day.app/your-key with the Pocket Alert endpoint. body becomes message, and level=timeSensitive becomes level=high.

3

Point services at webhooks

Where a script was reshaping JSON into Bark parameters, create a webhook and map the payload with %field.path% instead.

4

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.

Before · Bark
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"
  }'
After · Pocket Alert
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" }]
  }'
FAQ

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.