Coming soon to the App Store

Notifications from anything you run.

One web request and your iPhone lights up. Your backup script can say it finished, and your server can warn you before the disk fills.

Free, with nothing to sign up for. Your account lives in your iCloud.

01

Features

Everything here is in the app today. Two come with the Upgrade Pass and say so. The rest is free.

Gets through a Focus

Send at priority 1 or 2 and it arrives time sensitive, heard through a Focus or a Sleep schedule. Five levels in all, on the -2 to 2 scale Prowl used, and the two lowest arrive with no sound at all.

Alerts until you look

Priority 2 keeps alerting every few minutes until you open it, on any device you own. The 3am outage stops being one buzz you slept through. You choose the interval and how long it keeps trying.

Links open your way

Tap a notification carrying a link and the page opens straight from the Lock Screen. Addresses written into the message are tappable too, and you decide whether they open in Nowlark or in your own browser.

No account to make

No email, no password, no third-party login. Your account key is kept in your iCloud, so your other devices on the same Apple Account already have it.

Every sender by name

Each source gets its own row in the Sources tab. Mute one, make it silent, give it a colour, or hold a loud one to a lower priority than it asks for.

History you choose

Every notification is kept and searchable for 1 month free, or up to a year with the Upgrade Pass. What falls outside the window is deleted for good, not hidden.

Speaks ntfy and Prowl

Uptime Kuma, anything built on Apprise and many other self-hosted apps can send through their ntfy option: point it at this server and paste a Nowlark key. Scripts written for Prowl only need the new address.

Looks how you like

Light, dark or automatic, seven accent colours and eight app icons to pick from. iCloud Sync carries whatever you choose to your other devices.

Retries stay quiet

Send a dedupe key and the same alert arriving again is not pushed, so a job that retries on a schedule wakes you once and not every five minutes. A group key stacks a run of related alerts into one pile.

A feed you can clear

Swipe to mark read or delete, or select a run of them and handle the lot at once. Filter to unread when the feed is standing in for your list of things to deal with.

Images and buttonsUpgrade Pass

Send a chart, a camera frame or a screenshot and it arrives on the notification itself. Add up to three buttons too: open the link, copy a code, mute the source, mark it read, all from the Lock Screen.

Tones per priorityUpgrade Pass

Learn what happened before you look: a sound per priority, or one source with a tone of its own. Six tones, each made for Nowlark. Low priority stays silent whatever you pick.

02

Works with

Anything that can make an HTTPS request. Apps that already have an ntfy option work too, without changing a line.

Your own code

Send JSON with your key in a header.

  • curl
  • cron
  • Python
  • Shell scripts
  • Webhooks

Apps with an ntfy option

Choose ntfy, set the server, paste your key as the access token.

  • Uptime Kuma
  • Apprise
  • changedetection.io

Coming from Prowl?

Nowlark answers Prowl's own API, so scripts written for it only need the new server address and a Nowlark key. Priorities keep the same numbers. Apps with Prowl built in send to Prowl's own server, so use their ntfy option instead.

Moving from Prowl
03

One request

Your key goes in the X-Nowlark-Key header. The three fields you send are the three lines of the notification. The API reference covers links, priorities, grouping and the rest.

Put your own words in it

The card beside this is the Lock Screen's own drawing, and the request below updates as you type. Nothing is sent anywhere, and nothing is kept.

The sender's name. One per script or job, so each gets its own row in Sources. Up to 256 characters.
The line in bold. Up to 1,024 characters.
Everything else worth saying. Up to 10,000 characters.
curl https://nowlark.com/v1/notify \
  -H "X-Nowlark-Key: $NOWLARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source":"Backup","title":"Finished",
       "body":"412 GB in 38 minutes, no errors."}'
import json, os, shutil, time, urllib.request

free = shutil.disk_usage("/data").free / 2**30
if free < 50:
    body = json.dumps({
        "source": "srv-01",
        "title": "Disk almost full",
        "body": f"{free:.0f} GB left on /data.",
        "priority": 2,
        "dedupe_key": "disk-" + time.strftime("%Y-%m-%d"),
    }).encode()
    urllib.request.urlopen(urllib.request.Request(
        "https://nowlark.com/v1/notify", data=body,
        headers={"X-Nowlark-Key": os.environ["NOWLARK_API_KEY"],
                 "Content-Type": "application/json"},
    ))
Notification type
Prowl
Server
https://nowlark.com
API key
Your Nowlark key, nlk_…
Priority
-2 to 2, same as before

Your key is under Settings › API Key in the app, and Settings › Connect an App has this command with the key already in it, ready to copy.

200 OK
{
  "id": "ntf_5f3c…",
  "duplicate": false,
  "muted": false,
  "delivered": 2,
  "devices": 2,
  "remaining": 999,
  "reset_at": 1789665600.0
}

delivered is how many of your devices Apple accepted it for. Send a dedupe_key and the same alert arriving twice is delivered once, so a job that retries on a schedule cannot wake you again.

04

How it works

Three steps from opening the app to your first notification from a script.

  1. Open Nowlark

    Allow notifications when it asks. Your account is made for you and kept in your iCloud. Tap Send a Test to see one arrive.

  2. Make your key

    Settings › API Key › Create Your Key. It's shown once, so copy it then.

  3. Send from anything

    One HTTPS request with your key. Settings › Connect an App has the address, the key and a curl command ready to copy.

05

Pricing

Nowlark is free, and delivery stays free at every priority. The Upgrade Pass is optional.

Free

For good. No ads.

  • Instant delivery at every priority, including time-sensitive
  • No monthly quota. 1,000 an hour per key, which only a runaway script reaches
  • 1 device and 1 API key
  • 1 month of history
  • Urgent notifications that repeat until you open them
  • Links, sources, themes and iCloud Sync

Enough for one phone and one place that sends.

Optional

Upgrade Pass

$9.99 a year, or $24.99 once for life.

  • Every device you own
  • A separate key for each script
  • History for 3 months, 6 months or a year
  • Images and buttons on notifications
  • Your choice of tones, per priority and per source
  • Yearly: features released while it's active stay yours after it ends
  • Once for life: everything, including what we add later

Prices are the US ones. The App Store shows yours in your own currency. Nowlark is made by one person, and the pass is how it keeps going.

Still have a question?

Email support. A person reads every message. The support page covers setup and what to check when nothing arrives.

support@skailstudio.com