Skip to content
Nowlark
API reference menu

ntfy's publish API

Everything else in this reference is the API worth writing against. This page and Prowl's API are for the senders you cannot rewrite.

Uptime Kuma, anything built on Apprise (changedetection.io and many more) and a long list of other self-hosted apps have an ntfy notifier that lets you set the server. Nowlark answers ntfy's publish API, so that notifier works unchanged:

In the tool Put
Server URL
https://nowlark.com
Topic
Any name. It becomes the source, so give each tool its own
Access token
Your nlk_… key
Priority
ntfy's 1 to 5, which is Nowlark's −2 to 2 step for step: 4 and 5 break through a Focus

For Apprise, the URL is ntfys://nowlark.com/<topic>?token=nlk_…. The ?token= form matters: Apprise only sends a bare nlk_…@ as a token if it starts with tk_.

curl -sS https://nowlark.com/backup \
  -H "Authorization: Bearer nlk_…" \
  -H "Title: Nightly" -H "Priority: high" \
  -d "412 GB in 38 minutes."

What is accepted: POST|PUT /<topic> with the message as the body or as message=; POST / with a JSON document naming its topic; Title, Priority (1 to 5 or min, low, default, high, max, urgent) and Click as X- headers, plain headers or query parameters; the key as a Bearer token, as the password of Basic auth, or in ?auth=. Click, or the first view action, becomes the notification's link. Tags, icons, attachments, e‑mail and delays are accepted and ignored rather than refused. The same routes also answer under /ntfy.

Errors are ntfy's JSON ({"code": 40101, "http": 401, "error": "…"}), and a key that does not work is always 401, which is what a tool's "Test" button reports as needing authorization.

Nowlark is not an ntfy server to subscribe to. It only receives: the notifications go to the Nowlark app, not to an ntfy client.