Remote Push PRO
Remote Push lets your devices receive push notifications sent from your own servers and automations. After setting it up, you get a single API key that you call over HTTPS to deliver notifications to your registered devices.
Getting Your API Key
Open Tools → Remote Push and tap Set Up Remote Push. This registers the current device and issues one API key for your account.
- The API key is shared across every device signed in with the same Apple ID.
- One key can have multiple registered devices.
- Keep the key private — anyone who has it can send notifications to your devices.
On the same page you can rename devices, toggle delivery per device, send a test push, and review recent logs.
Base URL & Authentication
All endpoints require your API key as a Bearer token:
Send a Push
POST /push
Send a notification to specific devices, or to all of your devices.
Parameters
image,icon, andactionButtonsproduce a rich notification: long‑press (or pull down) the delivered notification to see the image, avatar, and action buttons. The server enables the requiredmutable-contentflag automatically.
time-sensitivenotifications break through Focus modes and the scheduled notification summary.criticalalerts additionally bypass the mute switch and Do Not Disturb and always play a sound — but they require Apple's Critical Alerts entitlement on the app. Until that entitlement is approved, acriticalpush automatically falls back totime-sensitive.
Response
remaining and daily_limit in the body reflect your quota after this push. The X-Push-Limit-Remaining response header carries the same remaining count (measured before the push) and is also present on rate-limit errors.
List Devices
GET /devices
List your registered devices. Use each device id for the deviceIds array when sending a push.
A device with push_enabled: false stays in the list but is skipped when sending pushes.
Subscription Keys
Sometimes you want a third party — a subscription source, a feed, an automation you don't fully control — to push to your devices, without handing over your master API key (which can also manage devices, read your subscription, and mint more keys).
In Tools → Remote Push → Subscription Keys you can mint send-only keys derived from your master key:
- A subscription key can only
POST /pushto your devices. Every management endpoint (devices, key info, other subscription keys, logs, stats) is rejected withMASTER_KEY_REQUIRED. - It uses the exact same request as the master key — just put the subscription key in the
Authorization: Bearerheader. - Its pushes count against your account's shared daily limit.
- You can disable (reversible) or delete (permanent) a subscription key from the app at any time. A disabled or deleted key immediately stops working.
This lets a single source serve many users: each user mints one subscription key and hands it over; the source pushes to each user through that user's key, and any user can cut it off independently.
Daily Limit & Statistics
GET /push/limit
Returns the daily push limit and how many remain.
GET /push/stats
Returns overall and daily push statistics, including totals and success rate.
Push Logs
GET /push/logs
Returns recent push history. Accepts an optional limit query parameter (1–100, default 50).
Example
Bark-Compatible API
This server also speaks the Bark API, so Bark-compatible tools and scripts work by pointing them at https://push.scripting.fun and using one of your subscription keys as the Bark key.
Endpoints
GET|POST /:key/:bodyGET|POST /:key/:title/:bodyGET|POST /:key/:title/:subtitle/:bodyPOST /:key— all fields in the JSON bodyPOST /push— withdevice_key(or adevice_keysarray) in the JSON bodyGET /ping,GET /healthz,GET /info,GET /register/:key
key / device_key is a subscription key (Tools → Remote Push → Subscription Keys). It pushes to your registered devices and counts against your account's shared daily limit.
Supported parameters
title, subtitle, body, level (active / timeSensitive / passive / critical), badge, sound, icon (URL), group, url, copy, autoCopy, call, volume, ciphertext + iv, id.
sound— a built-in Bark sound name such asminuet.call=1— repeats the sound for ~30 seconds.level=criticalwithvolume(0–10) — a critical alert. Requires the app's Critical Alerts entitlement; until that is approved by Apple it falls back totime-sensitive.url— opened when the notification is tapped.copy— long-press to expand the notification, then tap Copy. The value is copied exactly, including whitespace or an empty string. If omitted, only the body is copied. If the notification extension cannot handle the action, Scripting may open to complete the copy; copying does not openurlor run a script.autoCopy=1/automaticallyCopy=1— copies when the expanded notification interface is presented. Delivery alone does not guarantee automatic copying to the clipboard.- Encrypted notifications can copy only after successful decryption on the device. If the extension did not run or decryption failed, ciphertext and placeholder text are not copied.
badge— sets the app icon badge; sendbadge=0to clear it (iOS keeps the last badge until you explicitly reset it).- Encrypted push — set the AES key in Tools → Remote Push → Encryption, then send
ciphertext(base64) and an optionaliv.
markdown is treated as plain text; isArchive / ttl are ignored (there is no in-app message history).
Example
Rate Limiting
- Each account has a daily push limit, shared across the account's keys (master and subscription keys). Check the current limit and remaining count with
GET /push/limit. - The
X-Push-Limit-Remainingresponse header shows the remaining count.
