Text of the wild: Receive notifications from your BirdNET-Pi via ntfy
All posts in the BirdNET-Pi series:
đŚââŹNow that youâve set up your BirdNET-Pi, perhaps you want to get texts
whenever a new bird enters the ring yells in your yard?
The BirdNET-Pi folks have made this trivially straightforward to set up, thanks to an apprise integration. Apprise is a piece of code that acts as a switchboard among a huge number of notification services, so that notifications can be sent to the service(s) of oneâs choiceâwith over a hundred such services to choose from.
From these notification services I decided to use ntfy (pronounced ânotifyâ, apparently!),
which is a publish-subscribe
(pub/sub) service. That means that publishers (in our case, the
BirdNET-PI) publish messages to a ntfy topic (e.g.,
ntfy.sh/my-fun-topic), and then anyone who subscribes to
that topic (you! your cat! your neighbors, if you tell them about it!)
can read those messages.
I chose ntfy for a number of reasons:
- source (open)
- price (free, for the basic public service)
- sign-up (none, for the basic public service)
- access (not linked to a proprietary device or application; subscribable from my phone; not linked to a single account, so that my spouse can also receive bird notifications)
- recommendations (from some Recurse Center peers whose choices in software tend to align with my own), and
- difficulty to configure (none)
If you have different notification needs, you may want to use a different service, but your set up on the BirdNET-Pi-side will look roughly the same.
For example, you can do this right now, no sign-up needed:
Go to https://ntfy.sh/app in your browser
Hit â+Subscribe to topicâ and add topic âbig-old-string-of-text-that-is-likely-somewhat-uniqueâ
In your terminal, post a message to that thread, e.g., copy in
curl -d "Hello party people " ntfy.sh/big-old-string-of-text-that-is-likely-somewhat-uniqueand then hit enter.
See that message show up in the browser!
- Realize that anyone else who subscribed or subscribes to this topic will also see these messages, and gain an understanding of the privacy situation around these messagesânamely, none. đ
While ntfy is an incredibly powerful service for folks with some basic non-private notification needsâlike ours, for these birds!âit is important to know that the free version of ntfy has no privacy. Any message you post to it can be viewed by anyone. It is not likely that these messages will specifically be linked to you, unless you share the URL, but you absolutely should not post anything to it that you are not comfortable being fully public.
The messages weâll be posting from BirdNET-Pi will only include specific bird names, not locations or addresses or personal contact info. While someone could theoretically use that information to be creepy, Iâve decided that I donât think someone would be able to learn more from my public bird notification topic than theyâd already be able to find out elsewhere.1 Well, if there was one particularly rare bird that was migrating through a particularly narrow region, and you noticed it show up on my topic at a certain time, you might be able to triangulate where I liveâbut not any more precisely than with other data that is already public, for better or worse.2
Alternatively, it is possible to pay for a private version of ntfy, or host it yourself. Iâve never done that, but it seems reasonable!
Set-up ntfy on your BirdNET-Pi
To use ntfy with BirdNET-Pi, weâll be choosing a unique-ish topic name, telling BirdNET-Pi to post to that ntfy topic (via its website settings page), and then subscribing to that topic through the ntfy phone application (although you could instead subscribe via the default web application or some other service).
This process is straightforwardâletâs step through it! Oh, and Iâm assuming that youâre starting with a fully set-up installation of BirdNET-Pi. If you arenât, go back and follow my set-up instructions first!
- Choose a unique-enough ntfy topic, by generating a universally
unique identifier (UUID).
You can generate one here or select one from this list of all uuids.3 It should look something like â1cb879d7-2c2e-40a4-8c3b-c5343babd810â.
The goal here is choosing a topic name that no one else is likely to be posting to, so that you donât get their notifications in addition to your own. Also the more obscure it is, the less likely it is that anyone who randomly stumbles across it will know to associate it with you, specifically.
hannahilea-birdnet-notifications, but because Iâve set up a few different installations now, and want to know what they are from the different subscription topics, I do throw an identifier for myself at the end of the topic nameâe.g.,1cb879d7-2c2e-40a4-8c3b-c5343babd810-hr1.
On your BirdNET-PIâs basic settings page (
Tools > Settings), find theNotificationssection.If youâre prompted to log in, remember that the default credentials (unless you changed them!) are username âbirdnetâ and empty password.
Forget how to get to your BirdNET-Piâs website? While on the same local WiFi network as it, it will look something like
http://birdnet-<pi_identifier>.local/; if you set up Tailscale then you wonât need to be on the same local network to view it, and your URL will look something likehttp://birdnet-<pi_identifier>.ts.net(you can find that specific link in your Tailscale console).
Add your ntfy topic as the notification service by setting that first âNotificationsâ field to
ntfy://<topic-uuid>.- Using our example uuid, that looks like
ntfy://1cb879d7-2c2e-40a4-8c3b-c5343babd810
- If you decide to pay for a private ntfy accountâor use a different
notification service outrightâthis is the part of these setup steps that
will change; this configuration line will instead need to be something
like
ntfys://{token}@{hostname}/{topics}. There is good apprise documentation for that, should you need it.
- Using our example uuid, that looks like
Set the subject and message based on what you want to hear from your birds. I have mine set to basically the default message, with an updated subject:
Notification Title:
New $comname detection!Notification Body:
A $comname ($sciname) was just detected, with a confidence of $confidence ($reason)
You can update the message to use any of the templated variables described on that screen; play around with combinations and sending yourself test messages to see what feels right to you.4 Remember not to include anything private in those messages, thoughâi.e., skip including
$latitudeor$longitude. ($listenurlwill be the url of your BirdNET-Pi, but unless youâve put your installation on a public network, no one except you and anyone youâve added to your tailscale network will be able to access it anyway, so you can use it if you want)
Choose what you want to be notified about! These are my settings:5
Test that youâve configured the BirdNET-Pi correctly: go to the ntfy web app, and subscribe to your topic
<uuid>:
.Now, back in the BirdNET-Pi settings page, hit âSend Test Notificationâ. After a few moments, confirmation of completion will show up below the test button and you should see the test message show up on the ntfy page:
.Huzzah! (If you donât see a test message show up, double-check that youâve used the same uuid topic on both your BirdNET-Pi and the ntfy app.)
Repeat this âsend test messageâ process as much as you like, while you tune the notification messages to your liking, but then donât forget to SCROLL TO THE BOTTOM OF THE SETTINGS PAGE AND CLICK UPDATE!
Otherwise your settings will not save and your birds will not trigger notifications, and you will be sad.
Cool, weâre done with this part! Donât leave the settings page yet, though, weâll want access to that Send Test Notification button
Set-up ntfy on your phone
Install ntfy on your phone: iPhone / Android
- I use the iPhone app and canât personally vouch for the Android one, but as theyâre by the same developer I assume theyâre functionally equivalent.
Open the ntfy phone app and subscribe to your new topic:
With the app still open, send another test message from the BirdNET-Pi settings page (âSend Test Notificationâ button). If youâve typed in your UUID topic correctly, you should see it show up here in the app!
When you sent the test notification, you should also have received a push notification for itâi.e., a little pop-up notification at the top of your screen. If you didnât get the pop-up, go into your phoneâs notification settings and update them to allow the types of notifications you want.
- On an iPhone, you can get there by going into
Settings > Notifications > ntfy - Unlike any of my other apps(!), I allow ntfy messages to send me all types of notifications, and to let them show up directly on my lock screen. That looks like this:
You may want something a little less zealous! Once youâve updated your settings, try sending another test message to test it out.
- On an iPhone, you can get there by going into
Thatâs all! Go forth and be notified! After a few days youâll likely want to go back to the BirdNET-Pi settings to tune your notification frequency, as you decide you want more or fewer words from your birds.
Yet another plug for Tailscale
If youâre away from home when you receive a notification from your BirdNET-Pi, you may want to immediately go view that new detection. If you arenât on the same WiFi network as your Pi, you wonât be able to view it unless youâve set up Tailscale. The steps to do this are included as an optional piece of my original set-up guide.
If youâve installed Tailscale on your Pi, you can also add your phone to your Tailscale network, by installing the Tailscale app on your phone. Then, when youâre away from home and you get a ntfy notification about something Exciting⢠yelling in your yard, you can simply (1) turn on Tailscale on your phone (if it isnât always running!) and then (2) go to view your BirdNET-Piâs website through that Tailscale URL. I have mine bookmarked on my home screen.
Or you could rush home to try to see your new bird friend in person. Your call!
Thanks to SM, for setting up their first BirdNET-Pi and encouraging me to document this next step for them! Happy early birthday!
All posts in the BirdNET-Pi series:
đŚââŹFootnotes
Worse. DEFINITELY worse.âŠď¸
Although I know Nolen built this list of all uuids on a lark, it is useful here! Thanks, Nolen! Relatedly, it was delightful to search the open web for âwhich uuid version to useâ and be given Nicoleâs TIL: 8 versions of UUID and when to use them as the top hit. I love it when the answer to my asked-to-the-greater-world questions end up coming from friends.âŠď¸
Examples, should you wish: - For desired message âIâm a American Goldfinch! Iâm a American Goldfinch! Iâm a American Goldfinch!â set the Notification Body to
I'm a $comname! I'm a $comname! I'm a $comname!- For desired message âA wild Spinus tristus appears!â, set the Notification Body toA wild $sciname appears!- For desired message format â76% confident in new American Goldfinch detectionâ set the Notifcation Body to$confidencepct% confident in new $comname detectionHave fun with it. :)âŠď¸
When I first set this up I requested notifications for everything, but that got old quickly. Iâve got a lot of birds. They have a lot to say. Turns out I donât need to know about all of it.âŠď¸
- Created: 2026-05-23
- Type: Tutorial
- Tags: birb-creeping, houseplant-programming, passive-acoustic-monitoring, birdnet-pi